[go: up one dir, main page]

BR122022025392B1 - GENOMIC ANALYSIS PLATFORM TO PERFORM A SEQUENCE ANALYSIS SEGMENTATION - Google Patents

GENOMIC ANALYSIS PLATFORM TO PERFORM A SEQUENCE ANALYSIS SEGMENTATION Download PDF

Info

Publication number
BR122022025392B1
BR122022025392B1 BR122022025392-0A BR122022025392A BR122022025392B1 BR 122022025392 B1 BR122022025392 B1 BR 122022025392B1 BR 122022025392 A BR122022025392 A BR 122022025392A BR 122022025392 B1 BR122022025392 B1 BR 122022025392B1
Authority
BR
Brazil
Prior art keywords
alignment
data
read
reads
sequence
Prior art date
Application number
BR122022025392-0A
Other languages
Portuguese (pt)
Inventor
Pieter Van Rooyen
Michael Ruehle
Rami Mehio
Gavin Stone
Mark Hahm
Eric Ojard
Amnon Ptashek
Original Assignee
Illumina, Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Illumina, Inc filed Critical Illumina, Inc
Publication of BR122022025392B1 publication Critical patent/BR122022025392B1/en

Links

Abstract

Trata-se de um sistema, método e aparelho para executar uma análise de bioinformática sobre dados de sequência genética. Particularmente, é fornecida uma plataforma de análise genômica para executar uma segmentação de análise de sequência. A plataforma de análise genômica inclui um ou mais de um primeiro circuito integrado, em que cada primeiro circuito integrado forma uma unidade de processamento central (CPU) que responde a um ou mais algoritmos de software que são configurados para instruir a CPU a realizar um primeiro conjunto de etapas de processamento genômico da segmentação de análise de sequência. Adicionalmente, um segundo circuito integrado também é fornecido, sendo que cada segundo circuito integrado forma um arranjo de portas programável em campo (FPGA), em que o FPGA é configurado por firmware para dispor um conjunto de circuitos lógicos digitais com fio que são interconectados por uma pluralidade de interconexões físicas para realizar um segundo conjunto de etapas de processamento genômico da segmentação de análise de sequência, sendo que o conjunto de circuitos lógicos digitais com fio de cada FPGA é disposto como um conjunto de mecanismos de processamento para realizar o segundo conjunto de etapas de processamento genômico. Uma memória compartilhada também é fornecida.A system, method and apparatus for performing a bioinformatics analysis on genetic sequence data is provided. In particular, a genomic analysis platform is provided for performing a sequence analysis segmentation. The genomic analysis platform includes one or more than one first integrated circuit, wherein each first integrated circuit forms a central processing unit (CPU) that is responsive to one or more software algorithms that are configured to instruct the CPU to perform a first set of genomic processing steps of the sequence analysis segmentation. Additionally, a second integrated circuit is also provided, wherein each second integrated circuit forms a field programmable gate array (FPGA), wherein the FPGA is configured by firmware to arrange a set of hardwired digital logic circuits that are interconnected by a plurality of physical interconnects for performing a second set of genomic processing steps of the sequence analysis segmentation, wherein the hardwired digital logic circuits of each FPGA are arranged as a set of processing engines for performing the second set of genomic processing steps. A shared memory is also provided.

Description

REFERÊNCIA CRUZADA A PEDIDO RELACIONADOCROSS-REFERENCE TO RELATED REQUEST

[001] O presente pedido reivindica a prioridade ao Pedido no U.S. 62/347.080, depositado em 7 de junho de 2016, Pedido no U.S. 62/399,582, depositado em 26 de setembro de 2016, Pedido no U.S. 62/414.637, depositado em 28 de outubro de 2016, Pedido no U.S. 15/404.146, depositado em 11 de janeiro de 2017, Pedido no U.S. 62/462.869, depositado em 23 de fevereiro de 2017, Pedido no U.S. 62/469.442, depositado em 9 de março de 2017 e Pedido no U.S. 15/497.149, depositado em 25 de abril de 2017, cujas revelações de cada pedido estão incorporadas ao presente documento a título de referência em sua totalidade.[001] This application claims priority to U.S. Application No. 62/347,080, filed June 7, 2016, U.S. Application No. 62/399,582, filed September 26, 2016, U.S. Application No. 62/414,637, filed October 28, 2016, U.S. Application No. 15/404,146, filed January 11, 2017, U.S. Application No. 62/462,869, filed February 23, 2017, U.S. Application No. 62/469,442, filed March 9, 2017, and U.S. Application No. 15/497,149, filed April 25, 2017, whose disclosures of each order are incorporated herein by reference in their entirety.

CAMPO DA REVELAÇÃOFIELD OF REVELATION

[002] A matéria descrita no presente documento refere-se a bioinformática e, mais particularmente, a sistemas, aparelhos e métodos para implantar protocolos de bioinformática, tais como realizar uma ou mais funções para analisar dados genômicos em um circuito integrado, tal como em uma plataforma de processamento em hardware.[002] The subject matter described in this document relates to bioinformatics and, more particularly, to systems, apparatus and methods for implementing bioinformatics protocols, such as performing one or more functions for analyzing genomic data on an integrated circuit, such as on a hardware processing platform.

ANTECEDENTES DA REVELAÇÃOBACKGROUND TO THE REVELATION

[003] Conforme descrito em detalhes no presente documento, alguns principais desafios computacionais para análise de sequenciamento de DNA de alto rendimento são solucionar o crescimento explosivo em dados genômicos disponíveis, a necessidade de precisão e sensibilidade aumentadas ao reunir esses dados e a necessidade de ferramentas computacionais rápidas, eficazes e precisas ao realizar análise em uma ampla gama de conjuntos de dados de sequenciamento derivados de tais dados genômicos.[003] As described in detail herein, some key computational challenges for high-throughput DNA sequencing analysis are addressing the explosive growth in available genomic data, the need for increased accuracy and sensitivity when assembling such data, and the need for fast, efficient, and accurate computational tools when performing analysis on a wide range of sequencing datasets derived from such genomic data.

[004] O acompanhamento de tal rendimento de sequenciamento aumentado gerado por Sequenciadores de Nova Geração tem sido tipicamente manifesto como ferramentas de software multiencadeadas que foram executadas em números sempre maiores de processadores mais rápidos em aglomerações de computadores com armazenamento de alta disponibilidade dispendioso que exige potência substancial e custos de suporte de TI significativos. De modo importante, aumentos futuros em taxas de rendimento de sequenciamento serão traduzidos em aceleração de custos reais em dólar para essas soluções de processamento secundário.[004] The accompaniment of such increased sequencing throughput generated by Next Generation Sequencers has typically been manifest as multi-threaded software tools that have been run on ever-increasing numbers of faster processors in clusters of computers with expensive high-availability storage that requires substantial power and significant IT support costs. Importantly, future increases in sequencing throughput rates will translate into accelerating real dollar costs for these secondary processing solutions.

[005] Os dispositivos, sistemas e métodos de seu uso descritos no presente documento são fornecidos, pelo menos em parte, de modo a solucionar esses e outros tais desafios.[005] The devices, systems, and methods of their use described herein are provided, at least in part, to address these and other such challenges.

SUMÁRIO DA REVELAÇÃOSUMMARY OF THE REVELATION

[006] A presente revelação é direcionada a dispositivos, sistemas e métodos para empregar os mesmos no desempenho de um ou mais protocolos de genômica e/ou bioinformática em dados gerados através de um procedimento de processamento primário, tal como em dados de sequência genética. Por exemplo, em vários aspectos, os dispositivos, sistemas e métodos fornecidos no presente documento são configurados para realizar protocolos de análise secundária e/ou terciária em dados genéticos, tais como dados gerados pelo sequenciamento de RNA e/ou DNA, por exemplo, por um Sequenciador de Nova Geração ("NGS"). Em modalidades particulares, uma ou mais tubulações de processamento secundário para processar dados de sequência genética são fornecidas. Em outras modalidades, uma ou mais tubulações de processamento terciário para processar dados de sequência genética são fornecidas, tais como quando as tubulações, e/ou elementos individuais das mesmas, entregam sensibilidade superior e precisão aprimorada em uma faixa mais ampla de dados derivados de sequência do que está atualmente disponível na técnica.[006] The present disclosure is directed to devices, systems, and methods for employing the same in performing one or more genomics and/or bioinformatics protocols on data generated through a primary processing procedure, such as on genetic sequence data. For example, in various aspects, the devices, systems, and methods provided herein are configured to perform secondary and/or tertiary analysis protocols on genetic data, such as data generated by RNA and/or DNA sequencing, e.g., by a Next Generation Sequencer ("NGS"). In particular embodiments, one or more secondary processing pipelines for processing genetic sequence data are provided. In other embodiments, one or more tertiary processing pipelines for processing genetic sequence data are provided, such as where the pipelines, and/or individual elements thereof, deliver superior sensitivity and improved accuracy over a broader range of sequence-derived data than is currently available in the art.

[007] Por exemplo, é fornecido no presente documento um sistema, tal como para executar uma ou mais dentre uma segmentação de análise de sequência e/ou genômica em dados de sequência genética e/ou outros dados derivados da mesma. Em várias modalidades, o sistema pode incluir uma ou mais dentre uma fonte de dados eletrônicos que fornece sinais digitais que representam uma pluralidade de leituras de dados genéticos e/ou genômicos, tal como quando cada uma dentre a pluralidade de leituras de dados genômicos inclui uma sequência de nucleotídeos. O sistema pode incluir adicionalmente, por exemplo, uma DRAM, ou um cache, tal como para armazenar uma ou mais das leituras sequenciadas, uma ou uma pluralidade de sequências genéticas de referência, e um ou mais índices da uma ou mais sequências genéticas de referência. O sistema pode incluir adicionalmente um ou mais circuitos integrados, tais como um FPGA, ASIC ou sASIC, e/ou uma CPU e/ou uma GPU, em que o circuito integrado, por exemplo, em relação ao FPGA, ASIC ou sASIC pode ser formado por um conjunto de circuitos lógicos digitais com fio que são interconectados por uma pluralidade de interconexões elétricas físicas. O sistema pode incluir adicionalmente uma unidade de processamento de computação quântica, para uso na implantação de um ou mais dos métodos revelados no presente documento.[007] For example, provided herein is a system, such as for performing one or more of a sequence and/or genomic analysis segments on genetic sequence data and/or other data derived therefrom. In various embodiments, the system may include one or more of an electronic data source that provides digital signals representing a plurality of genetic and/or genomic data reads, such as when each of the plurality of genomic data reads includes a nucleotide sequence. The system may further include, for example, a DRAM, or a cache, such as for storing one or more of the sequenced reads, one or a plurality of reference genetic sequences, and one or more indices of the one or more reference genetic sequences. The system may further include one or more integrated circuits, such as an FPGA, ASIC or sASIC, and/or a CPU and/or a GPU, wherein the integrated circuit, e.g., with respect to the FPGA, ASIC or sASIC may be formed by a set of hard-wired digital logic circuits that are interconnected by a plurality of physical electrical interconnects. The system may further include a quantum computing processing unit, for use in implementing one or more of the methods disclosed herein.

[008] Em várias modalidades, uma ou mais dentre a pluralidade de interconexões elétricas podem incluir uma entrada ao um ou mais circuitos integrados que podem ser conectados ou conectáveis, por exemplo, diretamente, por meio de uma conexão com fio, ou indiretamente, tal como por meio de uma conexão de rede sem fio (por exemplo, uma nuvem ou nuvem híbrida), com a fonte de dados eletrônicos. A despeito de uma conexão com o sequenciador, um circuito integrado da revelação pode ser configurado para receber a pluralidade de leituras de dados genômicos, por exemplo, diretamente do sequenciador ou de uma memória associada. As leituras podem ser codificadas digitalmente em um formato de arquivo FASTQ ou BCL padrão. Consequentemente, o sistema pode incluir um circuito integrado que tem uma ou mais interconexões elétricas que podem ser uma interconexão física que inclui uma interface de memória de modo a permitir que o circuito integrado acesse a memória.[008] In various embodiments, one or more of the plurality of electrical interconnects may include an input to the one or more integrated circuits that may be connected or connectable, e.g., directly, via a wired connection, or indirectly, such as via a wireless network connection (e.g., a cloud or hybrid cloud), to the electronic data source. Regardless of a connection to the sequencer, an integrated circuit of the disclosure may be configured to receive the plurality of genomic data reads, e.g., directly from the sequencer or from an associated memory. The reads may be digitally encoded in a standard FASTQ or BCL file format. Accordingly, the system may include an integrated circuit having one or more electrical interconnects that may be a physical interconnect that includes a memory interface so as to allow the integrated circuit to access memory.

[009] Particularmente, o circuito lógico digital com fio do circuito integrado pode ser disposto como um conjunto de mecanismos de processamento, tal como em que cada mecanismo de processamento pode ser formado por um subconjunto dos circuitos lógicos digitais com fio a fim de realizar uma ou mais etapas na segmentação de análise de sequência, genômica e/ou terciária, conforme descrito abaixo no presente documento, na pluralidade de leituras de dados genéticos, assim como em outros dados derivados dos mesmos. Por exemplo, cada subconjunto dos circuitos lógicos digitais com fio pode estar em uma configuração com fio para realizar a uma ou mais etapas na segmentação de análise. Adicionalmente, quando o circuito integrado é um FPGA, tais etapas na sequência e/ou processo de análise adicional podem envolver a reconfiguração parcial do FPGA durante o processo de análise.[009] In particular, the hardwired digital logic circuitry of the integrated circuit may be arranged as a set of processing engines, such as wherein each processing engine may be formed by a subset of the hardwired digital logic circuitry for performing one or more steps in the sequence, genomic, and/or tertiary analysis segmentation, as described herein below, on the plurality of genetic data reads, as well as other data derived therefrom. For example, each subset of the hardwired digital logic circuitry may be in a hardwired configuration for performing one or more steps in the analysis segmentation. Additionally, when the integrated circuit is an FPGA, such steps in the sequence and/or further analysis process may involve partial reconfiguration of the FPGA during the analysis process.

[010] Particularmente, o conjunto de mecanismos de processamento pode incluir um módulo de mapeamento, por exemplo, em uma configuração com fio para acessar, de acordo com pelo menos parte da sequência de nucleotídeos em uma leitura da pluralidade de leituras, o índice da uma ou mais sequências de referência genética a partir da memória por meio da interface de memória a fim de mapear a leitura para um ou mais segmentos da uma ou mais sequências de referência genética com base no índice. Adicionalmente, o conjunto de mecanismos de processamento pode incluir um módulo de alinhamento na configuração com fio para acessar a uma ou mais sequências de referência genética a partir da memória por meio da interface de memória para alinhar a leitura, por exemplo, a leitura mapeada, a uma ou mais posições no um ou mais segmentos da uma ou mais sequências de referência genética, por exemplo, conforme recebido a partir do módulo de mapeamento e/ou armazenado na memória.[010] Particularly, the set of processing engines may include a mapping module, e.g., in a wired configuration for accessing, according to at least part of the nucleotide sequence in a read of the plurality of reads, the index of the one or more genetic reference sequences from memory via the memory interface in order to map the read to one or more segments of the one or more genetic reference sequences based on the index. Additionally, the set of processing engines may include an alignment module in the wired configuration for accessing the one or more genetic reference sequences from memory via the memory interface to align the read, e.g., the mapped read, to one or more positions in the one or more segments of the one or more genetic reference sequences, e.g., as received from the mapping module and/or stored in memory.

[011] Adicionalmente, o conjunto de mecanismos de processamento pode incluir um módulo de classificação de modo a classificar cada leitura alinhada de acordo com a uma ou mais posições na uma ou mais sequências de referência genética. Além disso, o conjunto de mecanismos de processamento pode incluir um módulo de chamada de variante, tal como para processar as leituras mapeadas, alinhadas e/ou classificadas, tal como em relação a um genoma de referência, para, assim, produzir uma leitura de HMM e/ou arquivo de chamada de variante para uso com e/ou detalhar as variações entre os dados genéticos sequenciados e os dados genômicos de referência. Em vários casos, uma ou mais dentre a pluralidade de interconexões elétricas físicas podem incluir uma saída do circuito integrado para comunicar dados de resultado do módulo de mapeamento e/ou dos módulos de alinhamento e/ou classificação e/ou chamada de variante.[011] Additionally, the set of processing engines may include a classification module for classifying each aligned read according to one or more positions in the one or more genetic reference sequences. Furthermore, the set of processing engines may include a variant calling module, such as for processing the mapped, aligned, and/or classified reads, such as against a reference genome, to thereby produce a read HMM and/or variant calling file for use with and/or detailing variations between the sequenced genetic data and the reference genomic data. In various instances, one or more of the plurality of physical electrical interconnects may include an output of the integrated circuit for communicating output data from the mapping module and/or the alignment and/or classification and/or variant calling modules.

[012] Particularmente, em relação ao módulo de mapeamento, em várias modalidades, é fornecido um sistema para executar uma segmentação de análise de mapeamento em uma pluralidade de leituras de dados genéticos com o uso de um índice de dados genéticos de referência. Em diversos casos, a sequência genética, por exemplo, leitura, e/ou os dados genéticos de referência podem ser representados por uma sequência de nucleotídeos, que pode ser armazenada em uma memória do sistema. O módulo de mapeamento pode estar incluído dentro do circuito integrado e pode ser formado por um conjunto de circuitos lógicos digitais pré-configurados e/ou com fio que são interconectados por uma pluralidade de interconexões elétricas físicas, em que as interconexões elétricas físicas podem incluir uma interface de memória para permitir que o circuito integrado acesse a memória. Em mais modalidades particulares, os circuitos lógicos digitais com fio podem ser dispostos como um conjunto de mecanismos de processamento, tal como em que cada mecanismo de processamento é formado por um subconjunto dos circuitos lógicos digitais com fio para realizar uma ou mais etapas na segmentação de análise de sequência na pluralidade de leituras de dados genômicos.[012] Particularly, with respect to the mapping module, in various embodiments, a system is provided for performing a mapping analysis segmentation on a plurality of genetic data reads using a reference genetic data index. In various cases, the genetic sequence, e.g., read, and/or the reference genetic data may be represented by a nucleotide sequence, which may be stored in a system memory. The mapping module may be included within the integrated circuit and may be formed by a set of preconfigured and/or wired digital logic circuits that are interconnected by a plurality of physical electrical interconnects, wherein the physical electrical interconnects may include a memory interface to allow the integrated circuit to access the memory. In more particular embodiments, the hardwired digital logic circuits may be arranged as a set of processing engines, such as wherein each processing engine is formed by a subset of the hardwired digital logic circuits to perform one or more steps in segmenting sequence analysis on the plurality of genomic data reads.

[013] Por exemplo, em uma modalidade, o conjunto de mecanismos de processamento pode incluir um módulo de mapeamento em uma configuração com fio, em que o módulo de mapeamento e/ou um ou mais mecanismos de processamento do mesmo são configurados para receber uma leitura de dados genômicos, tal como por meio de uma ou mais de uma pluralidade de interconexões elétricas físicas e para extrair uma porção da leitura de tal maneira que gere uma semente a partir da mesma. Em tal caso, a leitura pode ser representada por uma sequência de nucleotídeos, e uma semente pode representar um subconjunto de nucleotídeos representados pela leitura. O módulo de mapeamento pode incluir ou ser conectável a uma memória que inclui uma ou mais das leituras, uma ou mais das sementes das leituras, pelo menos uma porção de um ou mais dos genomas de referência e/ou um ou mais índices, tais como um índice construído a partir do um ou mais genomas de referência. Em certos casos, um mecanismo de processamento do módulo de mapeamento emprega a semente e o índice para calcular um endereço dentro do índice com base na semente.[013] For example, in one embodiment, the set of processing engines may include a mapping module in a wired configuration, wherein the mapping module and/or one or more processing engines thereof are configured to receive a read of genomic data, such as via one or more of a plurality of physical electrical interconnections, and to extract a portion of the read in such a manner as to generate a seed therefrom. In such a case, the read may be represented by a sequence of nucleotides, and a seed may represent a subset of nucleotides represented by the read. The mapping module may include or be connectable to a memory that includes one or more of the reads, one or more of the seeds of the reads, at least a portion of one or more of the reference genomes, and/or one or more indexes, such as an index constructed from the one or more reference genomes. In certain cases, a processing engine of the mapping module employs the seed and the index to calculate an address within the index based on the seed.

[014] Uma vez que um endereço tenha sido calculado ou derivado e/ou armazenado de outro modo, tal como em uma memória integrada ou não integrada, o endereço pode ser acessado no índice na memória de modo a receber um registro a partir do endereço, tal como um registro que representa informações de posição na sequência genética de referência. As informações de posição podem ser, então, usadas para determinar uma ou mais posições correspondentes a partir da leitura à sequência genética de referência com base no registro. Então, pelo menos uma das posições correspondentes pode ser uma saída para memória por meio da interface de memória.[014] Once an address has been calculated or derived and/or otherwise stored, such as in an integrated or non-integrated memory, the address may be accessed in the index in the memory so as to receive a record from the address, such as a record representing position information in the reference genetic sequence. The position information may then be used to determine one or more corresponding positions from the read to the reference genetic sequence based on the record. Then, at least one of the corresponding positions may be output to memory via the memory interface.

[015] Em outra modalidade, um conjunto dos mecanismos de processamento pode incluir um módulo de alinhamento, tal como em uma configuração pré- configurada e/ou com fio. Nesse caso, um ou mais dos mecanismos de processamento podem ser configurados para receber uma ou mais das posições mapeadas para os dados de leitura por meio de uma ou mais dentre a pluralidade de interconexões elétricas físicas. Então, a memória (interna ou externa) pode ser acessada para cada posição mapeada para recuperar um segmento da sequência/genoma de referência que corresponde à posição mapeada. Um alinhamento da leitura a cada segmento de referência recuperado pode ser calculado juntamente com uma pontuação para o alinhamento. Uma vez calculado, pelo menos um alinhamento com melhor pontuação da leitura pode ser selecionado e emitido. Em diversos casos, o módulo de alinhamento pode também implantar um algoritmo de programação dinâmica ao calcular o alinhamento, tal como um ou mais dentre um algoritmo de Smith-Waterman, por exemplo, com pontuação de lacuna linear ou afim, um algoritmo de alinhamento com lacuna e/ou um algoritmo de alinhamento sem lacuna. Em casos particulares, o cálculo do alinhamento pode incluir realizar primeiramente um alinhamento sem lacuna para cada segmento de referência e, com base nos resultados do alinhamento sem lacuna, selecionar segmentos de referência com os quais realizar adicionalmente os alinhamentos com lacuna.[015] In another embodiment, a set of the processing engines may include an alignment module, such as in a pre-configured and/or wired configuration. In this case, one or more of the processing engines may be configured to receive one or more of the mapped positions for the read data via one or more of the plurality of physical electrical interconnects. Then, memory (internal or external) may be accessed for each mapped position to retrieve a segment of the reference sequence/genome that corresponds to the mapped position. An alignment of the read to each retrieved reference segment may be calculated along with a score for the alignment. Once calculated, at least one best-scoring alignment of the read may be selected and output. In various cases, the alignment module may also implement a dynamic programming algorithm when calculating the alignment, such as one or more of a Smith-Waterman algorithm, e.g., with linear or affine gap scoring, a gapped alignment algorithm, and/or a gapless alignment algorithm. In particular cases, the alignment calculation may include first performing a gapless alignment for each reference segment and, based on the results of the gapless alignment, selecting reference segments with which to additionally perform gapped alignments.

[016] Em várias modalidades, um módulo de chamada de variante pode ser fornecido para realizar funções de chamada de variante que, quando implantadas em uma ou ambas as configurações de software e/ou hardware geram velocidade de processamento superior, melhor precisão de resultado processado e eficácia geral aumentada em relação a métodos, dispositivos e sistemas atualmente conhecidos na técnica. Especificamente, em um aspecto, são fornecidos métodos aprimorados para realizar operações de chamada de variante em software e/ou em hardware, tal como para realizar uma ou mais operações de HMM em dados de sequência genética. Em outro aspecto, são fornecidos dispositivos inovadores, incluindo um circuito integrado para realizar tais operações de chamada de variante, em que pelo menos uma porção da operação de chamada de variante é implantada em hardware.[016] In various embodiments, a variant calling module may be provided to perform variant calling functions that, when implemented in one or both of the software and/or hardware configurations, yield superior processing speed, improved accuracy of processed output, and increased overall efficiency relative to methods, devices, and systems currently known in the art. Specifically, in one aspect, improved methods for performing variant calling operations in software and/or in hardware are provided, such as for performing one or more HMM operations on genetic sequence data. In another aspect, novel devices including an integrated circuit for performing such variant calling operations are provided, wherein at least a portion of the variant calling operation is implemented in hardware.

[017] Consequentemente, em diversos casos, os métodos revelados no presente documento incluem mapear, por um primeiro subconjunto de circuitos lógicos digitais com fio e/ou quânticos, uma pluralidade de leituras para um ou mais segmentos de uma ou mais sequências genéticas de referência. Adicionalmente, os métodos podem incluir acessar, por meio dos circuitos integrados e/ou quânticos, por exemplo, por uma ou mais da pluralidade de interconexões elétricas físicas a partir da memória ou um cache associado à mesma, uma ou mais das leituras mapeadas e/ou uma ou mais das sequências de referência genética e alinhar, por meio de um segundo subconjunto dos circuitos lógicos digitais com fio e/ou quânticos, a pluralidade de leituras mapeadas, ao um ou mais segmentos da uma ou mais sequências de referência genética.[017] Accordingly, in various instances, the methods disclosed herein include mapping, by a first subset of hardwired and/or quantum digital logic circuits, a plurality of reads to one or more segments of one or more genetic reference sequences. Additionally, the methods may include accessing, via the hardwired and/or quantum digital logic circuits, e.g., via one or more of the plurality of physical electrical interconnects from memory or a cache associated therewith, one or more of the mapped reads and/or one or more of the genetic reference sequences and aligning, via a second subset of the hardwired and/or quantum digital logic circuits, the plurality of mapped reads to the one or more segments of the one or more genetic reference sequences.

[018] Em diversas modalidades, o método pode incluir adicionalmente acessar, por meio do circuito integrado e/ou quântico, por exemplo, por uma ou mais da pluralidade de interconexões elétricas físicas a partir de uma memória ou um cache associado à mesma, a pluralidade alinhada de leituras. Em tal caso, o método pode incluir classificar, por meio de um terceiro subconjunto dos circuitos lógicos digitais com fio e/ou quânticos, a pluralidade alinhada de leituras de acordo com suas posições na uma ou mais sequências de referência genética. Em determinados casos, o método pode incluir adicionalmente emitir, tal como por uma ou mais da pluralidade de interconexões elétricas físicas do circuito integrado e/ou quântico, dados de resultado do mapeamento e/ou do alinhamento e/ou da classificação, tal como quando os dados de resultado incluem posições da pluralidade de leituras mapeadas e/ou alinhadas e/ou classificadas.[018] In various embodiments, the method may further include accessing, via the integrated and/or quantum circuit, e.g., via one or more of the plurality of physical electrical interconnects from a memory or a cache associated therewith, the aligned plurality of reads. In such a case, the method may include sorting, via a third subset of the hardwired and/or quantum digital logic circuits, the aligned plurality of reads according to their positions in the one or more genetic reference sequences. In certain cases, the method may further include outputting, such as via one or more of the plurality of physical electrical interconnects of the integrated and/or quantum circuit, result data of the mapping and/or alignment and/or sorting, such as when the result data includes positions of the plurality of mapped and/or aligned and/or sorted reads.

[019] Em alguns casos, o método pode incluir adicionalmente usar os dados de resultado obtidos, tal como por um subconjunto adicional dos circuitos lógicos digitais com fio e/ou quânticos, para o propósito de determinar como os dados mapeados, alinhados e/ou classificados, derivados da amostra genética sequenciada do sujeito, diferem de uma sequência de referência, de modo a produzir um arquivo de chamada de variante que delineia as diferenças genéticas entre as duas amostras. Consequentemente, em diversas modalidades, o método pode incluir adicionalmente acessar, por meio do circuito integrado e/ou quântico, por exemplo, por uma ou mais da pluralidade de interconexões elétricas físicas a partir de uma memória ou um cache associado à mesma, a pluralidade mapeada e/ou alinhada e/ou classificada de leituras. Em tal caso, o método pode incluir realizar uma função de chamada de variante, por exemplo, uma operação de HMM ou HMM pareado, nas leituras acessadas, por um terceiro ou quarto subconjunto dos circuitos lógicos digitais com fio e/ou quânticos, de modo a produzir um arquivo de chamada de variante que detalha como as leituras mapeadas, alinhadas e/ou classificadas variam em relação àquela de uma ou mais sequências de referência, por exemplo, haplótipo.[019] In some cases, the method may further include using the result data obtained, such as by a further subset of the hardwired and/or quantum digital logic circuits, for the purpose of determining how the mapped, aligned, and/or classified data derived from the sequenced genetic sample of the subject differs from a reference sequence, so as to produce a variant call file that delineates the genetic differences between the two samples. Accordingly, in various embodiments, the method may further include accessing, via the hardwired and/or quantum circuit, e.g., via one or more of the plurality of physical electrical interconnects from a memory or a cache associated therewith, the mapped and/or aligned and/or classified plurality of reads. In such a case, the method may include performing a variant calling function, e.g., an HMM or pairwise HMM operation, on the reads accessed by a third or fourth subset of the hardwired and/or quantum digital logic circuits so as to produce a variant calling file that details how the mapped, aligned, and/or classified reads vary relative to that of one or more reference sequences, e.g., haplotype.

[020] Consequentemente, em conformidade com aspectos particulares da revelação, é apresentado no presente documento um hardware compacto, por exemplo, baseado em chip, ou plataforma acelerada quântica para realizar análises secundárias e/ou terciárias em dados de sequenciamento genético e/ou genômico. Particularmente, é fornecida uma plataforma ou segmentação de circuitos lógicos digitais com fio e/ou quânticos que foi especificamente designada para realizar análise secundária e/ou terciária, tal como em dados genéticos sequenciados ou dados genômicos derivados dos mesmos. Particularmente, um conjunto de circuitos lógicos com fio digital e/ou quânticos, que pode estar disposto como um conjunto de mecanismos de processamento, pode ser fornecido, tal como quando os mecanismos de processamento podem estar presentes em uma configuração pré- configurada e/ou configuração com fio e/ou quântica em uma plataforma de processamento da revelação e pode ser especificamente projetado para realizar operações secundárias de mapeamento e/ou alinhamento e/ou chamada de variante relacionadas à análise genética em dados de DNA e/ou RNA e/ou pode ser especificamente projetado para realizar outro processamento terciário nos dados de resultados.[020] Accordingly, in accordance with particular aspects of the disclosure, there is disclosed herein a compact, e.g., chip-based, hardware or quantum accelerated platform for performing secondary and/or tertiary analysis on genetic and/or genomic sequencing data. In particular, there is provided a platform or array of wired and/or quantum digital logic circuits that has been specifically designed to perform secondary and/or tertiary analysis, such as on sequenced genetic data or genomic data derived therefrom. In particular, a set of digital hardwired and/or quantum logic circuits, which may be arranged as a set of processing engines, may be provided, such as where the processing engines may be present in a pre-configured configuration and/or hardwired and/or quantum configuration on a processing platform of the disclosure, and may be specifically designed to perform secondary mapping and/or alignment and/or variant calling operations related to genetic analysis on DNA and/or RNA data, and/or may be specifically designed to perform other tertiary processing on the result data.

[021] Em casos particulares, os presentes dispositivos, sistemas e métodos para empregar os mesmos no desempenho de um ou mais protocolos de processamento secundário e/ou terciário de genômica e/ou bioinformática foram otimizados de modo a entregar um aprimoramento em velocidade de processamento, ou seja, ordens de magnitude mais rápidas que segmentações de processamento secundário padrão que são implantadas em software. Adicionalmente, as segmentações e/ou componentes das mesmas conforme apresentado no presente documento fornecem melhor sensibilidade e precisão em uma ampla gama de conjuntos de dados derivados de sequência para os propósitos de processamento de genômica e bioinformática. Em diversos casos, uma ou mais dessas operações podem ser realizadas por um circuito integrado que é parte de ou configurado como uma unidade de processamento central de propósito geral e/ou uma unidade de processamento de gráficos e/ou uma unidade de processamento quântico.[021] In particular cases, the present devices, systems and methods for employing the same in the performance of one or more genomics and/or bioinformatics secondary and/or tertiary processing protocols have been optimized so as to deliver an improvement in processing speed, i.e., orders of magnitude faster than standard secondary processing segmentations that are implemented in software. Additionally, the segmentations and/or components thereof as presented herein provide improved sensitivity and accuracy across a wide range of sequence-derived data sets for genomics and bioinformatics processing purposes. In various cases, one or more of these operations may be performed by an integrated circuit that is part of or configured as a general purpose central processing unit and/or a graphics processing unit and/or a quantum processing unit.

[022] Por exemplo, genômica e bioinformática são campos que se preocupam com a aplicação de tecnologia de informações e ciência do computador ao campo de genética e/ou biologia molecular. Em particular, técnicas de bioinformática podem ser aplicadas para processar e analisar diversos dados genéticos e/ou genômicos, tais como de um indivíduo, a fim de determinar informações qualitativas e quantitativas sobre aqueles dados que podem ser, então, usados por diversos praticantes no desenvolvimento de métodos profiláticos, terapêuticos e/ou diagnósticos para prevenir, tratar, melhorar e/ou pelo menos identificar estados de doença e/ou seu potencial e, dessa forma, aperfeiçoar a segurança, a qualidade e a eficácia de assistência médica em um nível individualizado. Portanto, devido ao seu foco no avanço de assistência médica personalizada, os campos de genômica e bioinformática promovem assistência médica individualizada que é proativa, em vez de reativa, e isso dá ao indivíduo que precisa de tratamento a oportunidade de se tornar mais envolvido em seu próprio bem-estar. Uma vantagem de empregar tecnologias de genética, genômica e/ou bioinformática reveladas no presente documento é que as análises qualitativas e/ou quantitativas de dados biológicos moleculares, por exemplo, genéticos, podem ser realizadas em uma faixa mais ampla de conjuntos de amostra em uma taxa muito maior de velocidade e, muitas vezes, mais precisamente, expedindo, dessa forma, a emergência de um sistema de assistência médica personalizada. Particularmente, em várias modalidades, as tarefas relacionadas a genômica e/ou bioinformática podem formar uma segmentação de genômica que inclui uma ou mais dentre uma segmentação de análise de microarranjo, um genoma, por exemplo, segmentação de análise de genoma inteiro, segmentação de análise de genotipagem, segmentação de análise de exoma, segmentação de análise de epigenoma, segmentação de análise de metagenoma, segmentação de análise de microbioma, segmentação de análise de genotipagem, incluindo genotipagem de junta, segmentações de análise de variantes, incluindo variantes estruturais, variantes somáticas, e GATK, assim como sequenciamento de RNA e outras segmentações de análises genéticas.[022] For example, genomics and bioinformatics are fields that are concerned with the application of information technology and computer science to the field of genetics and/or molecular biology. In particular, bioinformatics techniques can be applied to process and analyze various genetic and/or genomic data, such as from an individual, in order to determine qualitative and quantitative information about that data that can then be used by various practitioners in the development of prophylactic, therapeutic, and/or diagnostic methods to prevent, treat, ameliorate, and/or at least identify disease states and/or their potential, and thereby improve the safety, quality, and effectiveness of health care on an individualized level. Therefore, because of their focus on advancing personalized health care, the fields of genomics and bioinformatics promote individualized health care that is proactive rather than reactive, and that gives the individual in need of treatment the opportunity to become more involved in his or her own well-being. An advantage of employing genetics, genomics and/or bioinformatics technologies disclosed herein is that qualitative and/or quantitative analyses of molecular biological, e.g. genetic, data can be performed on a broader range of sample sets at a much greater rate of speed and often more accurately, thereby expediting the emergence of a personalized healthcare system. Particularly, in various embodiments, the genomics and/or bioinformatics related tasks may form a genomics segmentation that includes one or more of a microarray analysis segmentation, a genome, e.g., whole genome analysis segmentation, genotyping analysis segmentation, exome analysis segmentation, epigenome analysis segmentation, metagenome analysis segmentation, microbiome analysis segmentation, genotyping analysis segmentation including joint genotyping, variant analysis segmentations including structural variants, somatic variants, and GATK, as well as RNA sequencing and other genetic analysis segmentations.

[023] Consequentemente, para fazer uso dessas vantagens, existem implantações de software intensificadas e mais precisas para realizar uma ou uma série de tais técnicas analíticas baseadas em bioinformática, tal como para alocação por uma CPU e/ou GPU de propósito geral e/ou podem ser implantadas em um ou mais circuitos quânticos de uma plataforma de processamento quântico. Entretanto, as características comuns de tais métodos e sistemas de bioinformática com base em software tipicamente configurados é que os mesmos são trabalhosos, levam muito tempo para executar em tais processadores de propósito geral e são propensos erros. Portanto, sistemas de bioinformática, conforme implantados no presente documento, que poderiam executar esses algoritmos, tal como implantado em software por uma CPU e/ou GPU de unidade de processamento quântico de uma maneira menos intensa em trabalho e/ou processamento com uma precisão percentual maior poderiam ser implantados.[023] Accordingly, to make use of these advantages, there are enhanced and more accurate software implementations to perform one or a series of such bioinformatics-based analytical techniques, such as for allocation by a general purpose CPU and/or GPU and/or may be implemented on one or more quantum circuits of a quantum processing platform. However, common characteristics of such methods and typically configured software-based bioinformatics systems are that they are labor intensive, time consuming to execute on such general purpose processors, and error prone. Therefore, bioinformatics systems, as implemented herein, that could execute these algorithms, as implemented in software by a quantum processing unit CPU and/or GPU in a less labor intensive manner and/or processing with a higher percentage accuracy could be implemented.

[024] Tais implantações foram desenvolvidas e são apresentadas no presente documento, tal como quando as análises de genômica e/ou bioinformática são realizadas por software otimizado executado em uma CPU e/ou GPU e/ou computador quântico em um sistema que faz uso dos dados de sequência genética derivados pelas unidades de processamento e/ou circuitos integrados da revelação. Ademais, deve-se perceber que o custo de analisar, armazenar e compartilhar esses dados digitais brutos ultrapassou muito o custo de produzir o mesmo. Consequentemente, são também apresentados no presente documento métodos de armazenamento e/ou recuperação "no momento exato" que otimizam o armazenamento de tais dados de uma maneira que substitui a velocidade de regeneração dos dados em troca do custo de armazenamento de tais dados coletivamente. Logo, a geração de dados, a análise e os métodos de armazenamento "no momento exato" ou "JIT" apresentados no presente documento solucionam um gargalo chave que é um obstáculo percebido a muito tempo, mas não solucionado, que surge entre a geração e o armazenamento de dados brutos sempre crescente e a percepção médica real que se busca a partir dos mesmos.[024] Such implementations have been developed and are presented herein, such as when genomics and/or bioinformatics analyses are performed by optimized software running on a CPU and/or GPU and/or quantum computer in a system that makes use of the genetic sequence data derived by the processing units and/or integrated circuits of the developer. Furthermore, it should be realized that the cost of analyzing, storing, and sharing such raw digital data has far exceeded the cost of producing it. Accordingly, "just-in-time" storage and/or retrieval methods that optimize the storage of such data in a manner that trades off the speed of data regeneration in exchange for the cost of storing such data collectively are also presented herein. Thus, the "just-in-time" or "JIT" data generation, analysis, and storage methods presented herein address a key bottleneck that is a long-perceived but unaddressed obstacle that arises between the generation and storage of ever-increasing raw data and the actual medical insight sought therefrom.

[025] São apresentados no presente documento, portanto, sistemas, aparelhos e métodos para implantar protocolos de genômica e/ou bioinformática ou porções dos mesmos, tal como para realizar uma ou mais funções para analisar dados genômicos, por exemplo, em um ou ambos dentre um circuito integrado, tal como em uma plataforma de processamento de hardware, e um processador de propósito geral, tal como para realizar uma ou mais operações bioanalíticas em software e/ou em firmware. Por exemplo, conforme apresentado abaixo no presente documento, em várias implantações, um circuito integrado e/ou circuito quântico é fornecido de modo a acelerar um ou mais processos em uma plataforma de processamento primário, secundário e/ou terciário. Em diversos casos, o circuito integrado pode ser empregado na realização de tarefas analíticas relacionadas à genética, tal como mapeamento, alinhamento, chamada de variante, compressão, descompressão e similares, de uma maneira acelerada, e como tal o circuito integrado pode incluir uma configuração acelerada por hardware. Adicionalmente, em diversos casos, um circuito integrado e/ou quântico pode ser fornecido tal como quando o circuito é parte de uma unidade de processamento que é configurada para realizar um ou mais protocolos de genômica e/ou bioinformática nos dados mapeados e/ou alinhados e/ou com chamada de variante gerados.[025] Therefore, disclosed herein are systems, apparatus, and methods for implementing genomics and/or bioinformatics protocols or portions thereof, such as for performing one or more functions for analyzing genomic data, e.g., in one or both of an integrated circuit, such as in a hardware processing platform, and a general purpose processor, such as for performing one or more bioanalytical operations in software and/or firmware. For example, as disclosed below herein, in various implementations, an integrated circuit and/or quantum circuit is provided to accelerate one or more processes in a primary, secondary, and/or tertiary processing platform. In various cases, the integrated circuit may be employed to perform genetics-related analytical tasks, such as mapping, alignment, variant calling, compression, decompression, and the like, in an accelerated manner, and as such the integrated circuit may include a hardware-accelerated configuration. Additionally, in various cases, an integrated and/or quantum circuit may be provided such as when the circuit is part of a processing unit that is configured to perform one or more genomics and/or bioinformatics protocols on the generated mapped and/or aligned and/or variant-called data.

[026] Particularmente, em uma primeira modalidade, um primeiro circuito integrado pode ser formado por um FPGA, ASIC e/ou sASIC que é acoplado a ou fixado de outro modo à placa-mãe e configurado, ou, no caso de um FPGA, pode ser programável por firmware para ser configurado, como um conjunto de circuitos lógicos digitais com fio que são adaptados para realizar pelo menos um primeiro conjunto de funções de análise de sequências em uma segmentação de análise de genômica, tal como quando o circuito integrado é configurado conforme descrito acima no presente documento para incluir um ou mais circuitos lógicos digitais que são dispostos como um conjunto de mecanismos de processamento, que são adaptados para realizar uma ou mais etapas em uma operação de mapeamento, alinhamento e/ou chamada de variante nos dados genéticos de modo a produzir dados de resultados de análise de sequências. O primeiro circuito integrado pode incluir adicionalmente uma saída, por exemplo, formada por uma pluralidade de interconexões elétricas físicas, tal como para comunicar os dados de resultado do mapeamento e/ou do alinhamento e/ou outros procedimentos à memória.[026] Particularly, in a first embodiment, a first integrated circuit may be formed by an FPGA, ASIC, and/or sASIC that is coupled to or otherwise secured to the motherboard and configured, or, in the case of an FPGA, may be firmware programmable to be configured, as a set of hard-wired digital logic circuits that are adapted to perform at least a first set of sequence analysis functions in a genomic analysis segment, such as when the integrated circuit is configured as described above herein to include one or more digital logic circuits that are arranged as a set of processing engines, which are adapted to perform one or more steps in a mapping, alignment, and/or variant calling operation on the genetic data so as to produce sequence analysis result data. The first integrated circuit may further include an output, e.g., formed by a plurality of physical electrical interconnections, such as for communicating the result data of the mapping and/or alignment and/or other procedures to memory.

[027] Adicionalmente, um segundo circuito integrado e/ou quântico pode estar incluído, acoplado ou fixado de outro modo à placa-mãe e em comunicação com a memória por meio de uma interface de comunicações. O segundo circuito integrado e/ou quântico pode ser formado como uma unidade de processamento central (CPU) ou uma unidade de processamento de gráfico (GPU) ou uma unidade de processamento quântico (QPU) que é configurada para receber os dados de resultado de análise de sequências mapeadas e/ou alinhadas e/ou com chamada de variante e pode ser adaptado para ser responsivo a um ou mais algoritmos de software que são configurados para instruir a CPU ou GPU para realizar uma ou mais funções de genômica e/ou bioinformática da segmentação de análise genômica nos dados de resultado de análise de sequências mapeadas, alinhadas e/ou com chamada de variante. Especificamente, as tarefas relacionadas a genômica e/ou bioinformática podem formar uma segmentação de análise de genômica que inclui uma ou mais dentre uma análise de microarranjo, uma segmentação de genoma, por exemplo, segmentação de análise de genoma inteiro, segmentação de análise de genotipagem, segmentação de análise de exoma, segmentação de análise de epigenoma, segmentação de análise de metagenoma, segmentação de análise de microbioma, segmentações de análises de genotipagem, incluindo genotipagem conjunta, segmentações de análises de variantes, incluindo variantes estruturais, variantes somáticas, e GATK, assim como segmentação de análise de sequenciamento de RNA e outras segmentações de análises genéticas.[027] Additionally, a second integrated and/or quantum circuit may be included, coupled, or otherwise secured to the motherboard and in communication with the memory via a communications interface. The second integrated and/or quantum circuit may be formed as a central processing unit (CPU) or a graphics processing unit (GPU) or a quantum processing unit (QPU) that is configured to receive the mapped and/or aligned and/or variant-called sequence analysis result data and may be adapted to be responsive to one or more software algorithms that are configured to instruct the CPU or GPU to perform one or more genomic and/or bioinformatics functions of genomic analysis segmentation on the mapped, aligned, and/or variant-called sequence analysis result data. Specifically, the genomics and/or bioinformatics related tasks may form a genomics analysis segmentation that includes one or more of a microarray analysis, a genome segmentation, e.g., whole genome analysis segmentation, genotyping analysis segmentation, exome analysis segmentation, epigenome analysis segmentation, metagenome analysis segmentation, microbiome analysis segmentation, genotyping analysis segmentations including joint genotyping, variant analysis segmentations including structural variants, somatic variants, and GATK, as well as RNA sequencing analysis segmentation, and other genetic analysis segmentations.

[028] Por exemplo, em uma modalidade, a CPU e/ou GPU e/ou QPU do segundo circuito integrado podem inclui software que é configurado para dispor a segmentação de análise de genoma para executar uma segmentação de análise de genoma inteiro, tal como uma segmentação de análise de genoma inteiro que inclui uma ou mais dentre análise de variação de todo o genoma, análise de DNA de exoma inteiro, análise de RNA de transcriptoma inteiro, análise de função de gene, análise de função de proteína, análise de ligação de proteína, análise de gene quantitativa e/ou uma análise de montagem de gene. Em diversos casos, a segmentação de análise de genoma inteiro pode ser realizada para os propósitos de um ou mais dentre análise de ascendência, análise de histórico médico pessoal, diagnóstico de doença, constatação de fármaco e/ou perfilação de proteína. Em um caso particular, a segmentação de análise de genoma inteiro é realizada para os propósitos de análise de oncologia. Em diversos casos, os resultados desses dados podem estar disponíveis, por exemplo, globalmente, por todo o sistema.[028] For example, in one embodiment, the CPU and/or GPU and/or QPU of the second integrated circuit may include software that is configured to arrange the genome analysis segmentation to perform a whole genome analysis segmentation, such as a whole genome analysis segmentation that includes one or more of whole genome variation analysis, whole exome DNA analysis, whole transcriptome RNA analysis, gene function analysis, protein function analysis, protein binding analysis, quantitative gene analysis, and/or a gene assembly analysis. In various instances, the whole genome analysis segmentation may be performed for the purposes of one or more of ancestry analysis, personal medical history analysis, disease diagnosis, drug discovery, and/or protein profiling. In a particular instance, the whole genome analysis segmentation is performed for the purposes of oncology analysis. In various instances, the results of this data may be available, for example, globally, throughout the system.

[029] Em diversos casos, a CPU e/ou GPU e/ou uma unidade de processamento quântico (QPU) do segundo circuito integrado e/ou quântico podem incluir software que é configurado para dispor a segmentação de análise de genoma para executar uma análise de genotipagem, tal como uma análise de genotipagem que inclui genotipagem conjunta. Por exemplo, a análise de genotipagem conjunta pode ser realizada com o uso de um cálculo de probabilidade bayesiana, tal como um cálculo de probabilidade bayesiana que resulta em uma probabilidade absoluta de que um dado genótipo determinado e um genótipo verdadeiro. Em outros casos, o software pode ser configurado para realizar uma análise de metagenoma de modo a produzir dados de resultado de metagenoma que podem, por sua vez, ser empregados no desempenho de uma análise de microbioma.[029] In various cases, the CPU and/or GPU and/or a quantum processing unit (QPU) of the second integrated circuit and/or quantum may include software that is configured to arrange the genome analysis segmentation to perform a genotyping analysis, such as a genotyping analysis that includes joint genotyping. For example, the joint genotyping analysis may be performed using a Bayesian probability calculation, such as a Bayesian probability calculation that results in an absolute probability that a given genotype is a true genotype. In other cases, the software may be configured to perform a metagenome analysis so as to produce metagenome output data that may in turn be used in performing a microbiome analysis.

[030] Em certos casos, o primeiro e/ou o segundo circuito integrado e/ou a memória podem ser alojados em um cartão de expansão, tal como um cartão de interconexão de componente periférico (PCI). Por exemplo, em várias modalidades, um ou mais dos circuitos integrados podem ser um ou mais chips acoplados a um cartão de PCIe ou de outro modo associados à placa-mãe. Em diversos casos, o circuito (ou circuitos) integrado e/ou quântico e/ou chip (ou chips) podem ser um componente dentro de um sequenciador ou computador, ou servidor, tal como parte de uma fazenda de servidores. Em modalidades particulares, o circuito (ou circuitos) integrado e/ou quântico e/ou cartão (ou cartões) de expansão e/ou computador (ou computadores) e/ou servidor (ou servidores) podem ser acessíveis por meio da internet, por exemplo, nuvem.[030] In certain cases, the first and/or second integrated circuit and/or memory may be housed on an expansion card, such as a peripheral component interconnect (PCI) card. For example, in various embodiments, one or more of the integrated circuits may be one or more chips coupled to a PCIe card or otherwise associated with the motherboard. In various cases, the integrated and/or quantum circuit(s) and/or chip(s) may be a component within a sequencer or computer, or server, such as part of a server farm. In particular embodiments, the integrated and/or quantum circuit(s) and/or expansion card(s) and/or computer(s) and/or server(s) may be accessible via the internet, e.g., the cloud.

[031] Adicionalmente, em alguns casos, a memória pode ser uma memória de acesso aleatório volátil (RAM), por exemplo, uma memória de acesso direto (DRAM). Particularmente, em várias modalidades, a memória pode incluir pelo menos duas memórias, tal como uma primeira memória que é uma HMEM, por exemplo, para armazenar os dados de sequência de haplótipo de referência, e uma segunda memória que é uma RMEM, por exemplo, para armazenar a leitura de dados de sequência genômica. Em casos particulares, cada uma das duas memórias pode incluir uma porta de registro e/ou uma porta de leitura, tal como quando a porta de registro e a porta de leitura acessam, cada uma, um relógio separado. Adicionalmente, cada uma das duas memórias pode incluir uma configuração flipflop para armazenar uma multiplicidade de dados de resultado de sequência genética e/ou processamento.[031] Additionally, in some cases, the memory may be a volatile random access memory (RAM), e.g., a direct access memory (DRAM). Particularly, in various embodiments, the memory may include at least two memories, such as a first memory that is an HMEM, e.g., for storing reference haplotype sequence data, and a second memory that is an RMEM, e.g., for storing readout of genomic sequence data. In particular cases, each of the two memories may include a register port and/or a readout port, such as when the register port and the readout port each access a separate clock. Additionally, each of the two memories may include a flipflop configuration for storing a plurality of genetic sequence and/or processing result data.

[032] Consequentemente, em outro aspecto, o sistema pode ser configurado para compartilhar recursos de memória entre suas partes componentes, tal como em relação à realização de algumas tarefas computacionais por meio de software, tal como executado pela CPU e/ou GPU e/ou plataforma de processamento quântico, e/ou realização de outras tarefas computacionais por meio de firmware, tal como por meio do hardware de um circuito integrado associado, por exemplo, FPGA, ASIC e/ou sASIC. Isso pode ser atingido de diferentes maneiras, tal como por um acoplamento direto frouxo ou firme entre a CPU/GPU/QPU e o FPGA, por exemplo, chip ou cartão de PCIe. Tais configurações podem ser particularmente úteis ao distribuir operações relacionadas ao processamento das grandes estruturas de dados associadas às análises de genômica e/ou bioinformática a serem usadas e acessadas tanto pela CPU/GPU/QPU quanto pelo circuito integrado associado. Particularmente, em várias modalidades, ao processar dados através de uma segmentação de genômica, conforme descrito no presente documento, tal como para acelerar a função de processamento geral, temporização e eficácia, diversas operações diferentes podem ser executadas nos dados, em que as operações podem envolver ambos os componentes de processamento de software e hardware.[032] Accordingly, in another aspect, the system may be configured to share memory resources among its component parts, such as in relation to performing some computational tasks via software, such as executed by the CPU and/or GPU and/or quantum processing platform, and/or performing other computational tasks via firmware, such as via the hardware of an associated integrated circuit, e.g., FPGA, ASIC, and/or sASIC. This may be achieved in different ways, such as by a loose or tight direct coupling between the CPU/GPU/QPU and the FPGA, e.g., PCIe chip or card. Such configurations may be particularly useful when distributing operations related to the processing of large data structures associated with genomics and/or bioinformatics analyses to be used and accessed by both the CPU/GPU/QPU and the associated integrated circuit. Particularly, in various embodiments, when processing data through a genomics segmentation as described herein, such as to speed up the overall processing function, timing, and efficiency, a number of different operations may be performed on the data, where the operations may involve both software and hardware processing components.

[033] Consequentemente, os dados podem precisar ser compartilhados e/ou comunicados de outro modo, entre o componente (ou componentes) de software executado na CPU e/ou GPU e/ou QPU e/ou no componente de hardware incorporado no chip, por exemplo, um FPGA. Consequentemente, uma ou mais das etapas na segmentação de processamento de genômica e/ou bioinformática, ou uma porção da mesma, podem ser realizadas por um dispositivo, por exemplo, a CPU/GPU/QPU, e uma ou mais das várias etapas podem ser realizadas por um dispositivo com fio, por exemplo, o FPGA. Em tal caso, a CPU/GPU/QPU e/ou um FPGA podem ser acoplados comunicativamente de tal maneira que permita a transmissão eficaz de tais dados, em que o acoplamento pode envolver o uso compartilhado de recursos de memória. Para atingir tal distribuição de tarefas e o compartilhamento de informações para o desempenho de tais tarefas, as várias CPUs/GPUs/QPUs podem ser acopladas de modo frouxo ou firme umas às outras e/ou aos dispositivos de hardware, por exemplo, FPGA, ou outro conjunto de chips, tal como por uma interconexão de caminho rápido.[033] Accordingly, data may need to be shared and/or otherwise communicated between the software component(s) executing on the CPU and/or GPU and/or QPU and/or the on-chip hardware component, e.g., an FPGA. Accordingly, one or more of the steps in the genomics and/or bioinformatics processing pipeline, or a portion thereof, may be performed by one device, e.g., the CPU/GPU/QPU, and one or more of the multiple steps may be performed by a wired device, e.g., the FPGA. In such a case, the CPU/GPU/QPU and/or an FPGA may be communicatively coupled in such a manner as to permit the efficient transmission of such data, wherein the coupling may involve the shared use of memory resources. To achieve such distribution of tasks and sharing of information for the performance of such tasks, the multiple CPUs/GPUs/QPUs may be loosely or tightly coupled to each other and/or to hardware devices, e.g., FPGA, or other chipset, such as by a fast path interconnect.

[034] Particularmente, em várias modalidades, uma plataforma de análise de genômica é fornecida. Por exemplo, a plataforma pode incluir uma placa-mãe, uma memória e uma pluralidade de circuitos integrados e/ou quânticos, tal como formando um ou mais dentre uma CPU/GPU/QPU, um módulo de mapeamento, um módulo de alinhamento, um módulo de classificação e/ou um módulo de chamada de variante. Especificamente, em modalidades particulares, a plataforma pode incluir um primeiro circuito integrado e/ou quântico, tal como um circuito integrado que forma uma unidade de processamento central (CPU) ou unidade de processamento de gráficos (GPU) ou um circuito quântico que forma um processador quântico, que é responsivo a um ou mais software ou outros algoritmos que são configurados para instruir a CPU/GPU/QPU a realizar um ou mais conjuntos de funções de análise de genômica, conforme descrito no presente documento, tal como quando a CPU/GPU/QPU inclui um primeiro conjunto de interconexões eletrônicas físicas para conexão com a placa-mãe. Em diversos casos, a memória pode ser também fixada à placa-mãe e pode ser, ainda, conectada eletronicamente à CPU/GPU/QPU, tal como por meio de pelo menos uma porção do primeiro conjunto de interconexões eletrônicas físicas. Em tais casos, a memória pode ser configurada para armazenar uma pluralidade de leituras de dados genômicos e/ou pelo menos uma ou mais sequências genéticas de referência e/ou um índice da uma ou mais sequências genéticas de referência.[034] Particularly, in various embodiments, a genomics analysis platform is provided. For example, the platform may include a motherboard, a memory, and a plurality of integrated and/or quantum circuits, such as forming one or more of a CPU/GPU/QPU, a mapping module, an alignment module, a classification module, and/or a variant calling module. Specifically, in particular embodiments, the platform may include a first integrated and/or quantum circuit, such as an integrated circuit forming a central processing unit (CPU) or graphics processing unit (GPU) or a quantum circuit forming a quantum processor, that is responsive to one or more software or other algorithms that are configured to instruct the CPU/GPU/QPU to perform one or more sets of genomics analysis functions as described herein, such as when the CPU/GPU/QPU includes a first set of physical electronic interconnects for connection to the motherboard. In various cases, the memory may also be attached to the motherboard and may be further electronically connected to the CPU/GPU/QPU, such as through at least a portion of the first set of physical electronic interconnects. In such cases, the memory may be configured to store a plurality of genomic data reads and/or at least one or more reference gene sequences and/or an index of the one or more reference gene sequences.

[035] Adicionalmente, a plataforma pode incluir um ou mais de outros circuitos integrados, tal como quando cada um dos outros circuitos integrados forma um arranjo de portas programável em campo (FPGA) que tem um segundo conjunto de interconexões eletrônicas físicas para conexão com a CPU/GPU/QPU e a memória, tal como por meio de um protocolo de interconexão ponto a ponto. Em tal caso, tal como quando o circuito integrado é um FPGA, o FPGA pode ser programável por firmware para configurar um conjunto de circuitos lógicos digitais com fio que são interconectados por uma pluralidade de interconexões físicas para realizar um segundo conjunto de funções de análise de genômica, por exemplo, mapeamento, alinhamento, chamada de variante, etc. Particularmente, os circuitos lógicos digitais com fio do FPGA podem ser dispostos como um conjunto de mecanismos de processamento para realizar uma ou mais etapas pré-configuradas em uma segmentação de análise de sequência da análise de genômica, tal como quando o conjunto (ou conjuntos) de mecanismos de processamento inclui um ou mais dentre um módulo de mapeamento e/ou alinhamento e/ou chamada de variante, em que os módulos podem ser formados por subconjuntos separados ou iguais de mecanismos de processamento.[035] Additionally, the platform may include one or more other integrated circuits, such as when each of the other integrated circuits forms a field programmable gate array (FPGA) that has a second set of physical electronic interconnects for connection to the CPU/GPU/QPU and memory, such as via a point-to-point interconnect protocol. In such a case, such as when the integrated circuit is an FPGA, the FPGA may be firmware programmable to configure a set of hard-wired digital logic circuits that are interconnected by a plurality of physical interconnects to perform a second set of genomic analysis functions, e.g., mapping, alignment, variant calling, etc. In particular, the hardwired digital logic circuits of the FPGA may be arranged as a set of processing engines to perform one or more pre-configured steps in a sequence analysis segment of genomics analysis, such as when the set (or sets) of processing engines includes one or more of a mapping and/or alignment and/or variant calling module, wherein the modules may be formed by separate or equal subsets of processing engines.

[036] Conforme indicado, o sistema pode ser configurado para incluir um ou mais mecanismos de processamento, e, em várias modalidades, um próprio mecanismo de processamento incluído pode ser configurado para determinar uma ou mais probabilidades de transição para a sequência de nucleotídeos da leitura de sequência genômica que passa de um estado para outro, tal como de um estado de correspondência para um estado de indel, ou um estado de correspondência para um estado de deleção e/ou de volta, tal como de um estado de inserção ou deleção de volta para um estado de correspondência. Adicionalmente, em vários casos, o circuito integrado pode ter uma configuração segmentada e/ou pode incluir um segundo e/ou terceiro e/ou quarto subconjunto de circuitos lógicos digitais com fio, tal como incluindo um segundo conjunto de mecanismos de processamento, em que o segundo conjunto de mecanismos de processamento inclui um módulo de mapeamento configurado para mapear a leitura de sequência genômica à sequência de haplótipo de referência para produzir uma leitura mapeada. Um terceiro subconjunto de circuitos lógicos digitais com fio pode ser também incluído, tal como quando o terceiro conjunto de mecanismos de processamento inclui um módulo de alinhamento configurado para alinhar a leitura mapeada para uma ou mais posições na sequência de haplótipo de referência. Um quarto subconjunto de circuitos lógicos digitais com fio pode ser adicionalmente incluído tal como quando o quarto conjunto de mecanismos de processamento inclui um módulo de classificação para classificar a leitura mapeada e/ou alinhada a suas posições relativas no cromossomo. Como acima, em vários desses casos, o módulo de mapeamento e/ou o módulo de alinhamento e/ou o módulo de classificação, por exemplo, juntamente com o módulo de chamada de variante, podem ser fisicamente integrados no cartão de expansão. E, em certas modalidades, o cartão de expansão pode ser fisicamente integrado a um sequenciador genético, tal como um sequenciador de próxima geração e similares.[036] As indicated, the system may be configured to include one or more processing engines, and in various embodiments, an included processing engine itself may be configured to determine one or more transition probabilities for the nucleotide sequence of the genomic sequence read transitioning from one state to another, such as from a match state to an indel state, or a match state to a deletion state and/or back, such as from an insertion or deletion state back to a match state. Additionally, in various instances, the integrated circuit may have a segmented configuration and/or may include a second and/or third and/or fourth subset of hardwired digital logic circuitry, such as including a second set of processing engines, wherein the second set of processing engines includes a mapping module configured to map the genomic sequence read to the reference haplotype sequence to produce a mapped read. A third subset of hardwired digital logic circuitry may also be included, such as when the third set of processing engines includes an alignment module configured to align the mapped read to one or more positions in the reference haplotype sequence. A fourth subset of hardwired digital logic circuitry may additionally be included such as when the fourth set of processing engines includes a classification module to classify the mapped and/or aligned read to their relative positions on the chromosome. As above, in various such cases, the mapping module and/or the alignment module and/or the classification module, for example, together with the variant calling module, may be physically integrated into the expansion card. And, in certain embodiments, the expansion card may be physically integrated into a genetic sequencer, such as a next generation sequencer and the like.

[037] Consequentemente, em um aspecto, é fornecido um aparelho para executar uma ou mais etapas de uma segmentação de análise de sequência, tal como em dados genéticos, em que os dados genéticos incluem uma ou mais dentre uma sequência (ou sequências) genética de referência, tal como uma sequência de haplótipo ou hipotética, um índice da uma ou mais sequências genéticas de referência e/ou uma pluralidade de leituras, tal como de dados genéticos e/ou genômicos, em que os dados podem ser armazenados em um ou mais dispositivos de memória compartilhada e/ou processados por um recurso de processamento distribuído, tal como uma CPU/GPU/QPU e/ou FPGA, que são acoplados, por exemplo, de modo frouxo ou firme. Portanto, em diversos casos, o aparelho pode incluir um circuito integrado, em que o circuito integrado pode incluir um ou mais, por exemplo, um conjunto, dentre circuitos lógicos digitais com fio, em que o conjunto de circuitos lógicos digitais com fio pode ser interconectado, tal como por meio de uma ou uma pluralidade de interconexões elétricas físicas.[037] Accordingly, in one aspect, there is provided an apparatus for performing one or more steps of a sequence analysis segmentation, such as on genetic data, wherein the genetic data includes one or more of a reference genetic sequence (or sequences), such as a haplotype or hypothetical sequence, an index of the one or more reference genetic sequences, and/or a plurality of reads, such as of genetic and/or genomic data, wherein the data may be stored in one or more shared memory devices and/or processed by a distributed processing resource, such as a CPU/GPU/QPU and/or FPGA, that are coupled, for example, loosely or tightly. Therefore, in various cases, the apparatus may include an integrated circuit, wherein the integrated circuit may include one or more, for example, an array, of hard-wired digital logic circuits, wherein the array of hard-wired digital logic circuits may be interconnected, such as by means of one or a plurality of physical electrical interconnections.

[038] Consequentemente, o sistema pode ser configurado para incluir um circuito integrado formado por um ou mais circuitos lógicos digitais que são interconectados por uma pluralidade de interconexões elétricas físicas, em que uma ou mais dentre a pluralidade de interconexões elétricas físicas têm um ou mais dentre uma interface de memória e/ou cache, para o circuito integrado acessar a memória e/ou dados armazenados na mesma e recuperar os mesmos, tal como de uma maneira coerente com cache entre a CPU/GPU/QPU e o chip associado, por exemplo, FPGA. Em vários casos, os circuitos lógicos digitais podem incluir pelo menos um primeiro subconjunto de circuitos lógicos digitais, tal como quando o primeiro subconjunto de circuitos lógicos digitais pode ser disposto como um primeiro conjunto de mecanismos de processamento, em que o mecanismo de processamento pode ser configurado para acessar os dados armazenados no cache e/ou memória acoplada direta ou indiretamente. Por exemplo, o primeiro conjunto de mecanismos de processamento pode ser configurado para realizar uma ou mais etapas em uma análise de mapeamento e/ou alinhamento e/ou classificação, conforme descrito acima, e/ou uma análise de HMM na leitura de dados de sequência genômica e bis dados de sequência de haplótipo.[038] Accordingly, the system may be configured to include an integrated circuit formed by one or more digital logic circuits that are interconnected by a plurality of physical electrical interconnects, wherein one or more of the plurality of physical electrical interconnects have one or more of a memory and/or cache interface, for the integrated circuit to access memory and/or data stored therein and retrieve the same, such as in a cache-coherent manner between the CPU/GPU/QPU and the associated chip, e.g., FPGA. In various cases, the digital logic circuits may include at least a first subset of digital logic circuits, such as where the first subset of digital logic circuits may be arranged as a first set of processing engines, wherein the processing engine may be configured to access data stored in the cache and/or directly or indirectly coupled memory. For example, the first set of processing engines may be configured to perform one or more steps in a mapping and/or alignment and/or classification analysis, as described above, and/or an HMM analysis on reads of genomic sequence data and haplotype sequence data.

[039] Mais particularmente, um primeiro conjunto de mecanismos de processamento pode incluir um módulo de HMM, tal como em uma primeira configuração do subconjunto de circuitos lógicos digitais, que é adaptado para acessar na memória, por exemplo, por meio da interface de memória, pelo menos algumas das sequências de nucleotídeos na leitura de dados de sequência genômica e os dados de sequência de haplótipo e pode ser também configurado para realizar a análise de HMM em pelo menos algumas das sequências de nucleotídeos na leitura de dados de sequência genômica e em pelo menos algumas das sequências de nucleotídeos nos dados de sequência de haplótipo de modo a produzir dados de resultado de HMM. Adicionalmente, a uma ou mais dentre a pluralidade de interconexões elétricas físicas podem incluir uma saída do circuito integrado, tal como para comunicar os dados de resultado de HMM a partir do módulo de HMM, tal como para uma CPU/GPU/QPU de um servidor ou agrupamento de servidores.[039] More particularly, a first set of processing mechanisms may include an HMM module, such as in a first embodiment of the subset of digital logic circuitry, which is adapted to access in memory, e.g., via the memory interface, at least some of the nucleotide sequences in the genomic sequence data readout and the haplotype sequence data, and may also be configured to perform HMM analysis on at least some of the nucleotide sequences in the genomic sequence data readout and at least some of the nucleotide sequences in the haplotype sequence data so as to produce HMM result data. Additionally, the one or more of the plurality of physical electrical interconnects may include an output of the integrated circuit, such as for communicating the HMM result data from the HMM module, such as to a CPU/GPU/QPU of a server or cluster of servers.

[040] Consequentemente, em um aspecto, um método para executar uma segmentação de análise de sequência, tal como em dados de sequência genética, é fornecido. Os dados genéticos podem incluir uma ou mais sequências de haplótipo ou genéticas de referência, um ou mais índices da uma ou mais sequências genéticas de referência e/ou de haplótipo e/ou uma pluralidade de leituras de dados genômicos. O método pode incluir uma ou mais dentre recebimento, acesso, mapeamento, alinhamento, classificação de várias iterações dos dados de sequência genética e/ou emprego dos resultados dos mesmos em um método para produzir um ou mais arquivos de chamada de variante. Por exemplo, em determinadas modalidades, o método pode incluir receber, em uma entrada para um circuito integrado a partir de uma fonte de dados eletrônica, uma ou mais dentre uma pluralidade de leituras de dados genômicos, em que cada leitura de dados genômicos pode incluir uma sequência de nucleotídeos.[040] Accordingly, in one aspect, a method for performing a sequence analysis segmentation, such as on genetic sequence data, is provided. The genetic data may include one or more reference genetic or haplotype sequences, one or more indices of the one or more reference genetic and/or haplotype sequences, and/or a plurality of genomic data reads. The method may include one or more of receiving, accessing, mapping, aligning, classifying multiple iterations of the genetic sequence data, and/or employing the results thereof in a method for producing one or more variant call files. For example, in certain embodiments, the method may include receiving, at an input to an integrated circuit from an electronic data source, one or more of a plurality of genomic data reads, wherein each genomic data read may include a nucleotide sequence.

[041] Em diversos casos, o circuito integrado pode ser formado por um conjunto de circuitos lógicos digitais com fio que pode ser disposto como um ou mais mecanismos de processamento. Em tal caso, um mecanismo de processamento pode ser formado por um subconjunto dos circuitos lógicos digitais com fio que podem estar em uma configuração com fio. Em tal caso, o mecanismo de processamento pode ser configurado para realizar uma ou mais etapas pré- configuradas, tal como para implantar um ou mais dentre recebimento, acesso, mapeamento, alinhamento, classificação de várias iterações dos dados de sequência genética e/ou empregar os resultados dos mesmos em um método para produzir um ou mais arquivos de chamada de variante. Em algumas modalidades, os circuitos lógicos digitais fornecidos podem ser interconectados tal como por uma pluralidade de interconexões elétricas físicas, que podem incluir uma entrada.[041] In various cases, the integrated circuit may be formed by a set of hardwired digital logic circuits that may be arranged as one or more processing engines. In such a case, a processing engine may be formed by a subset of the hardwired digital logic circuits that may be in a hardwired configuration. In such a case, the processing engine may be configured to perform one or more preconfigured steps, such as to implement one or more of receiving, accessing, mapping, aligning, classifying multiple iterations of the genetic sequence data, and/or employing the results thereof in a method for producing one or more variant call files. In some embodiments, the provided digital logic circuits may be interconnected such as by a plurality of physical electrical interconnects, which may include an input.

[042] O método pode incluir adicionalmente acessar, pelo circuito integrado em uma ou mais dentre a pluralidade de interconexões elétricas físicas a partir de uma memória, dados para realizar uma ou mais das operações detalhadas no presente documento. Em vários casos, o circuito integrado pode ser parte de um conjunto de chips, tal como incorporado ou contido de outro modo como parte de um FPGA, ASIC ou ASIC estruturado, e a memória pode ser direta ou indiretamente acoplada a um ou ambos dentre o chip e/ou uma CPU/GPU/QPU associada ao mesmo. Por exemplo, a memória pode ser uma pluralidade de memórias, um de cada acoplada ao chip e uma CPU/GPU/QPU que é a própria acoplada ao chip, por exemplo, de modo frouxo.[042] The method may further include accessing, by the integrated circuit at one or more of the plurality of physical electrical interconnections from a memory, data to perform one or more of the operations detailed herein. In various cases, the integrated circuit may be part of a chip set, such as embedded or otherwise contained as part of an FPGA, ASIC, or structured ASIC, and the memory may be directly or indirectly coupled to one or both of the chip and/or a CPU/GPU/QPU associated therewith. For example, the memory may be a plurality of memories, one each coupled to the chip and a CPU/GPU/QPU that is itself coupled to the chip, e.g., loosely.

[043] Em outros casos, a memória pode ser uma única memória que pode ser acoplada a uma CPU/GPU/QPU que é a própria firmemente acoplada ao FPGA, por exemplo, por meio de uma interconexão de processamento firme ou interconexão de caminho rápido, por exemplo, QPI, e, assim, acessível ao FPGA, tal como de uma maneira coerente com cache. Consequentemente, o circuito integrado pode ser acoplado direta ou indiretamente à memória de modo a acessar dados relevantes para realizar as funções apresentadas no presente documento, tal como para acessar uma ou mais dentre uma pluralidade de leituras, um ou mais sequências genéticas de referência ou teóricas de referência, e/ou um índice da uma ou mais sequências genéticas de referência, por exemplo, no desempenho de uma operação de mapeamento.[043] In other cases, the memory may be a single memory that may be coupled to a CPU/GPU/QPU that is itself tightly coupled to the FPGA, e.g., via a tight processing interconnect or fast path interconnect, e.g., QPI, and thus accessible to the FPGA, such as in a cache-coherent manner. Accordingly, the integrated circuit may be directly or indirectly coupled to the memory in order to access data relevant to performing the functions disclosed herein, such as to access one or more of a plurality of reads, one or more reference or theoretical reference gene sequences, and/or an index of the one or more reference gene sequences, e.g., in performing a mapping operation.

[044] Logo, em diversos casos, implantações de diversos aspectos da revelação podem incluir, mas sem limitação: aparelhos, sistemas e métodos que incluem um ou mais recursos, conforme descrito em detalhes no presente documento, assim como artigos que compreendem uma mídia legível por máquina incorporada de modo tangível operável para fazer com que uma ou mais máquinas (por exemplo, computadores, etc.) resultem nas operações descritas no presente documento. De modo semelhante, sistemas de computador também são descritos, os quais podem incluir um ou mais processadores e/ou uma ou mais memórias acopladas ao um ou mais processadores. Consequentemente, métodos implantados por computador que são consistentes com uma ou mais implantações da presente matéria podem ser implantados por um ou mais processadores de dados que residem em um único sistema de computação ou em múltiplos sistemas de computação contendo múltiplos computadores, tal como em um banco de computação ou supercomputação.[044] Thus, in various instances, implementations of various aspects of the disclosure may include, but are not limited to: apparatuses, systems, and methods that include one or more features as described in detail herein, as well as articles comprising a tangibly embodied machine-readable medium operable to cause one or more machines (e.g., computers, etc.) to result in the operations described herein. Similarly, computer systems are also described, which may include one or more processors and/or one or more memories coupled to the one or more processors. Accordingly, computer-implemented methods that are consistent with one or more implementations of the present subject matter may be implemented by one or more data processors residing on a single computing system or on multiple computing systems containing multiple computers, such as on a computing bench or supercomputing array.

[045] Tais múltiplos sistemas de computação podem ser conectados e podem trocar dados e/ou comandos ou outras instruções ou semelhantes por meio de uma ou mais conexões, incluindo, mas sem limitação, uma conexão através de uma rede (por exemplo, a Internet, uma rede de área ampla sem fio, uma rede de área local, uma rede de área ampla, uma rede com fio , uma interconexão elétrica física ou semelhantes), por meio de uma conexão direta entre um ou mais dentre os múltiplos sistemas de computação, etc. Uma memória, a qual pode incluir uma mídia de armazenamento legível por computador, pode incluir, codificar, armazenar ou semelhantes um ou mais programas que fazem com que um ou mais processadores realizem uma ou mais dentre as operações associadas a um ou mais dos algoritmos descritos no presente documento.[045] Such multiple computing systems may be connected and may exchange data and/or commands or other instructions or the like through one or more connections, including but not limited to a connection over a network (e.g., the Internet, a wireless wide area network, a local area network, a wide area network, a wired network, a physical electrical interconnect, or the like), through a direct connection between one or more of the multiple computing systems, etc. A memory, which may include a computer-readable storage medium, may include, encode, store, or the like one or more programs that cause one or more processors to perform one or more of the operations associated with one or more of the algorithms described herein.

[046] Os detalhes de uma ou mais variações da matéria descrita no presente documento são apresentados nos desenhos anexos e na descrição abaixo. Outros recursos e vantagens da matéria descrita no presente documento serão evidentes a partir da descrição e dos desenhos, e a partir das reivindicações. Embora determinados recursos da presente matéria revelada sejam descritos para propósitos ilustrativos em relação a um sistema de software de recurso de empresa ou outra solução ou arquitetura de software de negócios, deve ser prontamente entendido que tais recursos não são destinados a serem limitantes. As reivindicações que seguem esta revelação são destinadas a definir o escopo da matéria protegida.[046] Details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and in the description below. Other features and advantages of the subject matter described herein will be apparent from the description and drawings, and from the claims. While certain features of the subject matter disclosed herein are described for illustrative purposes with respect to an enterprise resource software system or other business software solution or architecture, it should be readily understood that such features are not intended to be limiting. The claims that follow this disclosure are intended to define the scope of the protected subject matter.

BREVE DESCRIÇÃO DAS FIGURASBRIEF DESCRIPTION OF THE FIGURES

[047] Os desenhos anexos, os quais são incorporados e constituem uma parte desse relatório descritivo, mostram determinados aspectos da matéria revelada no presente documento e, em conjunto com a descrição, ajudam a explicar alguns dos princípios associados às implantações revelada.[047] The accompanying drawings, which are incorporated into and constitute a part of this descriptive report, show certain aspects of the subject matter disclosed herein and, in conjunction with the description, help to explain some of the principles associated with the disclosed implementations.

[048] A Figura 1A representa uma plataforma de sequenciamento com uma pluralidade de amostras genéticas na mesma, uma pluralidade de ladrilhos exemplificativos é também representada, assim como uma representação tridimensional das leituras sequenciadas.[048] Figure 1A represents a sequencing platform with a plurality of genetic samples therein, a plurality of exemplary tiles are also represented, as well as a three-dimensional representation of the sequenced reads.

[049] A Figura 1B apresenta uma representação de uma célula de fluxo com as várias raias representadas.[049] Figure 1B shows a representation of a flow cell with the various lanes represented.

[050] A Figura 1C representa um canto inferior da plataforma de célula de fluxo da Figura 1B, que mostra uma constelação de leituras sequenciadas.[050] Figure 1C depicts a lower corner of the flow cell platform of Figure 1B, which shows a constellation of sequenced reads.

[051] A Figura 1D representa um arranjo virtual dos resultados do sequenciamento realizado nas leituras das Figuras 1 e 2, em que as leituras são apresentadas em uma coluna de saída por ordem de coluna.[051] Figure 1D represents a virtual arrangement of the sequencing results performed on the reads in Figures 1 and 2, where the reads are presented in an output column in column order.

[052] A Figura 1E representa o método pelo qual a transposição das leituras de resultado da ordem de coluna por coluna para ordem de leitu5ra de fileira por fileira pode ser implantada.[052] Figure 1E depicts the method by which transposition of result readings from column-by-column order to row-by-row reading order can be implemented.

[053] A Figura 1F representa a transposição das leituras de resultado da ordem de coluna por coluna para ordem de leitu5ra de fileira por fileira.[053] Figure 1F represents the transposition of the result readings from column-by-column order to row-by-row reading order.

[054] A Figura 1G representa os componentes de sistema para realizar a transposição.[054] Figure 1G represents the system components to perform the transposition.

[055] A Figura 1H representa a ordem de transposição.[055] Figure 1H represents the transposition order.

[056] A Figura 1I representa a arquitetura para transpor eletronicamente os dados sequenciados.[056] Figure 1I represents the architecture for electronically transposing sequenced data.

[057] A Figura 2 representa um modelo baseado em 3 estados de HMM que ilustra as probabilidades de transição de passar de um estado para o outro.[057] Figure 2 represents a model based on 3 HMM states that illustrates the transition probabilities of going from one state to the other.

[058] A Figura 3A representa uma vista em alto nível de um circuito integrado da revelação, incluindo uma estrutura de interface de HMM.[058] Figure 3A is a high-level view of an integrated circuit of the disclosure, including an HMM interface structure.

[059] A Figura 3B representa o circuito integrado da Figura 3A, que mostra uma característica de agrupamento de HMM em mais detalhes.[059] Figure 3B represents the integrated circuit of Figure 3A, which shows an HMM clustering feature in more detail.

[060] A Figura 4 representa uma vista geral de fluxo de dados relacionados a HMM por todo o sistema, incluindo interações tanto de software quanto de hardware.[060] Figure 4 represents an overview of HMM-related data flow throughout the system, including both software and hardware interactions.

[061] A Figura 5 representa conexões de colar de agrupamento de HMM exemplificativas.[061] Figure 5 depicts exemplary HMM cluster collar connections.

[062] A Figura 6 representa uma vista em alto nível dos blocos funcionais principais dentro de um acelerador de hardware de HMM exemplificativo.[062] Figure 6 depicts a high-level view of the main functional blocks within an exemplary HMM hardware accelerator.

[063] A Figura 7 representa uma estrutura de matriz de HMM exemplificativa e fluxo de processamento de hardware.[063] Figure 7 depicts an exemplary HMM matrix structure and hardware processing flow.

[064] A Figura 8 representa uma vista ampliada de uma porção da Figura 2 que mostra o fluxo de dados e as dependências entre células próximas nas computações de estado M, I e D de HMM dentro da matriz.[064] Figure 8 is an enlarged view of a portion of Figure 2 showing the data flow and dependencies between nearby cells in the HMM M, I, and D state computations within the matrix.

[065] A Figura 9 representa computações exemplificativas úteis para atualizações de estado M, I, D.[065] Figure 9 depicts exemplary computations useful for M, I, D state updates.

[066] A Figura 10 representa circuitos de atualização de estado M, I eD, incluindo os efeitos de simplificar suposições da Figura 9 relacionadas às probabilidades de transição e o efeito de compartilhar alguns recursos de adicionador de M, I, D com as operações de soma final.[066] Figure 10 depicts M, I, and D state update circuits, including the effects of simplifying assumptions from Figure 9 related to transition probabilities and the effect of sharing some adder features of M, I, D with the final sum operations.

[067] A Figura 11 representa detalhes de cálculo de estado M, I, D de domínio logarítmico.[067] Figure 11 represents logarithmic domain M, I, D state calculation details.

[068] A Figura 12 representa um diagrama de transição de estado de HMM que mostra a relação entre probabilidades de transição, GOP e GCP.[068] Figure 12 represents an HMM state transition diagram that shows the relationship between transition probabilities, GOP and GCP.

[069] A Figura 13 representa um circuito de geração Transprobs e Prioris de HMM para suportar o diagrama de transição de estado geral da Figura 12.[069] Figure 13 represents an HMM Transprobs and Priors generation circuit to support the general state transition diagram of Figure 12.

[070] A Figura 14 representa um diagrama de transição de estado de HMM simplificado que mostra a relação entre probabilidades de transição, GOP e GCP.[070] Figure 14 represents a simplified HMM state transition diagram that shows the relationship between transition probabilities, GOP and GCP.

[071] A Figura 15 representa um circuito de geração Transprobs e Prioris de HMM para suportar a transição de estado simplificado.[071] Figure 15 represents a Transprobs and HMM Priors generation circuit to support simplified state transition.

[072] A Figura 16 representa uma matriz de HMM teórica exemplificativa e ilustra quanto uma matriz de HMM pode ser atravessada.[072] Figure 16 represents an exemplary theoretical HMM matrix and illustrates how much an HMM matrix can be traversed.

[073] A Figura 17A apresenta um método para realizar um procedimento de pré-processamento de detecção conjunta de múltiplas regiões.[073] Figure 17A presents a method for performing a multi-region joint detection preprocessing procedure.

[074] A Figura 17B apresenta um método exemplificativo para computar uma matriz de conexão tal como no procedimento de pré-processamento da Figura 17A.[074] Figure 17B presents an exemplary method for computing a connection matrix as in the preprocessing procedure of Figure 17A.

[075] A Figura 18A representa um evento exemplificativo entre duas regiões sequenciadas homólogas em um acúmulo de leituras.[075] Figure 18A represents an exemplary event between two homologous sequenced regions in a read pool.

[076] A Figura 18B representa as leituras construídas da Figura 18A, demarcando a diferença de nucleotídeo entre as duas sequências.[076] Figure 18B represents the constructed reads from Figure 18A, demarcating the nucleotide difference between the two sequences.

[077] A Figura 18C representa várias bolhas de um gráfico de De Brujin que podem ser usadas para realizar uma operação de chamada de variante acelerada.[077] Figure 18C depicts several bubbles from a De Brujin graph that can be used to perform an accelerated variant calling operation.

[078] A Figura 18D apresenta uma representação de uma poda da função de árvore conforme descrito no presente documento.[078] Figure 18D presents a representation of a pruning tree function as described herein.

[079] A Figura 18E representa uma das bolhas da Figura 18C.[079] Figure 18E represents one of the bubbles in Figure 18C.

[080] A Figura 19 é uma representação gráfica do acúmulo exemplificativo em conformidade com a matriz de conexão da Figura 17.[080] Figure 19 is a graphical representation of the exemplary accumulation in accordance with the connection matrix of Figure 17.

[081] A Figura 20 é uma matriz de processamento para realizar o procedimento de pré-processamento das Figuras 17A e B.[081] Figure 20 is a processing matrix for performing the preprocessing procedure of Figures 17A and B.

[082] A Figura 21 é um exemplo de uma formação de bolha em um gráfico de De Brujin em conformidade com os métodos da Figura 20.[082] Figure 21 is an example of a bubble formation on a De Brujin chart in accordance with the methods of Figure 20.

[083] A Figura 22 é um exemplo de um caminho de variante através de um gráfico de De Brujin.[083] Figure 22 is an example of a variant path through a De Brujin graph.

[084] A Figura 23 é uma representação gráfica de uma função de classificação exemplificativa.[084] Figure 23 is a graphical representation of an exemplary classification function.

[085] A Figura 24 é outro exemplo de uma matriz de processamento para um processamento de detecção conjunta de múltiplas regiões podadas.[085] Figure 24 is another example of a processing matrix for joint detection processing of multiple pruned regions.

[086] A Figura 25 ilustra um acúmulo conjunto de leituras pareadas para duas regiões.[086] Figure 25 illustrates a joint accumulation of paired reads for two regions.

[087] A Figura 26 apresenta uma tabela de probabilidade em conformidade com o revelado no presente documento.[087] Figure 26 presents a probability table in accordance with what is disclosed in this document.

[088] A Figura 27 é outro exemplo de uma matriz de processamento para um processamento de detecção conjunta de múltiplas regiões.[088] Figure 27 is another example of a processing matrix for joint detection processing of multiple regions.

[089] A Figura 28 representa uma seleção de soluções candidatas para o acúmulo conjunto da Figura 25.[089] Figure 28 represents a selection of candidate solutions for the joint accumulation of Figure 25.

[090] A Figura 29 representa outra seleção de soluções candidatas para o acúmulo da Figura 28, após uma função de poda ter sido realizada.[090] Figure 29 represents another selection of candidate solutions for the accumulation of Figure 28, after a pruning function has been performed.

[091] A Figura 30 representa os candidatos finais da Figura 28, e suas probabilidades associadas, após o desempenho de uma função de MRJD.[091] Figure 30 represents the final candidates from Figure 28, and their associated probabilities, after performing an MRJD function.

[092] A Figura 31 ilustra as curvas de ROC para MRJD e um detector convencional.[092] Figure 31 illustrates the ROC curves for MRJD and a conventional detector.

[093] A Figura 32 ilustra os mesmos resultados da Figura 31 exibidos como uma função da similaridade de sequência das referências.[093] Figure 32 illustrates the same results as Figure 31 displayed as a function of the sequence similarity of the references.

[094] A Figura 33A representa uma arquitetura exemplificativa que ilustra um acoplamento frouxo entre uma CPU e um FPGA da revelação.[094] Figure 33A depicts an exemplary architecture that illustrates loose coupling between a CPU and an FPGA of the disclosure.

[095] A Figura 33B representa uma arquitetura exemplificativa que ilustra um acoplamento firme entre uma CPU e um FPGA da revelação.[095] Figure 33B depicts an exemplary architecture that illustrates tight coupling between a CPU and an FPGA of the disclosure.

[096] A Figura 34A representa um acoplamento direto de uma CPU e um FPGA da revelação.[096] Figure 34A represents a direct coupling of a CPU and an FPGA of the disclosure.

[097] A Figura 34B representa uma modalidade alternativa do acoplamento direto de uma CPU e um FPGA da Figura 34A.[097] Figure 34B represents an alternative embodiment of the direct coupling of a CPU and an FPGA of Figure 34A.

[098] A Figura 35 representa uma modalidade de um pacote de uma CPU e um FPGA combinados, em que os dois dispositivos compartilham uma memória e/ou cache comuns.[098] Figure 35 depicts an embodiment of a combined CPU and FPGA package, wherein the two devices share a common memory and/or cache.

[099] A Figura 36 ilustra um núcleo de CPUs que compartilham uma ou mais memórias e/ou caches, em que as CPUs são configuradas para comunicação com um ou mais FPGAs que podem também incluir uma memória comum ou compartilhada ou caches.[099] Figure 36 illustrates a core of CPUs that share one or more memories and/or caches, where the CPUs are configured to communicate with one or more FPGAs that may also include common or shared memory or caches.

[0100] A Figura 37 ilustra um método exemplificativo de transferência de dados por todo o sistema.[0100] Figure 37 illustrates an exemplary method of transferring data throughout the system.

[0101] A Figura 38 representa a modalidade da Figura 36 em mais detalhes.[0101] Figure 38 represents the embodiment of Figure 36 in more detail.

[0102] A Figura 39 representa um método exemplificativo para o processamentode um ou mais trabalhos de um sistema da revelação.[0102] Figure 39 depicts an exemplary method for processing one or more jobs of a development system.

[0103] A Figura 40A retrata um diagrama de blocos para uma infraestrutura genômica para processamento e análise genômicos no local e/ou baseados em nuvem.[0103] Figure 40A depicts a block diagram for a genomic infrastructure for on-premises and/or cloud-based genomic processing and analysis.

[0104] A Figura 40B representa um diagrama de blocos de uma plataforma de processamento de genômica baseado em nuvem para realizar a análise BioIT revelada no presente documento.[0104] Figure 40B depicts a block diagram of a cloud-based genomics processing platform for performing the BioIT analysis disclosed herein.

[0105] A Figura 40C representa um diagrama de blocos para um processamento genômico e uma segmentação de análise exemplificativos.[0105] Figure 40C depicts a block diagram for an exemplary genome processing and segmentation analysis.

[0106] A Figura 40D representa um diagrama de blocos para um processamento genômico e uma segmentação de análise exemplificativos.[0106] Figure 40D depicts a block diagram for an exemplary genome processing and segmentation analysis.

[0107] A Figura 41 A retrata um diagrama de blocos de uma função de computação local e/ou baseada em nuvem da Figura 40A para uma infraestrutura genômica para processamento e análise genômicos no local e/ou baseados em nuvem.[0107] Figure 41A depicts a block diagram of a local and/or cloud-based computing function of Figure 40A for a genomic infrastructure for on-premises and/or cloud-based genomic processing and analysis.

[0108] A Figura 41B retrata o diagrama de blocos da Figura 41A que ilustra maiores detalhes em relação à função de computação para uma infraestrutura genômica para processamento e análise genômicos no local e/ou baseados em nuvem.[0108] Figure 41B depicts the block diagram of Figure 41A which illustrates greater detail regarding the compute function for a genomic infrastructure for on-premises and/or cloud-based genomic processing and analysis.

[0109] A Figura 41C retrata o diagrama de blocos da Figura 40 que ilustra maiores detalhes em relação à função analítica de terceiros para uma infraestrutura genômica para processamento e análise genômicos no local e/ou baseados em nuvem.[0109] Figure 41C depicts the block diagram of Figure 40 that illustrates greater detail regarding third-party analytics functionality for a genomic infrastructure for on-premises and/or cloud-based genomic processing and analysis.

[0110] A Figura 42A retrata um diagrama de blocos que ilustra uma configuração em nuvem híbrida.[0110] Figure 42A depicts a block diagram illustrating a hybrid cloud configuration.

[0111] A Figura 42B retrata o diagrama de blocos da Figura 42A em maiores detalhes, ilustrando uma configuração em nuvem híbrida.[0111] Figure 42B depicts the block diagram of Figure 42A in greater detail, illustrating a hybrid cloud configuration.

[0112] A Figura 42C retrata o diagrama de blocos da Figura 42A em maiores detalhes, ilustrando uma configuração em nuvem híbrida.[0112] Figure 42C depicts the block diagram of Figure 42A in greater detail, illustrating a hybrid cloud configuration.

[0113] A Figura 43 A retrata um diagrama de blocos que ilustra uma segmentação de análise primária, secundária e/ou terciária, conforme apresentado no presente documento.[0113] Figure 43A depicts a block diagram illustrating a primary, secondary, and/or tertiary analysis segmentation as presented herein.

[0114] A Figura 43B fornece uma análise epigenética de processamento terciário exemplificativa para execução pelos métodos e dispositivos do sistema no presente documento.[0114] Figure 43B provides an exemplary tertiary processing epigenetic analysis for execution by the methods and apparatus of the system herein.

[0115] A Figura 43C fornece uma análise de metilação de processamento terciário exemplificativa para execução pelos métodos e dispositivos do sistema no presente documento.[0115] Figure 43C provides an exemplary tertiary processing methylation analysis for execution by the methods and apparatus of the system herein.

[0116] A Figura 43D fornece uma análise de variantes estruturais de processamento terciário exemplificativa para execução pelos métodos e dispositivos do sistema no presente documento.[0116] Figure 43D provides an analysis of exemplary tertiary processing structural variants for execution by the methods and devices of the system herein.

[0117] A Figura 43E fornece uma análise de processamento de coorte terciário exemplificativa para execução pelos métodos e dispositivos do sistema no presente documento.[0117] Figure 43E provides an exemplary tertiary cohort processing analysis for execution by the methods and apparatus of the system herein.

[0118] A Figura 43F fornece uma análise de processamento terciário de genotipagem conjunta exemplificativa para execução pelos métodos e dispositivos do sistema no presente documento.[0118] Figure 43F provides an exemplary joint genotyping tertiary processing analysis for execution by the methods and apparatus of the system herein.

[0119] A Figura 44 retrata um fluxograma para uma segmentação de análise da revelação.[0119] Figure 44 depicts a flowchart for a disclosure analysis segmentation.

[0120] A Figura 45 é um diagrama de blocos de uma arquitetura de processador em hardware de acordo com uma implantação da revelação.[0120] Figure 45 is a block diagram of a hardware processor architecture in accordance with an implementation of the disclosure.

[0121] A Figura 46 é um diagrama de blocos de uma arquitetura de processador em hardware de acordo com outra implantação.[0121] Figure 46 is a block diagram of a hardware processor architecture according to another implementation.

[0122] A Figura 47 é um diagrama de blocos de uma arquitetura de processador em hardware de acordo com ainda outra implantação.[0122] Figure 47 is a block diagram of a hardware processor architecture in accordance with yet another implementation.

[0123] A Figura 48 ilustra uma segmentação de análise de sequência genética.[0123] Figure 48 illustrates a genetic sequence analysis segmentation.

[0124] A Figura 49 ilustra etapas de processamento que usam uma plataforma de hardware de análise de sequência genética.[0124] Figure 49 illustrates processing steps using a genetic sequence analysis hardware platform.

[0125] A Figura 50A ilustra um aparelho de acordo com uma implantação da revelação.[0125] Figure 50A illustrates an apparatus in accordance with an implementation of the disclosure.

[0126] A Figura 50B ilustra outro aparelho de acordo com uma implantação alternativa da revelação.[0126] Figure 50B illustrates another apparatus in accordance with an alternative implementation of the disclosure.

[0127] A Figura 51 ilustra um sistema de processamento de genômica em conformidade com uma implantação.[0127] Figure 51 illustrates a genomics processing system in accordance with an implementation.

DESCRIÇÃO DETALHADA DA REVELAÇÃODETAILED DESCRIPTION OF THE REVELATION

[0128] Conforme sumarizado acima, a presente revelação é direcionada a dispositivos, sistemas e métodos para empregar os mesmos no desempenho de um ou mais protocolos de genômica e/ou bioinformática, tal como um protocolo de mapeamento, alinhamento, classificação e/ou chamada de variante em dados gerados através de um procedimento de processamento primário, tal como em dados de sequência genética. Por exemplo, em vários aspectos, os dispositivos, sistemas e métodos fornecidos no presente documento são configurados para realizar protocolos de análise secundária em dados genéticos, tais como dados gerados pelo sequenciamento de RNA e/ou DNA, por exemplo, por um Sequenciador de Nova Geração ("NGS"). Em modalidades particulares, uma ou mais segmentações de processamento secundário para processar dados de sequência genética são fornecidas, tais como quando as segmentações, e/ou elementos individuais das mesmas, podem ser implantadas em software, hardware ou uma combinação dos mesmos de uma forma distribuída e/ou otimizada de modo a entregar sensibilidade superior e precisão aprimorada em uma faixa mais ampla de dados derivados de sequência do que está atualmente disponível na técnica. Adicionalmente, conforme sumarizado acima, a presente revelação é direcionada a dispositivos, sistemas e métodos para empregar os mesmos no desempenho de um ou mais protocolos terciários de genômica e/ou bioinformática, tal como um protocolo de análise de microarranjo, um genoma, por exemplo, protocolo de análise de genoma inteiro, protocolo de análise de genotipagem, protocolo de análise de exoma, protocolo de análise de epigenoma, protocolo de análise de metagenoma, protocolo de análise de microbioma, protocolo de análise de genotipagem, incluindo genotipagem conjunta, protocolos de análise de variantes, incluindo variantes estruturais, variantes somáticas, e GATK, assim como protocolos de sequenciamento de RNA e outros protocolos de análises genéticas, tais como dados de sequência genética mapeados, alinhados e/ou outros, tal como empregando um ou mais arquivos de chamada de variante.[0128] As summarized above, the present disclosure is directed to devices, systems, and methods for employing the same in performing one or more genomics and/or bioinformatics protocols, such as a mapping, alignment, classification, and/or variant calling protocol on data generated through a primary processing procedure, such as on genetic sequence data. For example, in various aspects, the devices, systems, and methods provided herein are configured to perform secondary analysis protocols on genetic data, such as data generated by RNA and/or DNA sequencing, e.g., by a Next Generation Sequencer ("NGS"). In particular embodiments, one or more secondary processing suites for processing genetic sequence data are provided, such as where the suites, and/or individual elements thereof, may be implemented in software, hardware, or a combination thereof in a distributed and/or optimized manner so as to deliver superior sensitivity and improved accuracy across a broader range of sequence-derived data than is currently available in the art. Additionally, as summarized above, the present disclosure is directed to devices, systems, and methods for employing the same in performing one or more tertiary genomics and/or bioinformatics protocols, such as a microarray analysis protocol, a genome, e.g., whole genome analysis protocol, genotyping analysis protocol, exome analysis protocol, epigenome analysis protocol, metagenome analysis protocol, microbiome analysis protocol, genotyping analysis protocol, including pooled genotyping, variant analysis protocols, including structural variants, somatic variants, and GATK, as well as RNA sequencing protocols and other genetic analysis protocols, such as mapped, aligned, and/or other genetic sequence data, such as employing one or more variant call files.

[0129] Consequentemente, são fornecidas no presente documento tecnologias de análise de plataforma acelerada de software e/ou hardware, por exemplo, baseadas em chip para realizar análise secundária e/ou terciária de dados de sequenciamento de DNA/RNA. Mais particularmente, uma plataforma, ou segmentação, de mecanismos de processamento, tal como em uma configuração implantada por software e/ou com fio, que foi especificamente projetada para realizar análise genética secundária, por exemplo, mapeamento, alinhamento, classificação e/ou chamada de variante; e/ou pode ser especificamente projetada para realizar análise genética terciária, tal como uma análise de microarranjo, um genoma, por exemplo, análise de genoma inteiro, análise de genotipagem, análise de exoma, análise de epigenoma, análise de metagenoma, análise de microbioma, análise de genotipagem, incluindo análise de genotipagem conjunta, análise de variantes, incluindo análise de variantes estruturais, análise de variantes somáticas, e análise de GATK, assim como análise de sequenciamento de RNA e outra análise genética, tal como em relação a dados de sequenciamento com base genética, que podem ter sido gerados em um formato otimizado que entrega um aprimoramento em velocidade de processamento que é magnitudes mais rápida que as segmentações padrão que são implantadas em software conhecido apenas. Adicionalmente, as segmentações apresentadas no presente documento fornecem melhor sensibilidade e precisão em uma ampla gama de conjuntos de dados derivados de sequência, tal como em sequências derivadas de ácido nucleico ou proteína.[0129] Accordingly, provided herein are software and/or hardware accelerated platform analysis technologies, e.g., chip-based, for performing secondary and/or tertiary analysis of DNA/RNA sequencing data. More particularly, a platform, or stack, of processing engines, such as in a software-deployed and/or wired configuration, that has been specifically designed to perform secondary genetic analysis, e.g., mapping, alignment, classification, and/or variant calling; and/or may be specifically designed to perform tertiary genetic analysis, such as microarray analysis, a genome, e.g., whole genome analysis, genotyping analysis, exome analysis, epigenome analysis, metagenome analysis, microbiome analysis, genotyping analysis including joint genotyping analysis, variant analysis including structural variant analysis, somatic variant analysis, and GATK analysis, as well as RNA sequencing analysis and other genetic analysis, such as in relation to genetic-based sequencing data, which may have been generated in an optimized format that delivers an improvement in processing speed that is magnitudes faster than standard segmentations that are implemented in known software alone. Additionally, the segmentations presented herein provide improved sensitivity and accuracy across a wide range of sequence-derived data sets, such as nucleic acid or protein-derived sequences.

[0130] Conforme indicado acima, em diversos casos, é um objetivo de processamento de bioinformática determinar genomas e/ou sequências de proteínas individuais de pessoas, em que as determinações podem ser usadas em protocolos de constatação, assim como para profilaxia e/ou regimes terapêuticos, para aprimorar melhor a sustentação de cada pessoa particular e da raça humana como um todo. Adicionalmente, o conhecimento do genoma e/ou compilação de proteínas de um indivíduo pode ser usado, tal como na constatação de fármaco e/ou em testes da FDA, para prever melhor com particularidade quais, se houver, fármacos têm maior probabilidade de funcionar em um indivíduo e/ou quais têm maior probabilidade de ter efeitos colaterais prejudiciais, tais como analisando-se o genoma do indivíduo e/ou um perfil de proteína derivado a partir do mesmo e comparando-se o mesmo com uma resposta biológica prevista a partir da administração de tal fármaco.[0130] As indicated above, in many cases, it is an objective of bioinformatics to determine genomes and/or protein sequences of individual individuals, where the determinations can be used in testing protocols, such as for prophylaxis and/or therapeutic regimens, to better improve the health of each individual individual and of the human race as a whole. Additionally, knowledge of an individual's genome and/or protein composition can be used, such as in drug testing and/or FDA testing, to better predict which, if any, drugs are most likely to work in an individual and/or which are most likely to have harmful side effects, such as by analyzing the individual's genome and/or a protein profile derived therefrom and comparing the same to a predicted biological response to the administration of such a drug.

[0131] Tal processamento de bioinformática envolve normalmente três fases bem definidas, mas tipicamente separadas, de processamento de informações. A primeira fase, denominada processamento primário, envolve sequenciamento de DNA/RNA, em que o DNA e/ou RNA de um sujeito é obtido e submetido a diversos processos pelos quais o código genético do sujeito é convertido em um código digital legível por máquina, por exemplo, um arquivo FASTQ. A segunda fase, denominada processamento secundário, envolve usar o código genético digital gerado do sujeito para a determinação da constituição genética do indivíduo, por exemplo, determinar a sequência genômica de nucleotídeos do indivíduo. E a terceira fase, denominada processamento terciário, envolve realizar uma ou mais análises no patrimônio genético do sujeito a fim de determinar informações terapeuticamente úteis a partir do mesmo.[0131] Such bioinformatics processing typically involves three well-defined but typically separate phases of information processing. The first phase, called primary processing, involves DNA/RNA sequencing, in which a subject's DNA and/or RNA is obtained and subjected to various processes by which the subject's genetic code is converted into a machine-readable digital code, e.g., a FASTQ file. The second phase, called secondary processing, involves using the generated digital genetic code of the subject to determine the genetic makeup of the individual, e.g., to determine the individual's genomic nucleotide sequence. And the third phase, called tertiary processing, involves performing one or more analyses on the subject's genetic heritage in order to determine therapeutically useful information therefrom.

[0132] Consequentemente, um vez que o código genético do sujeito é sequenciado, tal como por um sequenciador de próxima geração, de modo a produzir uma representação digital legível por máquina do código genético do código genético do sujeito, por exemplo, em um formato de arquivo FASTQ e/ou BCL, pode ser útil processar os dados de sequência genética digitalmente codificados obtidos a partir do sequenciador e/ou protocolo de sequenciamento, tal como submetendo-se os dados digitalmente representados a processamento secundário. Esse processamento secundário, por exemplo, pode ser usado para mapear e/ou alinhar e/ou de outro modo montar todo um perfil genômico e/ou proteico de um indivíduo, tal como quando todo o patrimônio genético do indivíduo é determinado, por exemplo, quando cada nucleotídeo de cada cromossomo é determinado em ordem sequencial de forma que a composição de todo o genoma do indivíduo tenha sido identificado. Em tal processamento, o genoma do indivíduo pode ser montado tal como por comparação com um genoma de referência, tal como um padrão de referência, por exemplo, um ou mais genomas obtidos a partir do projeto de genoma humano ou semelhantes, a fim de determinar como o patrimônio genético do indivíduo é diferente daquele do referente (ou referentes). Esse processo é comumente conhecido como chamada de variante. Como a diferença entre o DNA de qualquer pessoa para outra é 1 em 1.000 pares de bases, tal processo de chamada de variante pode ser muito trabalhoso e demorado, exigindo muitas etapas que podem precisar ser realizadas uma após a outra e/ou simultaneamente, tal como em uma segmentação, de modo a analisar os dados genômicos do sujeito e determinar como essa sequência genética difere de uma dada referência.[0132] Accordingly, once the subject's genetic code is sequenced, such as by a next generation sequencer, so as to produce a machine-readable digital representation of the subject's genetic code, e.g., in a FASTQ and/or BCL file format, it may be useful to process the digitally encoded genetic sequence data obtained from the sequencer and/or sequencing protocol, such as by subjecting the digitally represented data to secondary processing. Such secondary processing, for example, may be used to map and/or align and/or otherwise assemble an entire genomic and/or protein profile of an individual, such as when the individual's entire genetic makeup is determined, e.g., when each nucleotide of each chromosome is determined in sequential order such that the composition of the individual's entire genome has been identified. In such processing, the individual's genome may be assembled as such by comparison with a reference genome, such as a reference standard, for example one or more genomes obtained from the Human Genome Project or similar, in order to determine how the individual's genetic heritage differs from that of the referent(s). This process is commonly known as variant calling. Since the difference between the DNA of any one person and another is 1 in 1,000 base pairs, such a variant calling process can be very laborious and time-consuming, requiring many steps that may need to be performed one after the other and/or simultaneously, as in segmentation, in order to analyze the subject's genomic data and determine how that genetic sequence differs from a given reference.

[0133] Na realização de uma segmentação de análise secundária, tal como para gerar um arquivo de chamada de variante para ima dada sequência de consulta de um sujeito individual; uma amostra genética, por exemplo, DNA, RNA, amostra de proteína ou similares, pode ser obtida do sujeito. O DNA/RNA do sujeito pode ser, então, sequenciado, por exemplo, por um Sequenciador da Próxima Geração (NGS) e/ou uma tecnologia de sequenciador em um chip, por exemplo, em uma etapa de processamento primário, de modo a produzir uma multiplicidade de segmentos de sequência de leitura ("leituras") que cobrem toda ou uma porção do genoma do indivíduo, tal como em uma maneira superamostrada. O produto final gerado pelo dispositivo de sequenciamento pode ser uma coleção de sequências curtas, por exemplo, leituras, que representa segmentos pequenos do genoma do sujeito, por exemplo, sequências genéticas curtas que representam o genoma inteiro do indivíduo. Conforme indicado, tipicamente, as informações representadas por essas leituras podem estar em um arquivo de imagem ou em um formato digital, tal como em formato de arquivo FASTQ, BCL ou outro similar.[0133] In performing a secondary analysis segmentation, such as to generate a variant call file for a given query sequence from an individual subject; a genetic sample, e.g., DNA, RNA, protein sample or the like, may be obtained from the subject. The subject's DNA/RNA may then be sequenced, e.g., by a Next Generation Sequencer (NGS) and/or a sequencer-on-a-chip technology, e.g., in a primary processing step, so as to produce a plurality of read sequence segments ("reads") that cover all or a portion of the subject's genome, such as in an oversampled manner. The final product generated by the sequencing device may be a collection of short sequences, e.g., reads, that represent small segments of the subject's genome, e.g., short genetic sequences that represent the entire genome of the subject. As indicated, typically the information represented by these readings may be in an image file or in a digital format such as a FASTQ, BCL, or similar file format.

[0134] Particularmente, em um protocolo de processamento secundário típico, o patrimônio genético de um sujeito é montado por comparação com um genoma de referência. Essa comparação envolve a reconstrução do genoma do indivíduo de milhões em milhões de sequências de leitura curtas e/ou a comparação de todo o DNA do indivíduo com um modelo de sequência de DNA exemplificativo. Em um protocolo de processamento secundário típico, uma imagem, FASTQ, e/ou um arquivo de BCL é recebido a partir do sequenciador que contém os dados de leitura sequenciados brutos. A fim de comparar o genoma do sujeito com aquele do genoma de referência padrão, é necessário ser determinado onde cada uma dessa leituras se mapeia para o genoma de referência, tal como quando cada uma é alinhada em relação umas às outras, e/ou como cada leitura também pode ser classificada por ordem cromossômica a fim de determinar em qual posição e a qual cromossomo cada leitura pertence. Uma ou mais dessas funções podem ocorrer antes de realizar uma função de chamada de variante em toda a sequência de comprimento, por exemplo, uma vez montado. Especificamente, uma vez que é determinado onde no genoma cada leitura pertence, a sequência genética de comprimento completo pode ser determinada e, então, as diferenças entre o código genético do sujeito e aquele do referente podem ser avaliadas.[0134] In particular, in a typical secondary processing protocol, a subject's genetic heritage is assembled by comparison with a reference genome. This comparison involves reconstructing the individual's genome from millions upon millions of short read sequences and/or comparing the individual's entire DNA to an exemplary DNA sequence template. In a typical secondary processing protocol, an image, FASTQ, and/or BCL file is received from the sequencer that contains the raw sequenced read data. In order to compare the subject's genome to that of the standard reference genome, it is necessary to determine where each of these reads maps to the reference genome, such as when each is aligned relative to each other, and/or how each read can also be sorted by chromosomal order in order to determine at what position and to which chromosome each read belongs. One or more of these functions may occur prior to performing a variant calling function on the full length sequence, e.g., once assembled. Specifically, once it is determined where in the genome each read belongs, the full-length genetic sequence can be determined and then the differences between the subject's genetic code and that of the referent can be assessed.

[0135] Por exemplo, montagem baseada em referência em um protocolo de montagem de processamento secundário típico envolve a comparação de DNA/RNA genômico sequenciado de um indivíduo com aquele de um ou mais padrões, por exemplo, sequências de referência conhecidas. Vários algoritmos de mapeamento, alinhamento, classificação e/ou chamada de variante foram desenvolvidos para ajudar a acelerar esses processos. Esses algoritmos podem incluir, portanto, alguma variação de um ou mais dentre: mapeamento, alinhamento e/ou classificação das milhões de leituras recebidas a partir da imagem, FASTQ, e/ou arquivo BCL comunicados pelo sequenciador, para determinar onde em cada cromossomo cada leitura particular está localizada. Nota-se que esses processos podem ser implantados em software ou hardware, tal como pelos métodos e/ou dispositivos descritos nas Patentes nos U.S. 9.014.989 e 9.235.680, ambas atribuídas à Edico Genome Corporation e incorporadas a título de referência ao presente documento em sua totalidade. Normalmente, um recurso comum por trás do funcionamento desses diversos algoritmos e/ou implementações de hardware é seu uso de um índice e/ou um arranjo para expedir sua função de processamento.[0135] For example, reference-based assembly in a typical secondary processing assembly protocol involves comparing sequenced genomic DNA/RNA from an individual to that of one or more standards, e.g., known reference sequences. Various mapping, alignment, classification, and/or variant calling algorithms have been developed to help accelerate these processes. These algorithms may therefore include some variation of one or more of: mapping, aligning, and/or classifying the millions of reads received from the image, FASTQ, and/or BCL file communicated by the sequencer, to determine where on each chromosome each particular read is located. It is noted that these processes may be implemented in software or hardware, such as by the methods and/or devices described in U.S. Patents 9,014,989 and 9,235,680, both assigned to Edico Genome Corporation and incorporated by reference herein in their entirety. Typically, a common feature behind the functioning of these various algorithms and/or hardware implementations is their use of an index and/or an array to expedite their processing function.

[0136] Por exemplo, em relação a mapeamento, uma grande quantidade, por exemplo, todas, das leituras sequenciadas pode ser processada para determinar os locais possíveis no genoma de referência aos quais essas leituras podem possivelmente se alinhar. Uma metodologia que pode ser usada para esse propósito é fazer uma comparação direta da leitura com o genoma de referência a fim de encontrar todas as posições de correspondência. Outra metodologia é empregar um arranjo de prefixo ou sufixo ou construir uma árvore de prefixo ou sufixo, para o propósito de mapear as leituras para diversas posições no genoma de referência. Um algoritmo típico útil na realização de tal função é uma transformada de Burrows-Wheeler, a qual é usada para mapear uma seleção de leituras para uma referência com o uso de uma fórmula de compressão que comprime sequências repetidas de dados.[0136] For example, with respect to mapping, a large number, e.g., all, of the sequenced reads may be processed to determine the possible locations in the reference genome to which these reads may possibly align. One methodology that may be used for this purpose is to make a direct comparison of the read with the reference genome in order to find all matching positions. Another methodology is to employ a prefix or suffix array, or to construct a prefix or suffix tree, for the purpose of mapping the reads to various positions in the reference genome. A typical algorithm useful in performing such a function is a Burrows-Wheeler transform, which is used to map a selection of reads to a reference using a compression formula that compresses repeated sequences of data.

[0137] Uma metodologia adicional é empregar uma tabela de dispersão, tal como quando um subconjunto selecionado das leituras, um k-mer de um comprimento selecionado “k”, por exemplo, uma semente, é colocado em uma tabela de dispersão como chaves e a sequência de referência é quebrada em porções de comprimento k-mer equivalentes e essas porções e seu local são inseridos por um algoritmo na tabela de dispersão nesses locais na tabela para os quais as mesmas se mapeiam, de acordo com uma função de hash. Um algoritmo típico para realizar essa função é “BLAST”, uma Ferramenta de Busca de Alinhamento Local Básica. Tais programas baseados em tabela de dispersão comparam sequências de nucleotídeo ou proteína de pesquisa com um ou mais bancos de dados de sequência de referência padrões e calcula o significado estatístico de correspondências. De tais formas como essas, pode ser determinado onde qualquer dada leitura está possivelmente localizada em relação a um genoma de referência. Esses algoritmos são úteis devido ao fato de que os mesmos exigem menos memória, menos pesquisas, LUTs e, portanto, exigem menos recursos de processamento e tempo no desempenho de suas funções do que seria de outro modo o caso, tal como se o genoma do sujeito estivesse sendo montado por comparação direta, tal como sem o uso desses algoritmos.[0137] An additional methodology is to employ a hash table, such as where a selected subset of the reads, a k-mer of a selected length “k”, e.g., a seed, is placed in a hash table as keys and the reference sequence is broken into equivalent k-mer length chunks and these chunks and their location are inserted by an algorithm into the hash table at those locations in the table to which they map, according to a hash function. A typical algorithm for performing this function is “BLAST”, a Basic Local Alignment Search Tool. Such hash table-based programs compare query nucleotide or protein sequences with one or more standard reference sequence databases and calculate the statistical significance of matches. In such ways as these, it can be determined where any given read is likely to be located relative to a reference genome. These algorithms are useful because they require less memory, fewer searches, LUTs, and therefore require less processing resources and time in performing their functions than would otherwise be the case, such as if the subject's genome were being assembled by direct comparison, such as without the use of these algorithms.

[0138] Adicionalmente, uma função de alinhamento pode ser realizada para determinar, dentre todos os locais possíveis que uma dada leitura pode se mapear em um genoma, tal como naqueles casos em que uma leitura pode se mapear para múltiplas posições no genoma, qual é, na verdade, o local do qual a mesma é realmente derivada, tal como por meio de ser sequenciada a partir do mesmo pelo protocolo de sequenciamento original. Essa função pode ser realizada em diversas das leituras, por exemplo, leituras mapeadas, do genoma e uma corrente de bases de nucleotídeo ordenadas que representam uma porção ou toda a sequência genética do DNA/RNA do sujeito pode ser obtida. Em conjunto com a sequência genética ordenada, uma pontuação pode ser dada para cada nucleotídeo em uma dada posição, representando a probabilidade de que, para qualquer dada posição de nucleotídeo, o nucleotídeo, por exemplo, “A”, “C”, “G”, “T” (ou “U”), previsto para estar naquela posição é, na verdade, o nucleotídeo que pertence àquela posição atribuída. Os algoritmos típicos para realizar funções de alinhamento incluem os algoritmos de Needleman-Wunsch e Smith-Waterman. Em qualquer caso, esses algoritmos realizam alinhamentos de sequência entre uma corrente da sequência genômica de pesquisa do sujeito e uma corrente da sequência genômica de referência pela qual, em vez de comparar todas as sequências genômicas umas com as outras, segmentos de uma seleção de comprimentos possíveis são comparados.[0138] Additionally, an alignment function may be performed to determine, among all possible locations that a given read may map to in a genome, such as in those cases where a read may map to multiple positions in the genome, which is in fact the location from which it is actually derived, such as by being sequenced from it by the original sequencing protocol. This function may be performed on several of the reads, e.g., mapped reads, of the genome and an ordered nucleotide base stream representing a portion or all of the subject's DNA/RNA genetic sequence may be obtained. In conjunction with the ordered genetic sequence, a score may be given for each nucleotide at a given position representing the probability that, for any given nucleotide position, the nucleotide, e.g., "A", "C", "G", "T" (or "U"), predicted to be at that position is in fact the nucleotide that belongs to that assigned position. Typical algorithms for performing alignment functions include the Needleman-Wunsch and Smith-Waterman algorithms. In either case, these algorithms perform sequence alignments between a stream of the subject's research genome sequence and a stream of the reference genome sequence whereby, rather than comparing all genome sequences with each other, segments of a selection of possible lengths are compared.

[0139] Uma vez que as leituras foram atribuídas a uma posição, tal como em relação ao genoma de referência, o qual pode incluir identificar a qual cromossomo a leitura pertence e/ou seu desvio do começo daquele cromossomo, as leituras podem ser classificadas por posição. Isso pode permitir que análises a jusantes se aproveitem dos procedimentos de superamostragem descritos no presente documento. Todas as leituras que se sobrepõem a uma dada posição no genoma serão adjacentes umas às outras após a classificação e as mesmas podem ser reconhecidas em um acúmulo e prontamente examinadas para determinar se a maioria das mesmas concordam com o valor de referência ou não. Se as mesmas não concordarem, uma variante pode ser sinalizada.[0139] Once reads have been assigned to a position, such as relative to the reference genome, which may include identifying which chromosome the read belongs to and/or its offset from the beginning of that chromosome, the reads can be sorted by position. This may allow downstream analyses to take advantage of the oversampling procedures described herein. All reads that overlap a given position in the genome will be adjacent to each other after sorting and they can be recognized in a cluster and readily examined to determine whether the majority of them agree with the reference value or not. If they do not, a variant can be flagged.

[0140] Por exemplo, em diversas modalidades, os métodos da revelação podem incluir gerar um arquivo de chamada de variante (VCF) que identifica uma ou mais, por exemplo, todas as variantes genéticas no indivíduo cujo DNA/RNA foi sequenciado, por exemplo, relevante para um ou mais genomas de referência. Por exemplo, uma vez que o genoma de amostra real é conhecido e comparado com o genoma de referência, as variações entre os dois podem ser determinadas, e uma lista de todas as variações/os desvios entre o genoma (ou genomas) de referência e o genoma de amostra pode ser chamada, por exemplo, um arquivo de chamada de variante pode ser produzido. Particularmente, em um aspecto, um arquivo de chamada de variante que contém todas as variações da sequência genética do sujeito para a sequência (ou sequências) de referência pode ser gerado.[0140] For example, in various embodiments, the methods of the disclosure may include generating a variant call file (VCF) that identifies one or more, e.g., all genetic variants in the subject whose DNA/RNA was sequenced, e.g., relevant to one or more reference genomes. For example, once the actual sample genome is known and compared to the reference genome, variations between the two may be determined, and a list of all variations/deviations between the reference genome (or genomes) and the sample genome may be called, e.g., a variant call file may be produced. Particularly, in one aspect, a variant call file containing all variations from the subject's genetic sequence to the reference sequence (or sequences) may be generated.

[0141] Conforme indicado acima, tais variações entre as duas sequências genéticas podem ser devido a diversos motivos. Portanto, a fim de gerar tal arquivo, o genoma do sujeito precisa ser sequenciado e reconstruído antes da determinação de suas variantes. Entretanto, existem diversos problemas que podem ocorrer quando se tenta gerar tal montagem. Por exemplo, pode haver problemas com o erro de química, da máquina de sequenciamento e/ou humano que ocorre no processo de sequenciamento. Além disso, pode haver artefatos genéticos que tornam tais reconstruções problemáticas. Por exemplo, um problema típico com realizar tais montagens é que existem, algumas vezes, porções gigantes do genoma que se repetem, tais como seções longas do genoma que incluem as mesmas correntes de nucleotídeos. Logo, devido ao fato de que qualquer sequência genética não é única em todos os lugares, pode ser difícil determinar onde no genoma uma leitura identificada realmente se mapeia e alinha. Adicionalmente, pode haver um único polimorfismo de nucleotídeo (SNP), tais como em que uma base na sequência genética do sujeito foi substituída por outra; podem haver substituições mais extensivas de uma pluralidade de nucleotídeos; pode haver uma inserção ou uma deleção, tal como quando uma ou uma multiplicidade de bases foram adicionadas a ou deletadas da sequência genética do sujeito e/ou pode haver uma variante estrutural, por exemplo, tal como causada pelo confluência de pernas de dois cromossomos, e/ou pode haver simplesmente um desvio que causa uma mudança na sequência.[0141] As indicated above, such variations between two genetic sequences can be due to a variety of reasons. Therefore, in order to generate such a file, the subject's genome needs to be sequenced and reconstructed before its variants can be determined. However, there are several problems that can occur when attempting to generate such an assembly. For example, there may be problems with chemistry, sequencing machine and/or human error that occurs in the sequencing process. Furthermore, there may be genetic artefacts that make such reconstructions problematic. For example, a typical problem with performing such assemblies is that there are sometimes large portions of the genome that repeat, such as long sections of the genome that include the same nucleotide chains. Therefore, because any genetic sequence is not unique everywhere, it may be difficult to determine where in the genome an identified read actually maps and aligns. Additionally, there may be a single nucleotide polymorphism (SNP), such as where one base in the subject's genetic sequence has been replaced by another; there may be more extensive substitutions of a plurality of nucleotides; there may be an insertion or a deletion, such as when one or a plurality of bases have been added to or deleted from the subject's genetic sequence; and/or there may be a structural variant, for example, such as caused by the confluence of legs of two chromosomes; and/or there may simply be a deviation that causes a change in the sequence.

[0142] Consequentemente, há duas possibilidades principais para variação. Para uma, existe uma variação real no local particular em questão, por exemplo, quando o genoma da pessoa é, na verdade, diferente em um local particular do que daquele da referência, por exemplo, existe uma variação natural devido a uma SNP (uma substituição de base), uma Inserção ou Deleção (de um ou mais nucleotídeos em comprimento), e/ou existe uma variante estrutural, tal como quando o material de DNA de um cromossomo é cruzado em um cromossomo ou uma perna diferente ou quando uma determinada região é copiada duas vezes no DNA. Alternativamente, uma variação pode ser causa por haver um problema nos dados de leitura, através de um erro de química ou da máquina, do sequenciador ou alinhador ou outro erro humano. Os métodos revelados no presente documento podem ser empregados de uma forma a fim de compensar esses tipos de erros e, mais particularmente, a fim de distinguir erros em variação devido a variações de química, máquina ou humanas e reais no genoma sequenciado. Mais especificamente, os métodos, aparelhos e sistemas para empregar os mesmos, conforme descrito no presente documento, foram desenvolvidos a fim de distinguir claramente entre esses dois tipos diferentes de variações e, portanto, assegurar melhor a precisão de quaisquer arquivos de chamada gerados a fim de identificar corretamente variantes verdadeiras.[0142] Accordingly, there are two main possibilities for variation. For one, there is actual variation at the particular site in question, e.g., when the person's genome is actually different at a particular site than that of the reference, e.g., there is natural variation due to a SNP (a base substitution), an Insertion or Deletion (of one or more nucleotides in length), and/or there is a structural variant, such as when DNA material from one chromosome is crossed over into a different chromosome or leg or when a particular region is copied twice in the DNA. Alternatively, a variation may be caused by a problem in the read data, through a chemical or machine error, sequencer or aligner error, or other human error. The methods disclosed herein may be employed in a manner to compensate for these types of errors and, more particularly, to distinguish errors in variation due to chemical, machine or human variations from actual variations in the sequenced genome. More specifically, the methods, apparatus and systems for employing the same, as described herein, have been developed in order to clearly distinguish between these two different types of variations and therefore better ensure the accuracy of any call files generated in order to correctly identify true variants.

[0143] Portanto, em modalidades particulares, uma plataforma de tecnologias para realizar análises genéticas é fornecido, em que a plataforma pode incluir o desempenho de um ou mais dentre: funções de mapeamento, alinhamento, classificação, realinhamento local, marcação de duplicada, recalibração de pontuação de qualidade de base, chamada de variante, compressão e/ou descompressão. Por exemplo, em diversos aspectos, uma segmentação pode ser fornecida, em que a segmentação inclui realizar uma ou mais funções analíticas, conforme descrito no presente documento, em uma sequência genômica de um ou mais indivíduos, tais como dados obtidos em um arquivo de imagem e/ou um formato de arquivo digital, por exemplo, FASTQ ou BCL, a partir de um sequenciador automatizado. Uma segmentação típica a ser executada pode incluir um ou mais dentre sequenciamento de material genético, tal como uma porção ou um genoma completo, de um ou mais sujeitos individuais, em que o material genético pode incluir DNA, ssDNA, RNA, rRNA, tRNA e semelhantes, e/ou, em alguns casos, o material genético pode representar regiões de codificação ou não codificação, tais como exomas e/ou epissomas do DNA. A segmentação pode incluir um ou mais dentre realizar um procedimento de processamento de imagens, uma operação de chamada de base e/ou correção de erro, tal como nos dados genéticos digitalizados, e/ou pode incluir um ou mais dentre realizar um mapeamento, um alinhamento e/ou uma função de classificação nos dados genéticos. Em determinados casos, a segmentação pode incluir realizar um ou mais dentre um realinhamento, uma desduplicação, uma recalibração de qualidade ou pontuação de base, uma redução e/ou compressão e/ou uma descompressão nos dados genéticos digitalizados. Em determinados casos, a segmentação pode incluir realizar uma operação de chamada de variante, tal como um Modelo Oculto de Markov, nos dados genéticos.[0143] Therefore, in particular embodiments, a platform of technologies for performing genetic analyses is provided, wherein the platform may include performing one or more of: mapping, alignment, classification, local realignment, duplicate flagging, base quality score recalibration, variant calling, compression, and/or decompression functions. For example, in various aspects, segmentation may be provided, wherein segmentation includes performing one or more analytical functions as described herein on a genomic sequence from one or more individuals, such as data obtained in an image file and/or a digital file format, e.g., FASTQ or BCL, from an automated sequencer. A typical segmentation to be performed may include one or more of sequencing genetic material, such as a portion or a complete genome, from one or more individual subjects, wherein the genetic material may include DNA, ssDNA, RNA, rRNA, tRNA, and the like, and/or in some cases the genetic material may represent coding or non-coding regions, such as exomes and/or episomes of DNA. The segmentation may include one or more of performing an image processing procedure, a base calling operation, and/or error correction, such as on digitized genetic data, and/or may include one or more of performing a mapping, an alignment, and/or a classification function on the genetic data. In certain cases, the segmentation may include performing one or more of a realignment, a deduplication, a quality recalibration or base scoring, a reduction and/or compression, and/or a decompression on the digitized genetic data. In certain cases, segmentation may include performing a variant calling operation, such as a Hidden Markov Model, on the genetic data.

[0144] Consequentemente, em determinados casos, a implantação de uma ou mais dessas funções de plataforma é para o propósito de realizar um ou mais dentre determinar e/ou reconstruir uma sequência genômica de consenso de um sujeito, comparar uma sequência genômica do sujeito com uma sequência referente, por exemplo, uma sequência genética de referência ou modelo, determinar a forma em que o DNA ou RNA do sujeito genômico é diferente de um referente, por exemplo, chamada de variante, e/ou para realizar uma análise terciária na sequência genômica do sujeito, tal como para análise de variação de genoma amplo, análise de função genética, análise de função proteica, por exemplo, análise de ligação proteica, análise quantitativa e/ou de montagem de genomas e/ou transcriptomas, assim como para diversas análises de avaliação diagnóstica e/ou profilática e/ou terapêutica.[0144] Accordingly, in certain cases, the implementation of one or more of these platform functions is for the purpose of performing one or more of determining and/or reconstructing a consensus genomic sequence of a subject, comparing a genomic sequence of the subject to a referent sequence, e.g., a reference or template genetic sequence, determining the way in which the subject's genomic DNA or RNA is different from a referent, e.g., called a variant, and/or performing a tertiary analysis on the subject's genomic sequence, such as for genome-wide variation analysis, gene function analysis, protein function analysis, e.g., protein binding analysis, quantitative and/or assembly analysis of genomes and/or transcriptomes, as well as for various diagnostic and/or prophylactic and/or therapeutic evaluation analyses.

[0145] Conforme indicado acima, em um aspecto, uma ou mais dentre essas funções de plataforma, por exemplo, mapeamento, alinhamento, classificação, realinhamento, marcação de duplicada, recalibração de pontuação de qualidade de base, chamada de variante, funções de compressão e/ou descompressão são configuradas para implantação em software. Em alguns aspectos, uma ou mais dessas funções de plataforma, por exemplo, funções de mapeamento, alinhamento, classificação, realinhamento local, marcação de duplicada, recalibração de pontuação de qualidade de base, descompressão, chamada de variante, compressão e/ou descompressão, são configuradas para implantação em hardware, por exemplo, firmware. Em determinados aspectos, essas tecnologias de análise genética podem empregar algoritmos aperfeiçoados que podem ser implantados por meio de software que é operado de uma forma menos intensiva em processamento e/ou menos demorada e/ou com precisão de porcentagem maior e, por exemplo, a funcionalidade implantada por hardware é mais rápida, menos intensiva em processamento e mais precisa.[0145] As indicated above, in one aspect, one or more of these platform functions, e.g., mapping, alignment, classification, realignment, duplicate marking, base quality score recalibration, variant calling, compression, and/or decompression functions, are configured for implementation in software. In some aspects, one or more of these platform functions, e.g., mapping, alignment, classification, local realignment, duplicate marking, base quality score recalibration, decompression, variant calling, compression, and/or decompression functions, are configured for implementation in hardware, e.g., firmware. In certain aspects, these genetic analysis technologies may employ improved algorithms that can be implemented through software that operates in a less processing-intensive and/or less time-consuming manner and/or with higher percentage accuracy, and, e.g., the hardware-implemented functionality is faster, less processing-intensive, and more accurate.

[0146] Por exemplo, em certas modalidades, são fornecidos algoritmos aprimorados para realizar tal processamento primário, secundário e/ou terciário, conforme revelado no presente documento. Os algoritmos aprimorados são direcionados a realizar de modo mais eficaz e/ou mais preciso uma ou mais dentre as funções de mapeamento, alinhamento, classificação e/ou chamada de variante, tal como em um arquivo de imagem e/ou uma representação digital de dados de sequência de DNA/RNA obtidos a partir de uma plataforma de sequenciamento, tal como em um formato de arquivo FASTQ ou BCL obtido a partir de um sequenciador automatizado, tal como um daqueles apresentados acima. Em determinadas modalidades, os algoritmos aperfeiçoados podem ser direcionados a realizar mais eficientemente e/ou mais precisamente um ou mais dentre funções de realinhamento local, marcação de duplicada, recalibração de pontuação de qualidade de base, chamada de variante, compressão e/ou descompressão. Adicionalmente, conforme descrito em maiores detalhes no presente documento abaixo, em determinadas modalidades, essas tecnologias de análise genética podem empregar um ou mais algoritmos, tais como algoritmos aperfeiçoados, que podem ser implantados por um ou mais dentre software e/ou hardware que é operado de uma forma menos intensiva em processamento e/ou menos demorada e/ou com precisão de porcentagem maior do que diversas implantações de software tradicionais para fazer o mesmo. Em vários casos, algoritmos aprimorados para implantação em uma plataforma de processamento quântico são fornecidos.[0146] For example, in certain embodiments, improved algorithms are provided for performing such primary, secondary, and/or tertiary processing as disclosed herein. The improved algorithms are directed to more efficiently and/or more accurately performing one or more of the functions of mapping, alignment, classification, and/or variant calling, such as on an image file and/or a digital representation of DNA/RNA sequence data obtained from a sequencing platform, such as in a FASTQ or BCL file format obtained from an automated sequencer, such as one of those set forth above. In certain embodiments, the improved algorithms may be directed to more efficiently and/or more accurately performing one or more of the functions of local realignment, duplicate flagging, base quality score recalibration, variant calling, compression, and/or decompression. Additionally, as described in greater detail herein below, in certain embodiments, these genetic analysis technologies may employ one or more algorithms, such as enhanced algorithms, that may be implemented by one or more software and/or hardware that operates in a less processing intensive and/or less time consuming manner and/or with higher percentage accuracy than various traditional software implementations for doing the same. In various cases, enhanced algorithms for implementation on a quantum processing platform are provided.

[0147] Logo, em vários aspectos, são apresentados no presente documento sistemas, aparelhos e métodos para implantar protocolos de bioinformática, tal como para realizar uma ou mais funções para analisar dados genéticos, tais como dados genômicos, por exemplo, por meio de um ou mais algoritmos otimizados e/ou em um ou mais circuitos integrados e/ou quânticos otimizados, tais como em uma ou mais plataformas de processamento em hardware. Em um caso, sistemas e métodos são fornecidos para implantar um ou mais algoritmos, por exemplo em software e/ou em firmware e/ou por um circuito de processamento quântico, para o desempenho de uma ou mais etapas para analisar dados genômicos em um protocolo de bioinformática, tal como quando as etapas podem incluir o desempenho de um ou mais dentre: mapeamento, alinhamento, classificação, realinhamento local, marcação de duplicada, recalibração de pontuação de qualidade de base, chamada de variante, compressão e/ou descompressão, e pode incluir adicionalmente uma ou mais etapas em uma plataforma de processamento terciário. Consequentemente, em determinados casos, métodos, incluindo software, firmware, hardware e/ou algoritmos de processamento quântico para realizar os métodos são apresentados no presente documento, em que os métodos envolvem o desempenho de um algoritmo, tal como um algoritmo para implantar uma ou mais funções de análise genética, tais como mapeamento, alinhamento, classificação, realinhamento, marcação de duplicada, recalibração de pontuação de qualidade de base, chamada de variante, compressão, descompressão e/ou um ou mais protocolos de processamento terciário, em que o algoritmo, por exemplo, incluindo firmware, foi otimizado de acordo com a forma em que o mesmo deve ser implantado.[0147] Thus, in various aspects, systems, apparatus, and methods for implementing bioinformatics protocols are disclosed herein, such as for performing one or more functions for analyzing genetic data, such as genomic data, e.g., by one or more optimized algorithms and/or in one or more optimized integrated and/or quantum circuits, such as in one or more hardware processing platforms. In one instance, systems and methods are provided for implementing one or more algorithms, e.g., in software and/or in firmware and/or by a quantum processing circuit, for performing one or more steps for analyzing genomic data in a bioinformatics protocol, such as where the steps may include performing one or more of: mapping, alignment, classification, local realignment, duplicate flagging, base quality score recalibration, variant calling, compression, and/or decompression, and may further include one or more steps in a tertiary processing platform. Accordingly, in certain instances, methods, including software, firmware, hardware, and/or quantum processing algorithms for performing the methods are disclosed herein, wherein the methods involve performing an algorithm, such as an algorithm for implementing one or more genetic analysis functions, such as mapping, alignment, classification, realignment, duplicate flagging, base quality score recalibration, variant calling, compression, decompression, and/or one or more tertiary processing protocols, wherein the algorithm, e.g., including firmware, has been optimized according to the form in which it is to be implemented.

[0148] Em particular, quando o algoritmo deve ser implantado em uma solução de software, o algoritmo e/ou seus processos correlacionados foram otimizados a fim de serem realizados mais rápido e/ou com precisão melhor para execução por aquelas mídias. Do mesmo modo, quando as funções do algoritmo devem ser implantadas em uma solução de hardware, por exemplo, como firmware, o hardware foi projeto para realizar essas funções e/ou seus processos correlacionados de uma forma otimizada a fim serem realizadas mais rápido e/ou com precisão melhor para execução por aquelas mídias. Adicionalmente, quando o algoritmo deve ser implantado em uma solução de processamento quântico, o algoritmo e/ou seus processos correlacionados foram otimizados a fim de serem realizados mais rápido e/ou com precisão melhor para execução por aquelas mídias. Esses métodos, por exemplo, podem ser empregados tal como em um procedimento iterativo de mapeamento, alinhamento, classificação, chamada de variante e/ou processamento terciário. Em outro caso, os sistemas e os métodos são fornecidos para implantar as funções de um ou mais algoritmos para o desempenho de uma ou mais etapas para analisar dados genômicos em um protocolo de bioinformática, conforme apresentado no presente documento, em que as funções são implantadas em um e/ou acelerador de hardware e/ou quântico, as quais podem ou não ser acopladas a um ou mais processadores de propósito geral e/ou super computadores e/ou computadores quânticos.[0148] In particular, when the algorithm is to be implemented in a software solution, the algorithm and/or its correlated processes have been optimized to be performed faster and/or with better accuracy for execution by those media. Likewise, when the functions of the algorithm are to be implemented in a hardware solution, e.g., as firmware, the hardware has been designed to perform those functions and/or their correlated processes in a manner optimized to be performed faster and/or with better accuracy for execution by those media. Additionally, when the algorithm is to be implemented in a quantum processing solution, the algorithm and/or its correlated processes have been optimized to be performed faster and/or with better accuracy for execution by those media. Such methods, for example, may be employed as in an iterative procedure of mapping, alignment, classification, variant calling, and/or tertiary processing. In another case, systems and methods are provided for implementing the functions of one or more algorithms for performing one or more steps for analyzing genomic data in a bioinformatics protocol as set forth herein, wherein the functions are implemented in a hardware and/or quantum accelerator, which may or may not be coupled to one or more general purpose processors and/or supercomputers and/or quantum computers.

[0149] Mais especificamente, em alguns casos, métodos e/ou mecanismos para implantar aqueles métodos para realizar análises secundárias em dados que pertencem à composição genética de um sujeito são fornecidos. Em um caso, as análises a serem realizadas podem envolver reconstrução com base em referência do genoma do sujeito. Por exemplo, mapeamento baseado em referência envolve o uso de um genoma de referência, o qual pode ser gerado a partir de sequenciamento do genoma de um único ou de múltiplos indivíduos, ou o mesmo pode ser um amálgama do DNA/RNA de diversas pessoas que foram combinadas de tal forma a fim de produzir um genoma de referência padrão prototípico com o qual qualquer material genético do indivíduo, por exemplo, DNA/RNA pode ser comparado, por exemplo, a fim de determinar e reconstruir a sequência genética do indivíduo e/ou para determinar a diferença entre seu patrimônio genético e aquele da referência padrão, por exemplo, chamada de variante.[0149] More specifically, in some cases, methods and/or mechanisms for implementing those methods for performing secondary analyses on data pertaining to the genetic makeup of a subject are provided. In one case, the analyses to be performed may involve reference-based reconstruction of the subject's genome. For example, reference-based mapping involves the use of a reference genome, which may be generated from genome sequencing of a single or multiple individuals, or it may be an amalgam of DNA/RNA from multiple individuals that have been combined in such a way as to produce a prototypical standard reference genome to which any genetic material of the individual, e.g., DNA/RNA, may be compared, e.g., in order to determine and reconstruct the individual's genetic sequence and/or to determine the difference between his or her genetic heritage and that of the standard reference, e.g., called a variant.

[0150] Particularmente, uma razão para realizar uma análise secundária em um DNA/RNA sequenciado do sujeito é determinar como o DNA/RNA do sujeito varia a partir daquele da referência, tal como para determinar uma, uma multiplicidade ou todas as diferenças na sequência de nucleotídeos do sujeito daquela da referência. Por exemplo, as diferenças entre as sequências genéticas de quaisquer duas pessoas aleatórias é 1 em cerca de 1.000 pares de base, o que, quando tomado em vista do genoma completo de mais de 3 bilhões de pares de base, equivale a uma variação de até 3.000.000 pares de base divergentes por pessoa. A determinação dessas diferenças pode ser útil, tal como em um protocolo de análise terciária, por exemplo, a fim de prever o potencial para a ocorrência de um estado de doença, tal como devido a uma anormalidade genética, e/ou a probabilidade de sucesso de uma modalidade profilática ou terapêutica, tal como com base em como se espera que uma modalidade profilática ou terapêutica interaja com o DNA do sujeito ou as proteínas geradas a partir do mesmo. Em diversos casos, pode ser útil realizar tanto uma reconstrução de novo quanto com base em referência do genoma do sujeito a fim de confirmar os resultados de uma contra a outra e para, quando desejável, aprimorar a precisão de um protocolo de chamada de variante.[0150] In particular, one reason to perform a secondary analysis on a subject's sequenced DNA/RNA is to determine how the subject's DNA/RNA varies from that of the reference, such as to determine one, a plurality, or all of the differences in the subject's nucleotide sequence from that of the reference. For example, the differences between the genetic sequences of any two random people is 1 in about 1,000 base pairs, which, when taken in view of the complete genome of over 3 billion base pairs, equates to a variation of up to 3,000,000 divergent base pairs per person. Determining such differences may be useful, such as in a tertiary analysis protocol, for example, in order to predict the potential for a disease state to occur, such as due to a genetic abnormality, and/or the likelihood of success of a prophylactic or therapeutic modality, such as based on how a prophylactic or therapeutic modality is expected to interact with the subject's DNA or proteins generated therefrom. In many cases, it may be useful to perform both a de novo and a reference-based reconstruction of the subject's genome in order to confirm the results of one against the other and to, where desired, improve the accuracy of a variant calling protocol.

[0151] Consequentemente, em um aspecto, em diversas modalidades, uma vez que o genoma do sujeito foi reconstruído e/ou um VCF foi gerado, tais dados podem ser, então, submetidos a processamento terciário a fim de interpretar os mesmos, tal como para determinar o que os dados significam em relação à identificação de quais doenças essa pessoa pode ou pode ter o potencial para sofrer com e/ou para determinar quais tratamentos ou alterações de estilo de vida esse sujeito pode querer empregar a fim de melhorar e/ou prevenir um estado de doença. Por exemplo, a sequência genética do sujeito e/ou seu arquivo de chamada de variante pode ser analisado para determinar marcadores genéticos clinicamente relevantes que indicam a existência ou o potencial para um estado de doença e/ou a eficácia que um regime terapêutico ou profilático proposto pode ter no sujeito. Esses dados podem ser, então, usados para dotar o sujeito de um ou mais regimes terapêuticos ou profiláticos a fim de melhorar a qualidade de vida do sujeito, tal como tratar e/ou prevenir um estado de doença.[0151] Accordingly, in one aspect, in various embodiments, once the subject's genome has been reconstructed and/or a VCF has been generated, such data may then be subjected to tertiary processing in order to interpret the same, such as to determine what the data means in relation to identifying what diseases such a person may or may have the potential to suffer from and/or to determine what treatments or lifestyle changes such a subject may wish to employ in order to ameliorate and/or prevent a disease state. For example, the subject's genetic sequence and/or its variant call file may be analyzed to determine clinically relevant genetic markers that indicate the existence or potential for a disease state and/or the efficacy that a proposed therapeutic or prophylactic regimen may have in the subject. Such data may then be used to provide the subject with one or more therapeutic or prophylactic regimens in order to improve the subject's quality of life, such as to treat and/or prevent a disease state.

[0152] Particularmente, uma vez que uma ou mais dentre as variações genéticas de um indivíduo são determinadas, tais informações de arquivo de chamada de variante podem ser usadas para desenvolver informações medicamente úteis, as quais, por sua vez, podem ser usadas para determinar, por exemplo, com o uso de diversos modelos de análise estatísticos conhecidos, dados relacionados a saúde e/ou informações médicas úteis, por exemplo, para propósitos de diagnóstico, por exemplo, que diagnostica uma doença ou um potencial para a mesma, interpretação clínica (por exemplo, busca por marcadores que representam uma variante de doença), se o sujeito deve ser incluído ou excluído em diversos ensaios clínicos e outros tais propósitos. Mais particularmente, em vários casos, os dados de resultados processados de genômica e/ou bioinformática gerados podem ser empregados no desempenho de um ou mais protocolos terciários de genômica e/ou bioinformática, tal como um protocolo de análise de microarranjo, um genoma, por exemplo, protocolo de análise de genoma inteiro, um protocolo de análise de genotipagem, um protocolo de análise de exoma, um protocolo de análise de epigenoma, um protocolo de análise de metagenoma, um protocolo de análise de microbioma, um protocolo de análise de genotipagem, incluindo genotipagem conjunta, protocolos de análises de variantes, incluindo variantes estruturais, variantes somáticas e GATK, assim como protocolos de sequenciamento de RNA e outros protocolos de análises genéticas.[0152] In particular, once one or more of an individual's genetic variations are determined, such variant call file information can be used to develop medically useful information, which in turn can be used to determine, e.g., using various known statistical analysis models, health-related data and/or medical information useful, e.g., for diagnostic purposes, e.g., diagnosing a disease or a potential for the same, clinical interpretation (e.g., searching for markers representing a disease variant), whether the subject should be included or excluded in various clinical trials, and other such purposes. More particularly, in various instances, the processed genomics and/or bioinformatics results data generated may be employed in the performance of one or more tertiary genomics and/or bioinformatics protocols, such as a microarray analysis protocol, a genome, e.g., whole genome analysis protocol, a genotyping analysis protocol, an exome analysis protocol, an epigenome analysis protocol, a metagenome analysis protocol, a microbiome analysis protocol, a genotyping analysis protocol including pooled genotyping, variant analysis protocols including structural variants, somatic variants, and GATK, as well as RNA sequencing protocols, and other genetic analysis protocols.

[0153] Uma vez que existe um número finito de estados de doença que são causados por malformações genéticas, no processamento terciário, as variantes de um determinado tipo, por exemplo, aquelas sabidas que são relacionadas ao surgimento de estados de doença, podem ser pesquisadas, tal como determinando- se se um ou mais marcadores de doença baseados em genética estão incluídos no arquivo de chamada de variante do sujeito. Consequentemente, em diversos casos, os métodos revelados no presente documento podem envolver analisar, por exemplo, varrer, o VCF e/ou a sequência gerada, contra uma variante de sequência de doença conhecida, tal como em um banco de dados de marcadores genômicos, portanto, a fim de identificar a presença do marcador genético no VCF e/ou na sequência gerada e, se presente, fazer uma chamada sobre a presença ou o potencial para um estado de doença geneticamente induzido. Visto que existe um grande número de variações genéticas conhecidas e um grande número de indivíduos que sofrem com doenças causadas por tais variações, em algumas modalidades, os métodos revelados no presente documento podem acarretar a geração de um ou mais bancos de dados que ligam dados sequenciados para um genoma completo e/ou um arquivo de chamada de variante que pertence aos mesmos, por exemplo, tal como de um indivíduo ou uma pluralidade de indivíduos, e um estado de doença e/ou buscar os bancos de dados gerados para determinar se um sujeito particular tem uma composição genética que predisporia o mesmo a ter tal estado de doença. Tal busca pode envolver uma comparação de um genoma completo com um ou mais outros ou um fragmento de um genoma, tal como um fragmento que contém apenas as variações, com um ou mais fragmentos de um ou mais outros genomas, tais como em um banco de dados de genomas de referência ou fragmentos dos mesmos.[0153] Since there are a finite number of disease states that are caused by genetic malformations, in tertiary processing, variants of a given type, e.g., those known to be related to the emergence of disease states, may be screened for, such as by determining whether one or more genetically based disease markers are included in the subject's variant call file. Accordingly, in various instances, the methods disclosed herein may involve analyzing, e.g., scanning, the VCF and/or the generated sequence against a known disease sequence variant, such as in a genomic marker database, in order to identify the presence of the genetic marker in the VCF and/or the generated sequence and, if present, make a call on the presence of or potential for a genetically induced disease state. Since there are a large number of known genetic variations and a large number of individuals suffering from diseases caused by such variations, in some embodiments, the methods disclosed herein may entail generating one or more databases that link sequenced data for a complete genome and/or a variant call file pertaining thereto, e.g., such as from an individual or a plurality of individuals, and a disease state and/or searching the generated databases to determine whether a particular subject has a genetic makeup that would predispose him or her to having such a disease state. Such a search may involve comparing a complete genome to one or more others or a fragment of a genome, such as a fragment containing only the variations, to one or more fragments of one or more other genomes, such as in a database of reference genomes or fragments thereof.

[0154] Portanto, em diversos casos, uma segmentação da revelação pode incluir um ou mais módulos, em que os módulos são configurados para realizar uma ou mais funções, tal como um processamento de imagens ou uma operação de chamada de base e/ou correção de erro e/ou um mapeamento e/ou um alinhamento, por exemplo, um alinhamento com lacuna ou sem lacuna, e/ou uma função de classificação em dados genéticos, por exemplo, dados sequenciados genéticos. Além disso, em diversos casos, a segmentação pode incluir um ou mais módulos, em que os módulos são configurados para realizar um ou mais dentre um realinhamento local, uma desduplicação, uma recalibração de pontuação de qualidade de base, uma chamada de variante, por exemplo, HMM, uma redução e/ou compressão e/ou uma descompressão nos dados genéticos. Adicionalmente, a segmentação pode incluir um ou mais módulos, em que os módulos são configurados para realizar um protocolo de análise terciária, tal como protocolos de microarranjo, genoma, por exemplo, protocolos de genoma inteiro, protocolos de genotipagem, protocolos de exoma, protocolos de epigenoma, protocolos de metagenoma, protocolos de microbioma, protocolos de genotipagem, incluindo protocolos de genotipagem conjunta, protocolo de análises de variantes, incluindo protocolos de variantes estruturais, protocolos de variantes somáticas e protocolos de GATK, assim como protocolos de sequenciamento de RNA e outros protocolos de análises genéticas.[0154] Therefore, in various instances, a segmentation of the disclosure may include one or more modules, wherein the modules are configured to perform one or more functions, such as an image processing or a base calling operation and/or error correction and/or a mapping and/or an alignment, e.g., a gapped or gapless alignment, and/or a classification function on genetic data, e.g., genetic sequenced data. Furthermore, in various instances, the segmentation may include one or more modules, wherein the modules are configured to perform one or more of a local realignment, a deduplication, a base quality score recalibration, a variant calling, e.g., HMM, a reduction and/or compression, and/or a decompression on the genetic data. Additionally, the segmentation may include one or more modules, wherein the modules are configured to perform a tertiary analysis protocol, such as microarray protocols, genome, e.g., whole genome protocols, genotyping protocols, exome protocols, epigenome protocols, metagenome protocols, microbiome protocols, genotyping protocols including pooled genotyping protocols, variant analysis protocols including structural variant protocols, somatic variant protocols, and GATK protocols, as well as RNA sequencing protocols and other genetic analysis protocols.

[0155] Muitos desses módulos podem ser realizados por software ou em hardware, local ou remotamente, por exemplo, por meio de software ou hardware, tal como na nuvem, por exemplo, em um servidor remoto e/ou banco de servidor, tal como um agrupamento de computação quântica. Adicionalmente, muitos desses módulos e/ou muitas dessas etapas da segmentação são opcionais e/ou podem ser dispostos em qualquer ordem lógica e/ou completamente omitidos. Por exemplo, o software e/ou hardware revelado no presente documento pode ou não incluir um processamento de imagens e/ou um algoritmo de chamada de base ou correção de sequência, tal como quando pode haver uma preocupação de que tais funções podem resultar em uma polarização estatística. Consequentemente, o sistema pode incluir ou pode não incluir a função de chamada de base e/ou correção de sequência, respectivamente, dependente do nível de precisão e/ou eficiência desejada. Além disso, conforme indicado acima, uma ou mais dentre as funções de segmentação podem ser empregadas na geração de uma sequência genômica de um sujeito, tal como através de uma reconstrução genômica baseada na referência. Além disso, conforme indicado acima, em determinados casos, a saída da segmentação de processamento secundário pode ser um arquivo de chamada de variante (VCF, gVCF) que indica uma porção ou todas as variantes em um genoma ou uma porção do mesmo.[0155] Many of these modules may be performed by software or hardware, locally or remotely, e.g., via software or hardware, such as in the cloud, e.g., on a remote server and/or server farm, such as a quantum computing cluster. Additionally, many of these modules and/or many of these segmentation steps are optional and/or may be arranged in any logical order and/or omitted entirely. For example, the software and/or hardware disclosed herein may or may not include an image processing and/or a base calling or sequence correction algorithm, such as where there may be a concern that such functions may result in statistical bias. Accordingly, the system may or may not include a base calling and/or sequence correction function, respectively, depending on the level of accuracy and/or efficiency desired. Furthermore, as noted above, one or more of the segmentation functions may be employed in generating a genomic sequence of a subject, such as through a reference-based genomic reconstruction. Additionally, as indicated above, in certain cases, the output of secondary processing segmentation may be a variant call file (VCF, gVCF) that indicates a portion or all of the variants in a genome or a portion thereof.

[0156] Particularmente, uma vez que as leituras são atribuídas a uma posição em relação ao genoma de referência, a qual pode incluir a identificação a qual cromossomo a leitura pertence e seu desvio do começo daquele cromossomo, as mesmas podem ser desduplicadas e/ou classificadas, tal como por posição. Isso permite que análises a jusante se aproveite dos diversos protocolos de superamostragem descritos no presente documento. Todas as leituras que se sobrepõem a uma dada posição no genoma podem ser posicionadas adjacentes a cada outra após a classificação e as mesmas podem ser acumuladas, por exemplo, para formar um acúmulo, e prontamente examinadas para determinar se a maioria das mesmas concorda com o valor de referência ou não. Se as mesmas não concordarem, conforme indicado acima, uma variante pode ser sinalizada.[0156] In particular, once reads are assigned a position relative to the reference genome, which may include identifying which chromosome the read belongs to and its offset from the beginning of that chromosome, they may be deduplicated and/or classified, such as by position. This allows downstream analyses to take advantage of the various supersampling protocols described herein. All reads that overlap a given position in the genome may be positioned adjacent to each other after classification, and they may be accumulated, for example to form a backlog, and promptly examined to determine whether the majority of them agree with the reference value or not. If they do not agree, as indicated above, a variant may be flagged.

[0157] Consequentemente, conforme indicado acima em relação ao mapeamento, o arquivo de imagem, o arquivo BCL e/ou o arquivo de FASTQ, obtido a partir do sequenciador é compreendido por uma pluralidade, por exemplo, milhões a um bilhão ou mais, de leituras que consistem em correntes curtas de dados de sequência de nucleotídeos que representam uma porção ou todo o genoma de um indivíduo. Por exemplo, uma primeira etapa nas segmentações de análise secundária, revelada no presente documento, é a receita de dados de genômica e/ou bioinformática, tal como de um aparelho de geração de dados de genômica, tal como um sequenciador. Tipicamente, os dados produzidos por um sequenciador, por exemplo, um Sequenciador de Próxima Geração, podem estar em um formato de arquivo BCL, que, em alguns casos, pode ser convertido em um formato de arquivo FASTQ, anterior ou subsequente à transmissão, tal como em uma plataforma de processamento secundário descrita no presente documento. Particularmente, ao sequenciar um genoma humano, um DNA e/ou RNA do sujeito precisa ser identificado, em um modo de base por base, em que os resultados de tal sequenciamento são um arquivo BCL. Um arquivo BCL é um arquivo binário que inclui as chamadas de base e pontuações de qualidade produzidas para cada base de cada sequência da coleção de sequências que compõem pelo menos uma parte ou todo o genoma de um sujeito.[0157] Accordingly, as indicated above with respect to mapping, the image file, BCL file, and/or FASTQ file obtained from the sequencer is comprised of a plurality, e.g., millions to a billion or more, of reads consisting of short streams of nucleotide sequence data representing a portion or the entire genome of an individual. For example, a first step in the secondary analysis segmentations disclosed herein is the receipt of genomic and/or bioinformatics data, such as from a genomic data generating device such as a sequencer. Typically, the data produced by a sequencer, e.g., a Next Generation Sequencer, may be in a BCL file format, which in some cases may be converted to a FASTQ file format prior to or subsequent to transmission, such as in a secondary processing platform described herein. In particular, when sequencing a human genome, a subject's DNA and/or RNA needs to be identified, in a base-by-base fashion, where the results of such sequencing are a BCL file. A BCL file is a binary file that includes the base calls and quality scores produced for each base of each sequence in the collection of sequences that make up at least part or all of a subject's genome.

[0158] Tradicionalmente, o arquivo BCL gerado por sequenciador é convertido em um arquivo FASTQ, que, então, pode ser transmitido a uma plataforma de processamento secundário, tal como revelado no presente documento, para processamento adicional, tal como para determinar a variância de genômica do mesmo. Um arquivo FASTQ é um formato de arquivo baseado em texto para transmitir tanto uma sequência biológica (por exemplo, sequência de nucleotídeos) quanto suas pontuações de qualidade correspondentes, em que tanto a letra de sequência, por exemplo, A, C, G, T e/ou U, quanto a pontuação de qualidade podem ser, cada uma, codificadas com um único caractere de ASCII para brevidade. Consequentemente, dentro desse e outros sistemas, é o arquivo FASTQ que é usado para os propósitos de processamento adicional. Embora o emprego de um arquivo file para processamento de genômica seja útil, a conversão do arquivo BCL gerado em um arquivo FASTQ, conforme implantado no aparelho de sequenciador, é demorado e ineficaz. Logo, em um aspecto, são fornecidos dispositivos e métodos para converter diretamente um arquivo BCL em um arquivo FASTQ e/ou para inserir diretamente tais dados nas presentes segmentações de plataforma, conforme descrito no presente documento.[0158] Traditionally, the sequencer-generated BCL file is converted to a FASTQ file, which can then be transmitted to a secondary processing platform, as disclosed herein, for further processing, such as to determine genomic variance thereof. A FASTQ file is a text-based file format for transmitting both a biological sequence (e.g., nucleotide sequence) and its corresponding quality scores, wherein both the sequence letter, e.g., A, C, G, T, and/or U, and the quality score may each be encoded with a single ASCII character for brevity. Consequently, within this and other systems, it is the FASTQ file that is used for further processing purposes. While employing a FASTQ file for genomic processing is useful, converting the generated BCL file to a FASTQ file, as implemented in the sequencer apparatus, is time-consuming and inefficient. Thus, in one aspect, devices and methods are provided for directly converting a BCL file to a FASTQ file and/or for directly inserting such data into the present platform segmentations, as described herein.

[0159] Por exemplo, em várias modalidades, um sequenciador de Próxima Geração, ou um sequenciador em uma tecnologia de chip, pode ser configurado para realizar uma operação de sequenciamento em dados genéticos recebidos. Por exemplo, conforme pode ser observado em relação à Figura 1A, os dados genéticos 6a podem ser acoplados a uma plataforma de sequenciamento 6 para inserção em um sequenciador de Próxima Geração para serem sequenciados de uma forma iterativa, de modo que cada sequência será cultivada pela adição gradual de um nucleotídeo após o outro. Especificamente, a plataforma de sequenciamento 6 pode incluir diversas sequências de nucleotídeos de modelo 6a do sujeito que são dispostas de uma forma similar a grade para formar ladrilhos 6b na plataforma 6, em que as sequências de modelo 6a devem ser sequenciadas. A plataforma 6 pode ser adicionada a uma célula de fluxo 6c do sequenciador que é adaptada para realizar as reações de sequenciamento.[0159] For example, in various embodiments, a Next Generation sequencer, or a sequencer on a chip technology, may be configured to perform a sequencing operation on received genetic data. For example, as can be seen with respect to Figure 1A, genetic data 6a may be coupled to a sequencing platform 6 for input into a Next Generation sequencer to be sequenced in an iterative manner, such that each sequence will be grown by the gradual addition of one nucleotide after another. Specifically, the sequencing platform 6 may include a plurality of template nucleotide sequences 6a from the subject that are arranged in a grid-like manner to form tiles 6b on the platform 6, in which the template sequences 6a are to be sequenced. The platform 6 may be added to a flow cell 6c of the sequencer that is adapted to perform the sequencing reactions.

[0160] Conforme as reações de sequenciamento ocorrem, em cada etapa um nucleotídeo que tem uma etiqueta fluorescente 6d é adicionado à plataforma 6 da célula de fluxo 6c. Se uma reação de hibridização ocorrer, fluorescência é observada, uma imagem é tomada, a imagem é, então, processada, e uma chamada de base adequada é realizada. Isso é repetido base por base até todas as sequências de modelo, por exemplo, o genoma inteiro, terem sido sequenciadas e convertidas em leituras, produzindo, assim, os dados de leitura do sistema. Logo, uma vez sequenciados, os dados gerados, por exemplo, leituras, precisam ser transferidos da plataforma de sequenciamento para o sistema de processamento secundário. Por exemplo, tipicamente, esses dados de imagem são convertidos em um arquivo BCL e/ou FASTQ que pode ser, então, transportado para o sistema.[0160] As the sequencing reactions occur, at each step a nucleotide having a fluorescent label 6d is added to the platform 6 of the flow cell 6c. If a hybridization reaction occurs, fluorescence is observed, an image is taken, the image is then processed, and an appropriate base call is performed. This is repeated base by base until all template sequences, e.g. the entire genome, have been sequenced and converted to reads, thus producing the read data for the system. Then, once sequenced, the generated data, e.g. reads, need to be transferred from the sequencing platform to the secondary processing system. For example, typically, this image data is converted to a BCL and/or FASTQ file that can then be transported to the system.

[0161] Entretanto, em vários casos, esse processo de conversão e/ou transferência pode ser realizado de modo mais eficaz. Especificamente, são apresentados no presente documento métodos e arquiteturas para conversão de BCL expedido em arquivos que podem ser processados rapidamente dentro do sistema de processamento secundário. Mais especificamente, em casos particulares, em vez de transmitir arquivos BCL ou FASTQ brutos, as imagens produzidas que representam cada ladrilho da operação de sequenciamento podem ser transferidas diretamente ao sistema e preparadas para mapeamento e alinhamento e outros. Por exemplo, os ladrilhos podem ser transmitidos através de um PCIe adequadamente configurado e para o ASIC, FPGA ou QPU, em que os dados de leitura podem ser extraídos dos mesmos diretamente, e as leituras avançadas para mapeamento e alinhamento e/ou outros mecanismos de processamento.[0161] However, in many cases, this conversion and/or transfer process can be accomplished more efficiently. Specifically, methods and architectures for converting output BCL into files that can be rapidly processed within the secondary processing system are disclosed herein. More specifically, in particular cases, rather than transmitting raw BCL or FASTQ files, the produced images representing each tile from the sequencing operation can be transferred directly to the system and prepared for mapping and alignment, and the like. For example, the tiles can be transmitted over a suitably configured PCIe and to the ASIC, FPGA, or QPU, where read data can be extracted therefrom directly, and the reads advanced to mapping and alignment and/or other processing mechanisms.

[0162] Particularmente, em relação à transferência dos dados a partir dos ladrilhos obtidos pelo sequenciador à FPGA/CPU/GPU/QPU, conforme pode ser visto em relação à Figura 1A, a plataforma de sequenciamento 6 pode ser imageada como um cubo 3-D 6c, dentro do qual as sequências em crescimento 6a são geradas. Essencialmente, conforme pode ser observado em relação à Figura 1B, a plataforma de sequenciamento 6 pode ser composta por 16 raias, 8 na frente e 8 na parte posterior, que podem ser configuradas para formar cerca de 96 ladrilhos 6b. Dentro de cada ladrilho 6b são diversas sequências de modelo 6a a serem sequenciadas, formando, assim, leituras, em que cada leitura representa a sequência de nucleotídeos para uma dada região do genoma de um sujeito, em que cada coluna representa um arquivo, e conforme digitalmente codificado representa 1 byte para cada arquivo, com 8 bits por arquivo, tal como em que 2 bits representa uma base chamada, e os 6 bits restantes representam a pontuação de qualidade.[0162] Particularly, with respect to transferring data from the tiles obtained by the sequencer to the FPGA/CPU/GPU/QPU, as can be seen with respect to Figure 1A, the sequencing platform 6 can be imaged as a 3-D cube 6c, within which the growing sequences 6a are generated. Essentially, as can be seen with respect to Figure 1B, the sequencing platform 6 can be composed of 16 lanes, 8 in the front and 8 in the back, which can be configured to form about 96 tiles 6b. Within each tile 6b are several template sequences 6a to be sequenced, thus forming reads, where each read represents the nucleotide sequence for a given region of a subject's genome, where each column represents a file, and as digitally encoded represents 1 byte for each file, with 8 bits per file, such as where 2 bits represents a base call, and the remaining 6 bits represent the quality score.

[0163] Mais particularmente, em relação ao Sequenciamento de Próxima Geração, o sequenciamento é tipicamente realizado em placas de vidro 6 que formam células de fluxo 6c que são inseridas no sequenciador automatizado para sequenciamento. Conforme pode ser observado em relação à Figura 1B, uma célula de fluxo 6c é uma plataforma 6 composta por 8 colunas verticais 8 fileiras horizontais (parte frontal e parte posterior), que forma juntas 16 raias, em que cada raia é suficiente para o sequenciamento de um genoma inteiro. O DNA e/ou RNA 6a de um sujeito a ser sequenciado está associado a posições designadas entre interseções fluidamente isoladas das colunas e fileiras da plataforma 6 de modo a formar ladrilhos 6b, em que cada ladrilho inclui material genético de modelo 6a a ser sequenciado. A plataforma de sequenciamento 6, portanto, inclui diversas sequências de nucleotídeos de modelo do sujeito, em que as sequências são dispostas em uma forma similar a grade de ladrilhos na plataforma. (Consultar a Figura 1B.) Os dados genéticos 6 são, estão sequenciados de uma maneira iterativa, em que cada sequência é cultivada pela introdução gradual de um nucleotídeo após o outros na célula de fluxo, em que cada etapa cultivada iterativa representa um ciclo de sequenciamento.[0163] More particularly, with respect to Next Generation Sequencing, sequencing is typically performed on glass plates 6 that form flow cells 6c that are inserted into the automated sequencer for sequencing. As can be seen with respect to Figure 1B, a flow cell 6c is a platform 6 composed of 8 vertical columns and 8 horizontal rows (front and back), which together form 16 lanes, each lane being sufficient for sequencing an entire genome. DNA and/or RNA 6a from a subject to be sequenced is associated with designated positions between fluidly isolated intersections of the columns and rows of the platform 6 so as to form tiles 6b, each tile comprising template genetic material 6a to be sequenced. The sequencing platform 6 therefore includes a plurality of template nucleotide sequences from the subject, the sequences being arranged in a manner similar to a grid of tiles on the platform. (See Figure 1B.) The genetic data 6 are sequenced in an iterative manner, where each sequence is grown by stepwise introducing one nucleotide after another into the flow cell, with each iterative grown step representing a sequencing cycle.

[0164] Conforme indicado, uma imagem é capturada após cada etapa, e a sequência em crescimento, por exemplo, de imagens, forma a base pela qual o arquivo BCL é gerada. Conforme pode ser observado em relação à Figura 1C, as leituras do procedimento de sequenciamento podem formar agrupamentos, e são esses agrupamentos que formam o cubo 3-D teórico 6c. Consequentemente, dentro desse cubo 3-D teórico, cada base de cada filamento de nucleotídeo em crescimento que é sequenciado terá uma dimensão x e uma dimensão y. Os dados de imagem, ou ladrilhos 6b, desse cubo 3-D 6c podem ser extraídos e compilados em um mapa bidimensional, do qual uma matriz, conforme visto na Figura 1AD, pode ser formada. A matriz é formada pelos ciclos de sequenciamento, que representam o eixo geométrico horizontal, e as identidades de leitura, que representam o eixo geométrico vertical. Consequentemente, conforme pode ser observado em referência à Figura 1C, as leituras sequenciadas forma agrupamentos na célula de fluxo 6c, em que os agrupamentos podem ser definidos por um eixo geométrico vertical e horizontal, ciclo por ciclo, e os dados de base por base de cada ciclo para cada leitura podem ser inseridos na matriz da Figura 1D, tal como em uma transmissão contínua e/ou forma segmentada.[0164] As indicated, an image is captured after each step, and the growing sequence, e.g., of images, forms the basis from which the BCL file is generated. As can be seen with respect to Figure 1C, the reads from the sequencing procedure can form clusters, and it is these clusters that form the theoretical 3-D cube 6c. Accordingly, within this theoretical 3-D cube, each base of each growing nucleotide strand that is sequenced will have an x-dimension and a y-dimension. The image data, or tiles 6b, of this 3-D cube 6c can be extracted and compiled into a two-dimensional map, from which a matrix, as seen in Figure 1AD, can be formed. The matrix is formed by the sequencing cycles, which represent the horizontal axis, and the read identities, which represent the vertical axis. Accordingly, as can be seen with reference to Figure 1C, the sequenced reads form clusters in the flow cell 6c, where the clusters can be defined by a vertical and horizontal axis, cycle by cycle, and the base by base data of each cycle for each read can be inserted into the matrix of Figure 1D, such as in a continuous transmission and/or segmented manner.

[0165] Especificamente, cada ciclo representa o crescimento potencial de cada leitura dentro da célula de fluxo pela adição de um nucleotídeo, em que, ao sequenciar um ou diversos genomas humanos, pode representar o crescimento de cerca de 1 bilhão ou mais de leituras por raia. O crescimento de cada leitura, por exemplo, pela adição de uma base de nucleotídeo, é identificado pela captura iterativa de imagens, dos ladrilhos 6b, da célula de fluxo 6c entre as etapas de crescimento. A partir dessas imagens, são produzidas chamadas de base, e são determinadas pontuações de qualidade, a matriz virtual da Figura 1D é formada. Consequentemente, serão inseridas tanto uma chamada de base quanto uma pontuação de qualidade na matriz, em que cada ladrilho de cada ciclo representa um arquivo separado. Deve-se perceber que, quando o sequenciamento é realizado em um circuito integrado, os dados eletrônicos detectados podem ser substituídos pelos dados de imagem.[0165] Specifically, each cycle represents the potential growth of each read within the flow cell by the addition of one nucleotide, which when sequencing one or more human genomes can represent the growth of about 1 billion or more reads per lane. Growth of each read, for example by the addition of one nucleotide base, is identified by iteratively capturing images of tiles 6b of flow cell 6c between growth steps. From these images, base calls are produced and quality scores are determined, the virtual matrix of Figure 1D is formed. Accordingly, both a base call and a quality score will be inserted into the matrix, with each tile of each cycle representing a separate file. It should be appreciated that when sequencing is performed on an integrated circuit, the detected electronic data may be replaced by the image data.

[0166] Por exemplo, conforme pode ser observado em relação à Figura 1D, a própria matriz crescerá iterativamente conforme as imagens são capturadas e processadas, as bases são chamadas, e as pontuações de qualidade são determinadas para cada leitura, ciclo por ciclo. Isso é repetido para cada base na leitura, para cada ladrilho da célula de fluxo. Por exemplo, o agrupamento de leituras 1C pode ser numerado e inserido na matriz como o eixo geométrico vertical. De modo semelhante, o número de ciclos pode ser inserido como o eixo geométrico horizontal, e a chamada de base e a pontuação de qualidade podem ser, então, inseridas de modo a preencher a matriz coluna por coluna, fileira por fileira. Consequentemente, cada leitura será representada por diversas bases, por exemplo, cerca de 100 ou 150 até 1.000 ou mais bases por leitura dependendo do sequenciador, e pode haver até 10 milhões ou mais de leituras por ladrilho. Assim, se houver cerca de 100 ladrilhos, cada um tendo 10 milhões de leituras, a matriz poderia conter cerca de 1 bilhão de leituras, que precisam ser organizadas e transmitidas para o aparelho de processamento secundário.[0166] For example, as can be seen with respect to Figure 1D, the matrix itself will grow iteratively as images are captured and processed, bases are called, and quality scores are determined for each read, cycle by cycle. This is repeated for each base in the read, for each tile of the flow cell. For example, the 1C cluster of reads can be numbered and entered into the matrix as the vertical axis. Similarly, the number of cycles can be entered as the horizontal axis, and the base call and quality score can then be entered so as to fill the matrix column by column, row by row. Consequently, each read will be represented by a number of bases, e.g., about 100 or 150 to 1,000 or more bases per read depending on the sequencer, and there can be up to 10 million or more reads per tile. So if there are about 100 tiles, each having 10 million readings, the array could contain about 1 billion readings, which need to be organized and transmitted to the secondary processing apparatus.

[0167] Consequentemente, tal organização é fundamental para processar de modo rápido e eficaz os dados. Logo, em um aspecto, são apresentados no presente documento métodos para transpor os dados representados pela matriz de sequenciamento virtual de uma maneira que os dados possam ser transmitidos de modo mais direto e eficaz às segmentações do sistema no presente documento revelado. Por exemplo, a geração dos dados de sequenciamento, conforme representado pelo agrupamento em estrela da Figura 1C, é amplamente desorganizada, o que é problemático de um ponto de vista de processamento de dados. Particularmente, conforme os dados são gerados pela operação de sequenciamento, os mesmos são organizados como um arquivo por ciclo, o que significa que, ao final da operação de sequenciamento, há milhões e milhões de arquivos gerados, em que os arquivos são representados na Figura 1E, pelos dados nas colunas, demarcados pelas linhas sólidas. Entretanto, para os propósitos de processamento secundário e/ou terciário, conforme revelado no presente documento, os dados de arquivo precisam ser reorganizados em dados de leitura, demarcado pelas linhas tracejadas da Figura 1E.[0167] Accordingly, such organization is critical to quickly and efficiently processing the data. Accordingly, in one aspect, methods are disclosed herein for transposing the data represented by the virtual sequencing array in a manner that the data can be more directly and efficiently transmitted to the segments of the system disclosed herein. For example, the generation of the sequencing data, as represented by the star cluster of Figure 1C, is largely disorganized, which is problematic from a data processing standpoint. In particular, as the data is generated by the sequencing operation, it is organized as one file per cycle, meaning that by the end of the sequencing operation, there are millions upon millions of files generated, where the files are represented in Figure 1E by the data in the columns, demarcated by the solid lines. However, for purposes of secondary and/or tertiary processing, as disclosed herein, the file data needs to be reorganized into read data, demarcated by the dashed lines of Figure 1E.

[0168] Mais particularmente, a fim de transmitir de modo mais eficaz os dados gerados pelo sequenciador para os dados de processamento secundário, os dados representados pela matriz virtual devem ser transpostos, tal como reorganizando-se os dados de arquivo de uma fase de coluna por coluna de ladrilhos por ciclo para uma base de fileira por fileira, identificando as bases de cada uma das leituras. Especificamente, a estrutura de dados dos arquivos gerados que formam a matriz, conforme a mesma é produzida pelo sequenciador, é organizada em uma base de ciclo por ciclo, coluna por coluna. Pelos processos revelados no presente documento, esses dados podem ser transpostos, por exemplo, de modo substancialmente simultâneo, de modo a serem representados, conforme visto dentro da matriz virtual, em uma base leitura por leitura, fileira por fileira, em que cada fileira representa uma leitura individual, e cada leitura é representada por um número sequencial de chamadas de base e pontuações de qualidade, identificando, assim, tanto a sequência para cada leitura quanto sua confiança. Assim, em uma operação de transposição conforme descrito no presente documento, os dados dentro da memória podem ser reorganizados, por exemplo, dentro da matriz virtual, de uma base de coluna por coluna, que representa o ordem de dados de entrada, para uma base de fileira por fileira, que representa a ordem de dados de saída, transpondo, assim, a ordem de dados de uma organização vertical para horizontal. Ademais, embora o processo possa ser implantado de modo eficaz em software, o mesmo pode ser realizado de modo ainda mais eficaz e rápido sendo implantado em hardware e/ou por um processador quântico.[0168] More particularly, in order to more efficiently transmit the sequencer-generated data to the secondary processing data, the data represented by the virtual matrix must be transposed, such as by reorganizing the file data from a column-by-column tile-per-cycle phase to a row-by-row basis, identifying the bases of each of the reads. Specifically, the data structure of the generated files forming the matrix, as produced by the sequencer, is organized on a cycle-by-cycle, column-by-column basis. By the processes disclosed herein, such data may be transposed, for example, substantially simultaneously, so as to be represented, as seen within the virtual matrix, on a read-by-read, row-by-row basis, where each row represents an individual read, and each read is represented by a sequential number of base calls and quality scores, thereby identifying both the sequence for each read and its confidence. Thus, in a transposition operation as described herein, data within memory may be rearranged, for example within the virtual matrix, from a column-by-column basis, which represents the input data order, to a row-by-row basis, which represents the output data order, thereby transposing the data order from a vertical to a horizontal organization. Furthermore, while the process can be implemented efficiently in software, it can be accomplished even more efficiently and quickly by being implemented in hardware and/or by a quantum processor.

[0169] Por exemplo, em vários casos, esse processo de transposição pode ser acelerado sendo implantado em hardware. Por exemplo, em uma implantação, em uma primeira etapa, o software hospedeiro, por exemplo, do sequenciador, pode escrever dados de entrada na memória, associada com o FPGA, em uma base de coluna por coluna, por exemplo, na ordem de entrada. Especificamente, conforme os dados são gerados e armazenados em uma memória associada, os dados podem ser organizados em arquivos, ciclo por ciclo, em que os dados são salvos como arquivos individuais separados. Esses dados podem ser representados pelo cubo 3D da Figura 1A. Esses dados organizados em coluna gerados podem ser, então, colocados em fila e/ou transmitidos, por exemplo, em voo, para o hardware, em que mecanismos de processamento dedicados irá colocar em fila os dados organizados em coluna e transpor esses dados de uma configuração de ordem de ciclo em coluna por coluna para uma configuração de ordem de leitura em fileira por fileira, de uma maneira conforme descrito acima no presente documento, tal como convertendo os dados em ladrilho 3-D em uma matriz 2-D, de modo que os dados de coluna possam ser reorganizados em dados de fileira, por exemplo, em uma base de leitura para leitura. Esses dados transpostos podem ser, então, armazenados na memória em uma ordem mais estratégica.[0169] For example, in many cases, this transposition process can be accelerated by being implemented in hardware. For example, in one implementation, in a first step, the host software, e.g., the sequencer, can write input data to the memory associated with the FPGA on a column-by-column basis, e.g., in the order of input. Specifically, as data is generated and stored in an associated memory, the data can be organized into files, cycle by cycle, where the data is saved as separate individual files. Such data can be represented by the 3D cube of Figure 1A. This generated column-organized data may then be queued and/or transmitted, e.g., in-flight, to hardware, where dedicated processing engines will queue the column-organized data and transpose this data from a column-by-column cycle order configuration to a row-by-row read order configuration, in a manner as described above herein, such as by converting the 3-D tiled data into a 2-D matrix, so that the column data may be reorganized into row data, e.g., on a read-by-read basis. This transposed data may then be stored in memory in a more strategic order.

[0170] Por exemplo, o software hospedeiro pode ser configurado para escrever dados de entrada na memória associada ao chip, por exemplo, FPGA, tal como em uma ordem de entrada por coluna, e, similarmente, o hardware pode ser configurado para colocar em fila os dados de uma maneira que os mesmos sejam lidos na memória de uma maneira estratégica, tal como apresentado na Figura 1F. Especificamente, o hardware pode incluir um arranjo de registros 8a em que os arquivos de ciclo podem ser dispersos e reorganizados em dados de leitura individuais, tal como gravando-se uma base de uma coluna em registros que são organizados em fileiras. Mais especificamente, conforme pode ser observado em relação à Figura 1G, o dispositivo de hardware 1, incluindo o mecanismo de processamento de transposição 8, pode incluir uma porta de DRAM 8a que pode colocar em fila os dados a serem transpostos, em que a porta é acoplada operacionalmente a uma interface de memória 8b que está associada a uma pluralidade de registros e/ou uma memória externa 8c, e é configurada para manipular uma quantidade aumentada de transações por ciclo, em que os dados colocados em fila são transmitidos em disparos.[0170] For example, the host software may be configured to write input data into memory associated with the chip, e.g., FPGA, such as in a column-by-column order, and similarly, the hardware may be configured to queue the data so that it is read into memory in a strategic manner, such as shown in Figure 1F. Specifically, the hardware may include a register array 8a in which cycle files may be scattered and reorganized into individual read data, such as by writing a column-by-column basis into registers that are arranged in rows. More specifically, as can be seen with respect to Figure 1G, the hardware device 1 including the transposition processing engine 8 may include a DRAM port 8a that can queue data to be transposed, wherein the port is operatively coupled to a memory interface 8b that is associated with a plurality of registers and/or an external memory 8c, and is configured to handle an increased number of transactions per cycle, wherein the queued data is transmitted in bursts.

[0171] Particularmente, essa transposição pode ocorrer um segmento de dados por vez, tal como quando os acessos de memória estão colocados em fila de tal maneira a tirar vantagem máxima da taxa de transmissão de DDR. Por exemplo, em relação à DRAM, o comprimento de disparo mínimo do DDR pode ser, por exemplo, 64 bytes. Consequentemente, os dados dispostos em coluna armazenados na memória hospedeira podem ser acessados de uma maneira de modo que, com cada acesso de memória, um valor de coluna de bytes correspondentes, por exemplo, 64, seja obtido. Logo, com um acesso da memória, uma porção de um ladrilho, por exemplo, que representa "64" ciclos ou arquivos correspondentes, pode ser acessada, em uma base de coluna por coluna.[0171] In particular, this transposition may occur one data segment at a time, such as when memory accesses are queued in such a manner as to take maximum advantage of the DDR throughput. For example, with respect to DRAM, the minimum DDR shot length may be, e.g., 64 bytes. Accordingly, column-arranged data stored in host memory may be accessed in a manner such that with each memory access, a corresponding column value of bytes, e.g., 64, is obtained. Thus, with one memory access, a portion of a tile, e.g., representing "64" corresponding cycles or files, may be accessed, on a column-by-column basis.

[0172] Entretanto, conforme pode ser observado em relação à Figura 1F, embora os dados na memória hospedeira sejam acessados como dados de coluna, quando transmitidos ao hardware, os mesmos podem ser transferidos por upload em memórias menores associadas, por exemplo, registros, em uma ordem diferente, de modo que os dados possam ser convertidos em bytes, por exemplo, 64 bytes, de dados de leitura fileira por fileira, tal como em conformidade com a taxa de disparo mínima do DDR, de modo a gerar "64" unidades ou blocos de memória correspondentes por acesso. Isso é exemplificado pela matriz virtual da Figura 1D, em que diversas leituras, por exemplo, 64 leituras, são acessadas em blocos, e a leitura em memória em segmentos, conforme representado pela Figura 1E, tal como quando cada registro, ou flip-flop, representa uma leitura particular, por exemplo, 64 ciclos x 64 leituras x 8 bits por leitura = 32K flip-flops. Especificamente, isso pode ser realizado de várias formas diferentes em hardware, tal como quando a gravação de entrada é organizada para corresponder à ordenação de coluna, e a gravação de saída é organizada para corresponder à ordem de fileira. Logo, nessa configuração, o hardware pode ser adaptado de modo a tanto ler e/ou gravar "64" endereços diferentes por ciclo.[0172] However, as can be seen with respect to Figure 1F, although data in host memory is accessed as column data, when transmitted to hardware, it may be uploaded into associated smaller memories, e.g., registers, in a different order, so that the data may be converted into bytes, e.g., 64 bytes, of read data row by row, such as in compliance with the DDR minimum firing rate, so as to generate "64" corresponding memory units or blocks per access. This is exemplified by the virtual array of Figure 1D, where multiple reads, e.g., 64 reads, are accessed in blocks, and the memory read in segments, as depicted in Figure 1E, such as where each register, or flip-flop, represents a particular read, e.g., 64 cycles x 64 reads x 8 bits per read = 32K flip-flops. Specifically, this can be accomplished in several different ways in hardware, such as when the input write is arranged to match column ordering, and the output write is arranged to match row ordering. Thus, in this configuration, the hardware can be adapted to both read and/or write "64" different addresses per cycle.

[0173] Mais particularmente, o hardware pode estar associado a um arranjo de registros de modo que cada base de uma leitura seja direcionada e gravada em um único registro (ou múltiplos registros em uma fileira), de modo que, quando cada bloco é concluído, os dados de fileira recém-ordenados possam ser transmitidos à memória como uma saída, por exemplo, dados de FASTQ, em uma organização de fileira por fileira. Os dados de FASTQ podem ser, então, acessados por um ou mais mecanismos de processamento do sistema de processamento secundário para processar adicionalmente, tal como por um mecanismo de mapeamento, alinhamento e/ou chamada de variante, conforme descrito no presente documento. Deve-se perceber, conforme descrito no presente documento, que a transposição é realizada em blocos pequenos, entretanto, o sistema pode ser adaptado para o processamento de blocos maiores também, conforme possa ser o caso.[0173] More particularly, the hardware may be associated with a register arrangement such that each base of a read is directed and written to a single register (or multiple registers in a row), so that when each block is completed, the newly ordered row data may be transmitted to memory as an output, e.g., FASTQ data, in a row-by-row arrangement. The FASTQ data may then be accessed by one or more processing engines of the secondary processing system for further processing, such as by a mapping, alignment, and/or variant calling engine as described herein. It should be appreciated, as described herein, that the transposition is performed in small blocks, however, the system may be adapted to process larger blocks as well, as the case may be.

[0174] Conforme indicado, uma vez que um arquivo BCL tenha sido convertido em um arquivo de FASTQ, conforme descrito acima, e/ou um arquivo de BCL ou FASTQ tenha sido de outro modo recebido pela plataforma de processamento secundário, uma operação de mapeamento pode ser realizada nos dados recebidos. O mapeamento, em geral, envolve plotar as leituras para todos os locais no genoma de referência nos quais existe uma correspondência. Por exemplo, dependendo do tamanho da leitura, pode haver um ou uma pluralidade de locais em que a corresponde substancialmente leitura a uma sequência correspondente no genoma de referência. Logo, o mapeamento e/ou outras funções reveladas no presente documento podem ser configurados para determinar onde dentre todos os locais possíveis que uma ou mais leituras podem se corresponder no genoma de referência é realmente o local real para o qual as mesmas se mapeiam.[0174] As indicated, once a BCL file has been converted to a FASTQ file as described above, and/or a BCL or FASTQ file has otherwise been received by the secondary processing platform, a mapping operation may be performed on the received data. Mapping generally involves plotting the reads to all locations in the reference genome at which there is a match. For example, depending on the length of the read, there may be one or a plurality of locations at which the read substantially matches a corresponding sequence in the reference genome. Thus, the mapping and/or other functions disclosed herein may be configured to determine where among all possible locations that one or more reads may match in the reference genome is actually the actual location to which they map.

[0175] Por exemplo, em diversos casos, um índice de um genoma de referência pode ser gerado ou fornecido de outro modo, de forma que as leituras ou porções das leituras possam ser pesquisadas, por exemplo, dentro de uma Tabela de Pesquisa (LUT), em referência ao índice, recuperando, assim, indicações de locais na referência, a fim de mapear as leituras para a referência. Tal índice da referência pode ser construído de diversas formas e pesquisado de diversas formas. Em alguns métodos, o índice pode incluir uma árvore de prefixo e/ou sufixo. Em métodos particulares, o índice pode ser derivado de uma transformada de Burrows/Wheeler da referência. Logo, alternativamente, ou além de empregar uma árvore de prefixo ou uma árvore de sufixo, uma transformada de Burrows/Wheeler pode ser realizada nos dados. Por exemplo, uma transformada de Burrows/Wheeler pode ser usada para armazenar uma estrutura de dados semelhante a árvore equivalente de modo abstrato a uma árvore de prefixo e/ou sufixo, em um formato compacto, tal como no espaço alocado para armazenar o genoma de referência. Em diversos casos, os dados armazenados não estão em uma estrutura semelhante a árvore, mas, em vez disso, os dados da sequência de referência estão em uma lista linear que pode ter sido embaralhada em uma ordem diferente a fim de transformar a mesma em uma forma muito particular, de forma que o algoritmo anexo permita que a referência seja buscada com referência às leituras de amostra a fim de percorrer eficazmente a “árvore”.[0175] For example, in various cases, an index of a reference genome may be generated or otherwise provided such that reads or portions of reads may be searched, e.g., within a Lookup Table (LUT) by reference to the index, thereby retrieving indications of locations in the reference in order to map the reads to the reference. Such an index of the reference may be constructed in a variety of ways and searched in a variety of ways. In some methods, the index may include a prefix and/or suffix tree. In particular methods, the index may be derived from a Burrows/Wheeler transform of the reference. Thus, alternatively, or in addition to employing a prefix tree or a suffix tree, a Burrows/Wheeler transform may be performed on the data. For example, a Burrows/Wheeler transform can be used to store a tree-like data structure that is abstractly equivalent to a prefix and/or suffix tree, in a compact format, such as in the space allocated to store the reference genome. In many cases, the stored data is not in a tree-like structure, but instead the reference sequence data is in a linear list that may have been shuffled in a different order to transform it into a very particular form, so that the accompanying algorithm allows the reference to be searched against the sample reads in order to efficiently traverse the “tree”.

[0176] Adicionalmente, em vários casos, o índice pode incluir uma ou mais tabelas de hash, e os métodos revelados no presente documento podem incluir uma função de hash que pode ser realizada em uma ou mais porções das leituras em um esforço para mapear as leituras à referência, por exemplo, ao índice da referência. Por exemplo, alternativamente, ou além de utilizar uma ou tanto uma árvore de prefixo/sufixo quanto uma transformada de Burrows/Wheeler no genoma de referência e nos dados de sequência do sujeito, a fim de encontrar onde um se mapeia contra o outro, outro tal método envolve a produção de um índice de tabela de dispersão e/ou o desempenho de uma função de hash. O índice de tabela de dispersão pode ser uma estrutura de referência grande que é construída a partir de sequências do genoma de referência que podem ser, então, comparadas com uma ou mais porções da leitura para determinar onde a uma porção pode corresponder à outra. Do mesmo modo, o índice de tabela de dispersão pode ser construído a partir de porções da leitura que podem ser, então, comparadas com uma ou mais sequências do genoma de referência e, desse modo, usadas para determinar onde a uma pode corresponder à outra.[0176] Additionally, in various cases, the index may include one or more hash tables, and the methods disclosed herein may include a hash function that may be performed on one or more portions of the reads in an effort to map the reads to the reference, e.g., to the reference index. For example, alternatively, or in addition to utilizing one or both a prefix/suffix tree and a Burrows/Wheeler transform on the reference genome and the subject sequence data in order to find where one maps against the other, another such method involves producing a hash table index and/or performing a hash function. The hash table index may be a large reference structure that is constructed from sequences of the reference genome that may then be compared to one or more portions of the read to determine where one portion may match another. Similarly, the hash table index can be constructed from portions of the read that can then be compared to one or more reference genome sequences and thus used to determine where one may match the other.

[0177] A implantação de uma tabela de hash é um método rápido para realizar uma correspondência de padrão. Cada pesquisa leva uma quantidade aproximadamente constante de tempo para ser realizada. Tal método pode ser contrastado com o método de Burrows-Wheeler, o qual pode exigir muitas sondas (o número pode variar dependendo de quantos bits são exigidos para encontrar um padrão único) por pesquisa para encontrar uma correspondência ou um método de busca binário que tem log2(N) sondas, em que N é o número de padrões de semente na tabela. Adicionalmente, embora a função de hash possa quebrar o genoma de referência em segmentos de sementes de qualquer dado comprimento, por exemplo, 28 pares de base, e possa, então, conversor a sementes em uma representação digital, por exemplo, binária, de 56 bits, em que nem todos os 56 bits precisam ser completamente acessados ao mesmo tempo ou da mesma forma. Por exemplo, a função de hash pode ser empregada de tal forma que o endereço para cada semente seja designado por um número menor que 56 bits, tal como cerca de 18 a cerca de 44 ou 46 bits, tal como cerca de 20 a cerca de 40 bits, tal como cerca de 24 a cerca de 36 bits, incluindo cerca de 28 a cerca de 32 ou cerca de 30 bits podem ser usados como uma chave ou um endereço inicial a fim de acessar a tabela de dispersão. Por exemplo, em determinados casos, cerca de 26 a cerca de 29 bits podem ser usados como uma chave de acesso primária para a tabela de dispersão, deixando cerca de 27 a cerca de 30 bits restantes, a qual pode ser empregada como um meio para verificar duas vezes a primeira chave, por exemplo, se tanto a primeira quanto a segunda chaves chegarem na mesma célula na tabela de dispersão, então, é relativamente claro que o dito local é onde as mesmas pertencem.[0177] Implementing a hash table is a fast method for performing pattern matching. Each search takes an approximately constant amount of time to perform. Such a method can be contrasted with the Burrows-Wheeler method, which may require many probes (the number may vary depending on how many bits are required to find a unique pattern) per search to find a match, or a binary search method which has log2(N) probes, where N is the number of seed patterns in the table. Additionally, although the hash function can break the reference genome into seed segments of any given length, e.g. 28 base pairs, and can then convert the seeds into a digital, e.g. binary, 56-bit representation, not all 56 bits need to be accessed completely at the same time or in the same way. For example, the hash function may be employed such that the address for each seed is designated by a number smaller than 56 bits, such as about 18 to about 44 or 46 bits, such as about 20 to about 40 bits, such as about 24 to about 36 bits, including about 28 to about 32 or about 30 bits may be used as a key or starting address in order to access the hash table. For example, in certain cases, about 26 to about 29 bits may be used as a primary access key for the hash table, leaving about 27 to about 30 bits remaining, which may be employed as a means to double-check the first key, e.g., if both the first and second keys arrive at the same cell in the hash table, then it is relatively clear that said location is where they belong.

[0178] Por exemplo, uma primeira porção da semente digitalmente representada, por exemplo, cerca de 26 a cerca de 32, tal como cerca de 29 bits, pode formar uma chave de acesso primária e ser verificada por hash e pode ser pesquisada em uma primeira etapa. Além disso, em uma segunda etapa, os cerca de 27 a cerca de 30 bits restantes, por exemplo, uma chave de acesso secundária, podem ser inseridos na tabela de dispersão, tal como em uma cadeia de hash, como um meio para confirmar a primeira passagem. Consequentemente, para qualquer semente, seus bits de endereço originais podem ser hashed em uma primeira etapa e os bits de endereço secundários podem ser usados em uma segunda etapa de confirmação. Em tal caso, a primeira porção das sementes podem ser inseridas em um local de registro primário e a segunda porção pode ser encaixada na tabela em um local de cadeia de registro secundário. Além disso, conforme indicado acima, em diversos casos, esses dois locais de registro diferentes podem ser separados de modo posicional, tal como por um registro em formato de cadeia.[0178] For example, a first portion of the digitally represented seed, e.g., about 26 to about 32, such as about 29 bits, may form a primary access key and be hashed and searchable in a first pass. Further, in a second pass, the remaining about 27 to about 30 bits, e.g., a secondary access key, may be inserted into the hash table, such as in a hash chain, as a means to confirm the first pass. Accordingly, for any seed, its original address bits may be hashed in a first pass and the secondary address bits may be used in a second confirmation step. In such a case, the first portion of the seeds may be inserted into a primary record location and the second portion may be embedded in the table in a secondary record chain location. Further, as noted above, in various cases, these two different record locations may be positionally separated, such as by a record in chain format.

[0179] Em casos particulares, uma varredura linear de força bruta pode ser empregada para comparar a referência à leitura, ou porções da mesma. Entretanto, com o uso de uma busca linear de força bruta para varrer o genoma de referência por locais em que uma semente corresponde, mais de 3 bilhões de locais podem ter que ser verificados. Em que busca pode ser realizada, em conformidade com os métodos revelados no presente documento, em software ou hardware. No entanto, usando-se uma abordagem de hash, conforme apresentado no presente documento, cada pesquisa de semente pode ocorrer em aproximadamente uma quantidade constante de tempo. Normalmente, o local pode ser determinado em alguns acessos, por exemplo, um único acesso. Entretanto, em casos em que múltiplas sementes se mapeiam para o mesmo local na tabela, por exemplo, não são exclusivos o suficiente, alguns acessos adicionais podem ser feitos para encontrar a semente que está sendo atualmente pesquisada. Logo, embora existam 30M ou mais locais possíveis para uma dada leitura de comprimento de 100 nucleotídeos para corresponder, em relação a um genoma de referência, a tabela de dispersão e a função de hash podem determinar rapidamente onde aquela leitura irá ser mostrada no genoma de referência. Usando-se um índice de tabela de dispersão, portanto, não é necessário buscar o genoma de referência completo, por exemplo, por força bruta, para determinar onde a leitura é mapeada e se alinha.[0179] In particular cases, a brute force linear scan may be employed to compare the reference to the read, or portions thereof. However, using a brute force linear search to scan the reference genome for locations at which a seed matches, over 3 billion locations may have to be checked. Such searching may be performed, in accordance with the methods disclosed herein, in software or hardware. However, using a hashing approach as disclosed herein, each seed lookup may occur in approximately a constant amount of time. Typically, the location may be determined in a few accesses, e.g., a single access. However, in cases where multiple seeds map to the same location in the table, e.g., are not unique enough, a few additional accesses may be made to find the seed currently being searched. Thus, although there are 30M or more possible locations for a given 100-nucleotide-long read to match against a reference genome, the hash table and hash function can quickly determine where that read will appear in the reference genome. Using a hash table index, therefore, it is not necessary to brute-force search the entire reference genome to determine where the read maps and aligns.

[0180] Em vista do anterior, qualquer função de hash adequada pode ser empregada para esses propósitos, entretanto, em vários casos, a função de hash usada para determinar o endereço de tabela para cada semente pode ser uma verificação de redundância cíclica (CRC) que pode ser baseada em um polinômio primitivo de bits 2k, conforme indicado acima. Alternativamente, um mapeador de função de hash trivial pode ser empregado, tal como simplesmente derrubando alguns dos bits 2k. Entretanto, em vários casos, a CRC pode ser uma função de hash mais forte que pode separar melhor semente similares, enquanto ao mesmo tempo evita a congestão de tabela. Isso pode ser especialmente benéfico quando não há penalidade de velocidade ao calcular CRCs, tal como com o hardware dedicado descrito no presente documento. Em tais casos, o registro de hash populado para cada semente pode incluir a posição de referência em que a semente ocorreu, e a sinalização que indica se foi reversamente complementado antes do hash.[0180] In view of the foregoing, any suitable hash function may be employed for these purposes, however, in many cases, the hash function used to determine the table address for each seed may be a cyclic redundancy check (CRC) that may be based on a 2k-bit primitive polynomial, as indicated above. Alternatively, a trivial hash function mapper may be employed, such as simply dropping some of the 2k bits. However, in many cases, the CRC may be a stronger hash function that can better separate similar seeds, while at the same time avoiding table congestion. This may be especially beneficial when there is no speed penalty when calculating CRCs, such as with the dedicated hardware described herein. In such cases, the hash record populated for each seed may include the reference position at which the seed occurred, and the flag indicating whether it was reverse complemented prior to hashing.

[0181] A saída retornada a partir do desempenho de uma função de mapeamento pode ser uma lista de possibilidades sobre onde uma ou mais, por exemplo, cada, leitura se mapeia para um ou mais genomas de referência. Por exemplo, a saída para cada leitura mapeada pode ser uma lista de locais possíveis em que a leitura pode ser mapeada para uma sequência correspondente no genoma de referência. Em diversas modalidades, uma correspondência exata à referência para pelo menos uma parte, por exemplo, uma semente da leitura, se não todas, da leitura possa ser buscada. Consequentemente, em diversos casos, não é necessário que todas as porções de todas as leituras correspondam exatamente a todas as porções do genoma de referência.[0181] The output returned from performing a mapping function may be a list of possibilities as to where one or more, e.g., each, read maps to one or more reference genomes. For example, the output for each mapped read may be a list of possible locations where the read may map to a corresponding sequence in the reference genome. In various embodiments, an exact match to the reference for at least a portion, e.g., a seed of the read, if not all, of the read may be sought. Accordingly, in many cases, it is not necessary for all portions of all reads to exactly match all portions of the reference genome.

[0182] Conforme descrito no presente documento, todas essas operações podem ser realizadas por meio de software ou podem ser conectadas com fio, tal como em um circuito integrado, tal como em um chip, por exemplo como parte de uma placa de circuitos. Por exemplo, o funcionamento de um ou mais desses algoritmos pode ser embutido em um chip, tal como em um chip de FPGA (arranjo de portas programável em campo) ou um chip de ASIC (circuito integrado específico de aplicação), e pode ser otimizado a fim de realização mais eficiente devido à sua implantação em tal hardware. Adicionalmente, uma ou mais, por exemplo, duas ou todas as três, dessas funções de mapeamento podem formar um módulo, tal como um módulo de mapeamento, que pode formar parte de um sistema, por exemplo, uma segmentação, que é usado em um processo para determinar toda uma sequência genômica real, ou uma porção da mesma, de um indivíduo.[0182] As described herein, all of these operations may be performed via software or may be hard-wired, such as on an integrated circuit, such as on a chip, for example as part of a circuit board. For example, the operation of one or more of these algorithms may be embedded on a chip, such as an FPGA (field programmable gate array) chip or an ASIC (application specific integrated circuit) chip, and may be optimized for more efficient performance due to its implementation in such hardware. Additionally, one or more, for example two or all three, of these mapping functions may form a module, such as a mapping module, which may form part of a system, for example a segmentation, that is used in a process for determining an entire actual genomic sequence, or a portion thereof, of an individual.

[0183] Uma vantagem de implantar o módulo hash em hardware é que os processos podem ser acelerados e, portanto, realizados de uma forma muito mais rápida. Por exemplo, quando o software pode incluir diversas instruções para realizar uma ou mais dessas diversas funções, a implantação de tais instruções exige normalmente que dados e instruções sejam armazenados e/ou buscados e/ou lidos e/ou interpretados, tal como antes da execução. Conforme indicado acima, entretanto, e descrito em maiores detalhes no presente documento, um chip pode ser conectado com fio para realizar essas funções sem ter que buscar, interpretar e/ou realizar uma ou mais de uma sequência de instruções. Em vez disso, o chip pode ser ligado com fio para realizar tais funções diretamente. Consequentemente, em diversos aspectos, a revelação é direcionada a uma máquina com fio personalizada que pode ser configurada de forma que porções ou todo o módulo de mapeamento, por exemplo, hashing, descrito acima possam ser implantados por um ou mais circuitos de rede, tais como circuitos integrados com fios em um chip, tal como um FPGA ou um ASIC.[0183] One advantage of implementing the hash module in hardware is that the processes can be accelerated and therefore performed much more quickly. For example, where software may include multiple instructions to perform one or more of these multiple functions, implementation of such instructions typically requires that data and instructions be stored and/or fetched and/or read and/or interpreted, such as prior to execution. As noted above, however, and described in greater detail herein, a chip may be wired to perform these functions without having to fetch, interpret, and/or perform one or more of a sequence of instructions. Instead, the chip may be wired to perform such functions directly. Accordingly, in many aspects, the disclosure is directed to a custom wired machine that may be configured such that portions or all of the mapping, e.g., hashing, module described above may be implemented by one or more network circuits, such as wired integrated circuits on a chip, such as an FPGA or an ASIC.

[0184] Por exemplo, em diversos casos, o índice de tabela de dispersão pode ser construído e a função de hash pode ser realizada em um chip e, em outros casos, o índice de tabela de dispersão pode ser gerado a partir do chip, tal como por meio de software operado por uma CPU hospedeira, mas, uma vez gerado, o mesmo é carregado ou de outro modo tornado acessível ao hardware e empregado pelo chip, tal como na operação do módulo hash. Particularmente, em vários casos, o chip, tal como um FPGA, pode ser configurado de modo a ser firmemente acoplado à CPU hospedeira, tal como por uma interconexão de baixa latência, tal como uma interconexão de QPI. Mais particularmente, o chip e a CPU podem ser configurados de modo a serem acoplados firmemente juntos de tal maneira que compartilhem um ou mais recursos de memória, por exemplo, uma DRAM, em uma configuração coerente com cache, conforme descrito em mais detalhes abaixo. Em tal caso, a memória hospedeira pode construir e/ou incluir o índice de referência, por exemplo, a tabela de hash, que pode ser armazenada na memória hospedeira, mas ser tornada facilmente acessível ao FPGA tal como para seu uso no desempenho de um hash ou outra função de mapeamento. Em modalidades particulares, um ou ambos dentre a CPU e o FPGA podem incluir um ou mais caches ou registros que podem ser acoplados juntos de modo a estarem em uma configuração coerente, de modo que os dados armazenados em um cache possam ser substancialmente espelhados pelo outro.[0184] For example, in various cases, the hash table index may be constructed and the hash function may be performed on a chip, and in other cases, the hash table index may be generated from the chip, such as by software operated by a host CPU, but once generated, it is loaded or otherwise made accessible to hardware and employed by the chip, such as in the operation of the hash module. In particular, in various cases, the chip, such as an FPGA, may be configured to be tightly coupled to the host CPU, such as by a low-latency interconnect such as a QPI interconnect. More particularly, the chip and the CPU may be configured to be tightly coupled together in such a manner that they share one or more memory resources, e.g., a DRAM, in a cache-coherent configuration, as described in more detail below. In such a case, the host memory may construct and/or include the reference index, e.g., the hash table, which may be stored in the host memory but be made readily accessible to the FPGA such as for its use in performing a hash or other mapping function. In particular embodiments, one or both of the CPU and the FPGA may include one or more caches or registers that may be coupled together to be in a coherent configuration, such that data stored in one cache may be substantially mirrored by the other.

[0185] Consequentemente, em vista do anterior, em tempo de execução, uma ou mais tabelas de hash anteriormente construídas, por exemplo, contendo um índice de um genoma de referência, ou uma tabela de hash construída ou a ser construída, podem ser carregadas em memória incorporada ou podem pelo menos ser tornadas acessíveis por seu aplicativo hospedeiro, conforme descrito em mais detalhes abaixo no presente documento. Em tal caso, as leituras, por exemplo, armazenadas em formato de arquivo FASTQ, podem ser enviadas pelo aplicativo hospedeiro aos mecanismos de processamento incorporados, por exemplo, uma memória ou cache ou outro registro associado ao mesmo, tal como para uso por um mecanismo de mapeamento e/ou alinhamento e/ou classificação, tal como quando os resultados do mesmo podem ser enviados e usados para realizar uma função de chamada de variante. Em relação ao mesmo, conforme indicado acima, em vários casos, um acúmulo de sementes sobrepostas pode ser gerado, por exemplo, por meio de uma função de geração de semente, e extraído das leituras sequenciadas, ou pares de leituras, e, uma vez geradas, as sementes podem ser verificadas por hash, tal como contra um índice, e pesquisadas na tabela de hash de modo a determinar posições de mapeamento de leitura candidata na referência.[0185] Accordingly, in view of the foregoing, at runtime, one or more previously constructed hash tables, e.g., containing an index of a reference genome, or a constructed or to-be-constructed hash table, may be loaded into embedded memory or may at least be made accessible by its host application, as described in more detail below herein. In such a case, the reads, e.g., stored in FASTQ file format, may be sent by the host application to embedded processing mechanisms, e.g., a memory or cache or other registry associated therewith, such as for use by a mapping and/or alignment and/or classification engine, such as when the results thereof may be sent and used to perform a variant calling function. In this regard, as indicated above, in various cases, an accumulation of overlapping seeds may be generated, for example, by means of a seed generation function, and extracted from the sequenced reads, or pairs of reads, and, once generated, the seeds may be hashed, such as against an index, and looked up in the hash table so as to determine candidate read mapping positions in the reference.

[0186] Mais particularmente, em vários casos, um módulo de mapeamento pode ser fornecido, tal como quando o módulo de mapeamento é configurado para realizar uma ou mais funções de mapeamento, tal como em uma configuração com fio. Especificamente, o módulo de mapeamento com fio pode ser configurado para realizar uma ou mais funções tipicamente realizadas por um ou mais algoritmos executados em uma CPU, tal como as funções que poderiam ser tipicamente implantadas em um algoritmo baseado em software que produz uma árvore de prefixo e/ou sufixo, uma Transformada de Burrows-Wheeler e/ou executa uma função de hash, por exemplo, uma função de hash que faz uso de, ou baseia-se de outro modo em, uma indexação de tabela de hash, tal como de uma referência, por exemplo, uma sequência de genoma de referência. Em tais casos, a função de hash pode ser estruturada de modo a implantar uma estratégia, tal como uma estratégia de mapeamento otimizada que pode ser configurada para minimizar o número de acessos de memória, por exemplo, acessos aleatórios de memória grande, que é realizada de modo a assim maximizar a utilidade da largura de banda de memória incorporada ou associada de outro modo, que pode ser fundamentalmente restringida tal como pelo espaço dentro da arquitetura de chip.[0186] More particularly, in various instances, a mapping module may be provided, such as when the mapping module is configured to perform one or more mapping functions, such as in a wired configuration. Specifically, the wired mapping module may be configured to perform one or more functions typically performed by one or more algorithms executed on a CPU, such as functions that would typically be implemented in a software-based algorithm that produces a prefix and/or suffix tree, a Burrows-Wheeler Transform, and/or performs a hash function, e.g., a hash function that makes use of, or otherwise relies on, a hash table indexing, such as of a reference, e.g., a reference genome sequence. In such cases, the hash function may be structured so as to implement a strategy, such as an optimized mapping strategy that may be configured to minimize the number of memory accesses, e.g., large random memory accesses, that is performed so as to maximize the utility of embedded or otherwise associated memory bandwidth, which may be fundamentally constrained such as by space within the chip architecture.

[0187] Ademais, em certos casos, a fim de tornar o sistema mais eficaz, a CPU/GPU/QPU hospedeira pode ser firmemente acoplada ao hardware associado, por exemplo, FPGA, tal como por uma interface de baixa latência, por exemplo, Interconexão de Caminho Rápido ("QPI"), de modo a permitir que os mecanismos de processamento do circuito integrado tenham pronto acesso à memória hospedeira. Em casos particulares, a interação entre a CPU hospedeira e o chip acoplado e suas respectivas memórias associadas, por exemplo, uma ou mais DRAMs, pode ser configurada de modo a ser coerente com cache. Logo, em várias modalidades, pode ser fornecido um circuito integrado em que o circuito integrado foi pré-configurado, por exemplo, pré-conectado por fio, de tal maneira a incluir um ou mais circuitos lógicos digitais que podem estar em configuração com fio, que pode estar interconectada, por exemplo, por uma ou uma pluralidade de interconexões elétricas físicas e, em várias modalidades, os circuitos lógicos digitais com fio podem ser dispostos em um ou mais mecanismos de processamento de modo a formar um ou mais módulos, tal como um módulo de mapeamento.[0187] Furthermore, in certain cases, in order to make the system more efficient, the host CPU/GPU/QPU may be tightly coupled to associated hardware, e.g., FPGA, such as by a low-latency interface, e.g., Fast Path Interconnect ("QPI"), so as to allow the processing engines of the integrated circuit to have ready access to the host memory. In particular cases, the interaction between the host CPU and the coupled chip and their respective associated memories, e.g., one or more DRAMs, may be configured to be cache-coherent. Thus, in various embodiments, an integrated circuit may be provided wherein the integrated circuit has been preconfigured, e.g., prewired, in such a manner as to include one or more digital logic circuits that may be in a wired configuration, which may be interconnected, e.g., by one or a plurality of physical electrical interconnections, and in various embodiments, the wired digital logic circuits may be arranged in one or more processing engines to form one or more modules, such as a mapping module.

[0188] Consequentemente, em vários casos, um módulo de mapeamento pode ser fornecido, tal como em uma primeira configuração conectada por fio pré- configurada, por exemplo, com fio, em que o módulo de mapeamento é configurado para realizar várias funções de mapeamento. Por exemplo, o módulo de mapeamento pode ser configurado de modo a acessar, pelo menos alguns dentre uma sequência de nucleotídeos em uma leitura dentre uma pluralidade de leituras, derivadas de uma amostra genética sequenciada do sujeito, e/ou uma sequência genética de referência, e/ou um índice de uma ou mais sequências genéticas de referência, de uma memória ou um cache associado à mesma, por exemplo, por meio de uma interface de memória, tal como uma interconexão de processo, por exemplo, uma Interconexão de Caminho Rápido, e similares. O módulo de mapeamento pode ser configurado adicionalmente para mapear a leitura a um ou mais segmentos da uma ou mais sequências genéticas de referência, tal como com base no índice. Por exemplo, em várias modalidades particulares, o algoritmo e/ou módulo de mapeamento apresentado no presente documento podem ser empregados para estabelecer, ou construir de outro modo, uma tabela de hash, de modo que a leitura, ou uma porção da mesma, do material genético sequenciado do sujeito possa ser comparada com um ou mais segmentos de um genoma de referência, de modo a produzir leituras mapeadas. Em tal caso, uma vez que o mapeamento tenha sido realizado, um alinhamento pode ser realizado.[0188] Accordingly, in various instances, a mapping module may be provided, such as in a first pre-configured wired-connected configuration, e.g., wired, wherein the mapping module is configured to perform various mapping functions. For example, the mapping module may be configured to access at least some of a nucleotide sequence in a read from a plurality of reads derived from a sequenced genetic sample of the subject, and/or a reference genetic sequence, and/or an index of one or more reference genetic sequences, from a memory or cache associated therewith, e.g., via a memory interface, such as a process interconnect, e.g., a Fast Path Interconnect, and the like. The mapping module may be further configured to map the read to one or more segments of the one or more reference genetic sequences, such as based on the index. For example, in various particular embodiments, the algorithm and/or mapping module presented herein may be employed to establish, or otherwise construct, a hash table such that the read, or a portion thereof, of the subject's sequenced genetic material may be compared to one or more segments of a reference genome to produce mapped reads. In such a case, once mapping has been performed, an alignment may be performed.

[0189] Por exemplo, após ter sido determinado onde todas as correspondências possíveis estão para as sementes contra o genoma de referência, é preciso determinar a qual dentre todos os locais possíveis uma dada leitura pode corresponder é, de fato, a posição correta a qual a mesma se alinha. Logo, após o mapeamento, pode existir uma multiplicidade de posições que uma ou mais leituras parecem se corresponder no genoma de referência. Consequentemente, pode existir uma pluralidade de sementes que parecem estar indicando exatamente a mesma coisa, por exemplo, as mesmas podem corresponder exatamente à mesma posição na referência, se for levado em consideração a posição da semente na leitura. O alinhamento real, portanto, precisa ser determinado para cada leitura. Essa determinação pode ser de diversas formas diferentes.[0189] For example, after it has been determined where all the possible matches are for the seeds against the reference genome, it is necessary to determine which of all the possible locations a given read may correspond to is in fact the correct position to which it aligns. Thus, after mapping, there may be a plurality of positions that one or more reads appear to match in the reference genome. Consequently, there may be a plurality of seeds that appear to be indicating exactly the same thing, for example, they may all correspond to exactly the same position in the reference, if the position of the seed in the read is taken into account. The actual alignment therefore needs to be determined for each read. This determination can take a number of different forms.

[0190] Em um caso, todas as leituras podem ser avaliadas a fim de determinar seu alinhamento correto em relação ao genoma de referência com base nas posições indicadas por cada semente a partir da leitura que retornou informações de posição durante o processo de busca de mapeamento, por exemplo, hash. Entretanto, em diversos casos, antes de realizar um alinhamento, uma função de filtragem de cadeia de semente pode ser realizada em uma ou mais dentre as sementes. Por exemplo, em determinados casos, as sementes associadas a uma dada leitura que parecem mapear para o mesmo lugar geral como contra o genoma de referência podem ser agregadas em uma única cadeia que faz referência à mesma região geral. Todas as sementes associadas a uma leitura podem ser agrupadas em uma ou mais cadeias de semente de forma que cada semente seja um membro de apenas uma cadeia. Se tal cadeia (ou cadeias) que fazem, então, com que a leitura seja alinhada a cada posição indicada no genoma de referência.[0190] In one case, all reads may be evaluated to determine their correct alignment against the reference genome based on the positions indicated by each seed from the read that returned position information during the mapping search process, e.g., hashing. However, in many cases, prior to performing an alignment, a seed strand filtering function may be performed on one or more of the seeds. For example, in certain cases, seeds associated with a given read that appear to map to the same general location as against the reference genome may be aggregated into a single strand that references the same general region. All seeds associated with a read may be grouped into one or more seed strands such that each seed is a member of only one strand. If such strand(s) do, then the read is aligned to each indicated position in the reference genome.

[0191] Especificamente, em diversos casos, todas as sementes que têm a mesma evidência de suporte que indica que as mesmas pertencem ao mesmo local (ou locais) geral na referência podem ser coletadas para formar uma ou mais cadeias. As sementes que se agrupam, portanto, ou pelo menos parece que as mesmas estarão próximas umas das outras no genoma de referência, por exemplo, dentro de uma determinada banda, serão agrupadas em uma cadeia de sementes e aquelas que estão fora dessa banda serão colocadas em uma cadeia diferente de sementes. Uma vez que essas diversas sementes foram agregadas em uma ou mais diversas cadeias de semente, pode ser determinado quais das cadeias realmente representa a cadeia correta a ser alinhada. Isso pode ser feito, pelo menos em parte, pelo uso de um algoritmo de filtragem que é uma aritmética heurística designada para eliminar cadeias de semente fracas que têm alta probabilidade de não serem a cadeia correta.[0191] Specifically, in many cases, all of the seeds that have the same supporting evidence indicating that they belong to the same general locus (or loci) in the reference may be collected to form one or more chains. Seeds that therefore cluster together, or at least appear to be close to each other in the reference genome, e.g., within a certain band, will be grouped into one seed chain, and those that fall outside of that band will be placed into a different seed chain. Once these diverse seeds have been aggregated into one or more diverse seed chains, it can be determined which of the chains actually represents the correct chain to be aligned. This can be done, at least in part, by the use of a filtering algorithm that is an arithmetic heuristic designed to eliminate weak seed chains that have a high probability of not being the correct chain.

[0192] A conclusão de realizar uma ou mais dessas funções de mapeamento, filtragem e/ou edição é uma lista de leituras que inclui, para cada leitura, uma lista de todos os locais possíveis nos quais a leitura pode se corresponder ao genoma de referência. Logo, uma função de mapeamento pode ser realizada a fim de determinar rapidamente onde as leituras do arquivo de imagem, arquivo BCL e/ou arquivo de FASTQ obtidas a partir do sequenciador se mapeiam para o genoma de referência, por exemplo, para onde no genoma completo as diversas leituras se mapeiam. Entretanto, se houver um erro em qualquer uma das leituras ou uma variação genética, pode não ser possível conseguir uma correspondência exata à referência e/ou pode haver diversos lugares aos quais uma ou mais leituras parecem corresponder. Portanto, precisa ser determinado onde as diversas leituras realmente se alinham em relação ao genoma como um todo.[0192] The output of performing one or more of these mapping, filtering and/or editing functions is a list of reads that includes, for each read, a list of all possible locations at which the read may match the reference genome. Thus, a mapping function may be performed in order to quickly determine where the reads from the image file, BCL file and/or FASTQ file obtained from the sequencer map to the reference genome, e.g., where in the complete genome the various reads map. However, if there is an error in any of the reads or a genetic variation, it may not be possible to achieve an exact match to the reference and/or there may be multiple locations at which one or more reads appear to match. Therefore, it needs to be determined where the various reads actually align relative to the genome as a whole.

[0193] Consequentemente, após o mapeamento e/ou a filtragem e/ou a edição, as posições de local para um grande número de leituras foram determinadas, em que, para algumas das leituras individuais, uma multiplicidade de posições de local foram determinadas, e agora é preciso determinar quais dentre todos os locais possíveis é, de fato, o local verdadeiro ou mais provável ao qual as diversas leituras se alinham. Tal alinhamento pode ser realizado por um ou mais algoritmos, tal como um algoritmo de programação dinâmico que corresponde as leituras mapeadas ao genoma de referência e opera uma função de alinhamento no mesmo. Uma função de alinhamento exemplificativa compara uma ou mais, por exemplo, todas, leituras com a referência, tal como colocando-se as mesmas em uma relação gráfica com as outras, por exemplo, tal como em uma tabela, por exemplo, um arranjo ou uma matriz virtual, em que a sequência de um dentre o genoma de referência ou as leituras mapeadas é colocada em uma dimensão ou eixo geométrico, por exemplo, o eixo geométrico horizontal, e a outra é colocada nas dimensões ou no eixo geométrico opostos, tal como o eixo geométrico vertical. Uma frente de onda de pontuação conceitual é, então, passada através do arranjo a fim de determinar o alinhamento das leituras com o genoma de referência, tal como computando-se pontuações de alinhamento para cada célula na matriz.[0193] Accordingly, after mapping and/or filtering and/or editing, the locus positions for a large number of reads have been determined, wherein for some of the individual reads a multiplicity of locus positions have been determined, and it is now necessary to determine which of all the possible loci is in fact the true or most likely locus to which the multiple reads align. Such alignment may be performed by one or more algorithms, such as a dynamic programming algorithm that matches the mapped reads to the reference genome and operates an alignment function thereon. An exemplary alignment function compares one or more, e.g., all, reads to the reference, such as by placing them in a graphical relationship to each other, e.g., such as in a table, e.g., an array or a virtual matrix, in which the sequence of one of the reference genome or mapped reads is placed on one dimension or geometric axis, e.g., the horizontal geometric axis, and the other is placed on the opposite dimensions or geometric axis, such as the vertical geometric axis. A conceptual scoring wavefront is then passed through the array to determine the alignment of the reads to the reference genome, such as by computing alignment scores for each cell in the matrix.

[0194] A frente de onda de pontuação representa uma ou mais, por exemplo, todas, as células de uma matriz ou uma porção dessas células, as quais podem ser pontuadas independente e/ou simultaneamente de acordo com as regras de programação dinâmica aplicáveis no algoritmo de alinhamento, tal como SmithWaterman, e/ou Needleman-Wunsch, e/ou algoritmos relacionados. As pontuações de alinhamento podem ser computadas sequencialmente ou em outras ordens, tais como computando-se todas as pontuações na fileira superior da esquerda para a direita, seguidas por todas as pontuações na próxima fileira da esquerda para a direita, etc. Dessa forma, a frente de onda diagonal que varre diagonalmente representa uma sequência ideal de bateladas de pontuações computadas simultaneamente ou em paralelo em uma série de etapas de frente de onda.[0194] The scoring wavefront represents one or more, e.g., all, cells of a matrix or a portion of such cells, which may be scored independently and/or simultaneously according to the dynamic programming rules applicable in the alignment algorithm, such as Smith-Waterman, and/or Needleman-Wunsch, and/or related algorithms. The alignment scores may be computed sequentially or in other orders, such as computing all scores in the top row from left to right, followed by all scores in the next row from left to right, etc. Thus, the diagonally sweeping diagonal wavefront represents an ideal sequence of batches of scores computed simultaneously or in parallel in a series of wavefront steps.

[0195] Por exemplo, em uma modalidade, uma janela do genoma de referência que contém o segmento para o qual uma leitura foi mapeada pode ser colocada no eixo geométrico horizontal e a leitura pode ser posicionada no eixo geométrico vertical. De uma forma tal como essa, um arranjo ou uma matriz é gerado, por exemplo, uma matriz virtual, pelo qual o nucleotídeo em cada posição na leitura pode ser comparado com o nucleotídeo em cada posição na janela de referência. Conforme a frente de onda passa através do arranjo, todas as formas potenciais de alinhamento da leitura à janela de referência são consideradas, incluindo a possibilidade de alterações para uma sequência serem exigidas para fazer com que a leitura corresponda à sequência de referência, tal como alterando-se um ou mais nucleotídeos da leitura para outros nucleotídeos ou inserindo um ou mais novos nucleotídeos em uma sequência, ou deletando-se um ou mais nucleotídeos de uma sequência.[0195] For example, in one embodiment, a window of the reference genome containing the segment to which a read has been mapped can be placed on the horizontal axis and the read can be positioned on the vertical axis. In such a manner, an array or matrix is generated, e.g., a virtual matrix, by which the nucleotide at each position in the read can be compared to the nucleotide at each position in the reference window. As the wavefront passes through the array, all potential ways of aligning the read to the reference window are considered, including the possibility that changes to a sequence may be required to make the read match the reference sequence, such as changing one or more nucleotides of the read to other nucleotides, or inserting one or more new nucleotides into a sequence, or deleting one or more nucleotides from a sequence.

[0196] Uma pontuação de alinhamento, que representa a extensão das alterações que seriam exigidas a serem feitas para alcançar um alinhamento exato, é gerada, em que essa pontuação e/ou outros dados associados podem ser armazenados nas dadas células do arranjo. Cada célula do arranjo corresponde à possibilidade de que o nucleotídeo em sua posição no eixo geométrico da leitura se alinhe ao nucleotídeo em sua posição no eixo geométrico de referência e a pontuação gerada para cada célula representa o alinhamento parcial que termina com as posições da célula na leitura e na janela de referência. A pontuação mais alta gerada em qualquer célula representa o melhor alinhamento geral da leitura à janela de referência. Em diversos casos, o alinhamento pode ser global, em que toda a leitura precisa ser alinhada a alguma porção da janela de referência, tal como com o uso de um algoritmo de Needleman-Wunsch ou semelhante; ou, em outros casos, o alinhamento pode ser local, em que apenas uma porção da leitura pode ser alinhada a uma porção da janela de referência, tal como usando-se um algoritmo de Smith-Waterman ou semelhante.[0196] An alignment score, representing the extent of changes that would be required to be made to achieve an exact alignment, is generated, where this score and/or other associated data may be stored in the given cells of the array. Each cell of the array corresponds to the likelihood that the nucleotide at its position on the read axis aligns with the nucleotide at its position on the reference axis, and the score generated for each cell represents the partial alignment that ends with the cell's positions in the read and in the reference window. The highest score generated in any cell represents the best overall alignment of the read to the reference window. In many cases, the alignment may be global, where the entire read must be aligned to some portion of the reference window, such as using a Needleman-Wunsch or similar algorithm; or, in other cases, the alignment may be local, where only a portion of the read can be aligned to a portion of the reference window, such as using a Smith-Waterman or similar algorithm.

[0197] Consequentemente, em diversos casos, uma função de alinhamento pode ser realizada, tal como nos dados obtidos a partir do módulo de mapeamento. Logo, em diversos casos, uma função de alinhamento pode formar um módulo, tal como um módulo de alinhamento, que pode formar parte de um sistema, por exemplo, uma segmentação, que é usado, tal como além de um módulo de mapeamento, em um processo para determinar toda a sequência genômica real, ou uma porção da mesma, de um indivíduo. Por exemplo, a saída retornada a partir do desempenho da função de mapeamento, tal como a partir de um módulo de mapeamento, por exemplo, a lista de possibilidades sobre para onde uma ou mais ou todas as leituras se mapeiam para uma ou mais posições em um ou mais genomas de referência, pode ser empregada pela função de alinhamento a fim de determinar o alinhamento real de sequência do DNA sequenciado do sujeito.[0197] Accordingly, in various cases, an alignment function may be performed, such as on data obtained from the mapping module. Thus, in various cases, an alignment function may form a module, such as an alignment module, which may form part of a system, e.g., a segmentation system, that is used, such as in addition to a mapping module, in a process for determining the entire actual genomic sequence, or a portion thereof, of an individual. For example, the output returned from the performance of the mapping function, such as from a mapping module, e.g., the list of possibilities as to where one or more or all of the reads map to one or more positions in one or more reference genomes, may be used by the alignment function to determine the actual sequence alignment of the sequenced DNA of the subject.

[0198] Tal função de alinhamento pode, algumas vezes, ser útil devido ao fato de que, conforme descrito acima, algumas vezes, por uma variedade de motivos diferentes, as leituras sequenciadas não correspondem sempre exatamente ao genoma de referência. Por exemplo, pode haver um SNP (único polimorfismo de nucleotídeo) em uma ou mais das leituras, por exemplo, uma substituição de um nucleotídeo por outro em uma única posição; pode haver um “indel,” inserção ou deleção, de uma ou mais bases ao longo de uma ou mais das sequências de leitura, em que a inserção ou deleção não está presente no genoma de referência; e/ou pode haver um erro de sequenciamento (por exemplo, erros na preparação de amostra e/ou na leitura de sequenciador e/ou na saída de sequenciador, etc.) que torna uma ou mais dessas variações evidentes. Consequentemente, quando uma leitura varia da referência, tal como por um SNP ou Indel, isso pode ser devido ao fato de que a referência é diferente da sequência de DNA verdadeira amostrada ou devido ao fato de que a leitura é diferente da sequência de DNA verdadeira amostrada. O problema é descobrir como alinhar corretamente as leituras ao genoma de referência dado ao fato de que, em toda probabilidade, as duas sequências variarão uma da outra em uma multiplicidade de formas diferentes.[0198] Such an alignment function may sometimes be useful due to the fact that, as described above, sometimes, for a variety of different reasons, the sequenced reads do not always exactly match the reference genome. For example, there may be a SNP (single nucleotide polymorphism) in one or more of the reads, e.g., a substitution of one nucleotide for another at a single position; there may be an “indel,” insertion or deletion, of one or more bases along one or more of the read sequences, where the insertion or deletion is not present in the reference genome; and/or there may be a sequencing error (e.g., errors in sample preparation and/or sequencer readout and/or sequencer output, etc.) that makes one or more of these variations evident. Consequently, when a read varies from the reference, such as by a SNP or Indel, this may be due to the fact that the reference is different from the true DNA sequence sampled, or due to the fact that the read is different from the true DNA sequence sampled. The problem is figuring out how to correctly align the reads to the reference genome given the fact that, in all likelihood, the two sequences will vary from each other in a multitude of different ways.

[0199] Em diversos casos, a entrada em uma função de alinhamento, tal como a partir de uma função de mapeamento, tal como uma árvore de prefixo/sufixo, ou uma transformada de Burrows/Wheeler, ou uma tabela de dispersão e/ou uma função de hash, pode ser uma lista de possibilidades sobre onde uma ou mais leituras podem corresponder a uma ou mais posições de uma ou mais sequências de referência. Por exemplo, para qualquer dada leitura, a mesma pode corresponder a qualquer número de posições no genoma de referência, tal como em 1 local ou 16, ou 32, ou 64, ou 100, ou 500, ou 1.000 ou mais locais para o qual uma dada leitura se mapeia no genoma. Entretanto, qualquer leitura individual foi derivada, por exemplo, sequenciada, a partir de apenas uma porção específica do genoma. Logo, a fim de encontrar o local verdadeiro a partir do qual uma dada leitura particular foi derivada, uma função de alinhamento pode ser realizada, por exemplo, um alinhamento com lacuna ou sem lacuna de Smith-Waterman, um alinhamento de Needleman-Wunsch, etc., a fim de determinar onde no genoma uma ou mais das leituras foram realmente derivadas, tal como comparando-se todos os locais possíveis em que uma correspondência ocorre e determinando-se qual dentre todas as possibilidades é o local mais provável no genoma a partir do qual a leitura foi sequenciado, com base em qual pontuação de alinhamento de local é a maior.[0199] In many cases, the input to an alignment function, such as from a mapping function such as a prefix/suffix tree, or a Burrows/Wheeler transform, or a hash table and/or a hash function, may be a list of possibilities as to where one or more reads may match one or more positions of one or more reference sequences. For example, for any given read, it may match any number of positions in the reference genome, such as 1 location, or 16, or 32, or 64, or 100, or 500, or 1,000 or more locations to which a given read maps in the genome. However, any individual read was derived, e.g., sequenced, from only a specific portion of the genome. Thus, in order to find the true location from which a given particular read was derived, an alignment function can be performed, e.g., a Smith-Waterman gapped or gapless alignment, a Needleman-Wunsch alignment, etc., in order to determine where in the genome one or more of the reads were actually derived, such as by comparing all possible locations at which a match occurs and determining which of all the possibilities is the most likely location in the genome from which the read was sequenced, based on which location's alignment score is the highest.

[0200] Conforme indicado, tipicamente, um algoritmo é usado para realizar tal como uma função de alinhamento. Por exemplo, um algoritmo de alinhamento de Smith-Waterman e/ou Needleman-Wunsch pode ser empregado para alinhar duas ou mais sequências umas contra as outras. Nesse caso, os mesmos podem ser empregados de uma forma a fim de determinar as probabilidades de que, para qualquer dada posição onde a leitura se mapeia para o genoma de referência, o mapeamento é, de fato, a posição a partir da qual a leitura se originou. Tipicamente, esses algoritmos são configurados a fim de serem realizados por software, entretanto, em diversos casos, tal como no apresentado presente documento, um ou mais desses algoritmos podem ser configurados a fim de serem executados em hardware, conforme descrito em maiores detalhes no presente documento abaixo.[0200] As indicated, typically, an algorithm is used to perform such an alignment function. For example, a Smith-Waterman and/or Needleman-Wunsch alignment algorithm may be employed to align two or more sequences against each other. In this case, they may be employed in a manner to determine the probabilities that, for any given position where the read maps to the reference genome, the mapping is in fact the position from which the read originated. Typically, these algorithms are configured to be performed by software, however, in many cases, such as in the present document, one or more of these algorithms may be configured to be performed in hardware, as described in greater detail in the present document below.

[0201] Em particular, a função de alinhamento opera, pelo menos em parte, para alinhar uma ou mais, por exemplo, todas, as leituras ao genoma de referência independentemente da presença de uma ou mais porções de divergências, por exemplo, SNPs, inserções, deleções, artefatos estruturais, etc. a fim de determinar onde é provável que as leituras se encaixem no genoma corretamente. Por exemplo, a uma ou mais leituras são comparadas contra o genoma de referência e o melhor encaixe possível para a leitura contra o genoma é determinado, enquanto considera substituições e/ou Indels e/ou variantes estruturais. Entretanto, para determinar melhor qual das versões modificadas da leitura se encaixa melhor contra o genoma de referência, as alterações propostas precisam ser consideradas e, como tal, uma função de pontuação também pode ser realizada.[0201] In particular, the alignment function operates, at least in part, to align one or more, e.g., all, reads to the reference genome regardless of the presence of one or more portions of divergences, e.g., SNPs, insertions, deletions, structural artifacts, etc. in order to determine where the reads are likely to fit the genome correctly. For example, the one or more reads are compared against the reference genome and the best possible fit for the read against the genome is determined, while considering substitutions and/or Indels and/or structural variants. However, to best determine which of the modified versions of the read fits best against the reference genome, the proposed changes need to be considered and as such a scoring function may also be performed.

[0202] Por exemplo, uma função de pontuação pode ser realizada, por exemplo, como parte uma função de alinhamento geral, pela qual, conforma o módulo de alinhamento realiza sua função e introduz uma ou mais alterações em uma sequência que é comparada com outra, por exemplo, a fim de alcançar um encaixe melhor ou o melhor encaixe entre as duas, para cada alteração que é feita a fim de alcançar o alinhamento melhor, um número é subtraído de uma pontuação inicial, por exemplo, uma pontuação perfeita ou uma pontuação inicial zero, de uma maneira de forma que o alinhamento seja realizado e a pontuação para o alinhamento também seja determinada, tal como onde correspondências são detectadas, a pontuação é aumentada, e para cada alteração introduzida uma penalidade seja incorrida, e, dessa forma, o melhor encaixe para os alinhamentos possíveis pode ser determinado, por exemplo, descobrindo-se qual dentre todas as leituras modificadas possíveis se encaixa ao genoma com a pontuação mais alta. Consequentemente, em diversos casos, a função de alinhamento pode ser configurada para determinar a melhor combinação de alterações que precisam ser feitas para a leitura (ou leituras) para alcançar o alinhamento de maior pontuação, em que o alinhamento pode ser, então, determinado para ser o alinhamento correto ou o mais provável.[0202] For example, a scoring function may be implemented, for example as part of a general alignment function, whereby, as the alignment module performs its function and introduces one or more changes to a sequence that is compared with another, for example in order to achieve a better fit or the best fit between the two, for each change that is made in order to achieve the better alignment, a number is subtracted from an initial score, for example a perfect score or an initial score of zero, in a manner such that the alignment is performed and the score for the alignment is also determined, such that where matches are detected, the score is increased, and for each change introduced a penalty is incurred, and in this way the best fit for the possible alignments can be determined, for example by finding which of all possible modified reads fits the genome with the highest score. Consequently, in many cases, the alignment function can be configured to determine the best combination of changes that need to be made to the read (or reads) to achieve the highest scoring alignment, where the alignment can then be determined to be the correct or most likely alignment.

[0203] Em vista do supracitado, existem, portanto, pelo menos dois objetivos que podem ser alcançados a partir da realização de uma função de alinhamento. Um é um relatório do melhor alinhamento, que inclui a posição no genoma de referência e uma descrição de que alterações são necessárias para fazer com que a leitura corresponde ao segmento de referência naquela posição, e o outro é a pontuação de qualidade de alinhamento. Por exemplo, em diversos casos, a saída do módulo de alinhamento pode ser um Relatório de Alinhamento Incompleto Idiossincrático Compacto, por exemplo, uma corrente de CIGAR, em que a saída de corrente de CIGAR é um relatório que detalha todas as alterações que foram feitas às leituras a fim de alcançar seu melhor alinhamento de encaixe, por exemplo, instruções de alinhamento detalhadas que indicam como a pesquisa realmente se alinha à referência. Tal mostrador de corrente de CIGAR pode ser útil em estágios adicionais de processamento a fim de determinar melhor que, para a dada sequência de nucleotídeos genômica do sujeito, as variações previstas em comparação contra um genoma de referência são, de fato, variações verdadeiras e não apenas devido a um erro de máquina, software ou humano.[0203] In view of the above, there are therefore at least two goals that can be achieved by performing an alignment function. One is a report of the best alignment, which includes the position in the reference genome and a description of what changes are needed to make the read match the reference segment at that position, and the other is an alignment quality score. For example, in many cases, the output of the alignment module may be a Compact Idiosyncratic Incomplete Alignment Report, e.g., a CIGAR stream, where the CIGAR stream output is a report that details all the changes that were made to the reads in order to achieve their best matching alignment, e.g., detailed alignment instructions that indicate how the query actually aligns to the reference. Such a CIGAR current display may be useful in further processing stages in order to better determine that, for a given subject's genomic nucleotide sequence, predicted variations in comparison against a reference genome are, in fact, true variations and not simply due to machine, software or human error.

[0204] Conforme apresentado acima, em diversas modalidades, o alinhamento é tipicamente realizado de uma forma sequencial, em que o algoritmo e/ou firmware recebe os dados de sequência de leitura, tal como a partir de um módulo de mapeamento, pertencendo a uma leitura e um ou mais locais possíveis para onde a leitura pode se mapear potencialmente para o um ou mais genomas de referência, e recebe adicionalmente dados de sequência genômica, tal como a partir de uma ou mais memórias, tais como DRAMs associados, pertencendo à uma ou mais posições no um ou mais genomas de referência para os quais a leitura podem se mapear. Em particular, em diversas modalidades, o módulo de mapeamento processa as leituras, tal como a partir de um arquivo de FASTQ, e mapeia cada uma das mesmas para uma ou mais posições no genoma de referência para onde as mesmas podem possivelmente se alinhar. O alinhador, então, pega essas posições previstas e usa as mesmas para alinhar as leituras ao genoma de referência, tal como construindose um arranjo virtual por meio do qual as leituras podem ser comparadas com o genoma de referência.[0204] As set forth above, in various embodiments, the alignment is typically performed in a sequential manner, wherein the algorithm and/or firmware receives read sequence data, such as from a mapping module, pertaining to a read and one or more possible locations to which the read may potentially map to the one or more reference genomes, and further receives genomic sequence data, such as from one or more memories, such as associated DRAMs, pertaining to one or more positions in the one or more reference genomes to which the read may map. In particular, in various embodiments, the mapping module processes the reads, such as from a FASTQ file, and maps each of them to one or more positions in the reference genome to which they may possibly align. The aligner then takes these predicted positions and uses them to align the reads to the reference genome, such as by constructing a virtual array by which the reads may be compared to the reference genome.

[0205] Na realização dessa função, o alinhador avalia cada posição mapeada para cada leitura individual e avalia particularmente aquelas leituras que se mapeiam para múltiplos locais possíveis no genoma de referência e pontua a possibilidade de que cada posição é a posição correta. O mesmo, então, compara as melhores pontuações, por exemplo, as duas melhores pontuações, e toma uma decisão sobre onde a leitura particular realmente se alinha. Por exemplo, na comparação da primeira e da segunda melhores pontuações de alinhamento, o alinhador olha para a diferença entre as pontuações e, se a diferença entre as mesmas for grande, então, a pontuação de confiança que uma com a maior pontuação é correta será alta. Entretanto, quando a diferença entre as mesmas é pequena, por exemplo, zero, então, a pontuação de confiança sobre ter capacidade para dizer a partir de qual das duas posições a realmente derivada é baixa e mais processamento pode ser útil para ter capacidade para determinar claramente o local verdadeiro no genoma de referência a partir de onde a leitura é derivada.[0205] In performing this function, the aligner evaluates each mapped position for each individual read and particularly evaluates those reads that map to multiple possible locations in the reference genome and scores the likelihood that each position is the correct position. It then compares the best scores, e.g. the two best scores, and makes a decision about where the particular read actually aligns. For example, in comparing the first and second best alignment scores, the aligner looks at the difference between the scores and if the difference between them is large then the confidence score that the one with the higher score is correct will be high. However, when the difference between them is small e.g. zero then the confidence score about being able to tell from which of the two positions the read was actually derived is low and further processing may be useful to be able to clearly determine the true location in the reference genome from which the read is derived.

[0206] Logo, o alinhador está buscando, em parte, pela maior diferença entre a primeira e a segunda melhores pontuações de confiança sobre fazer sua chamada que uma dada leitura se mapeia para um dado local no genoma de referência. Idealmente, a pontuação da melhor escolha possível de alinhamento é significativamente maior que a pontuação para o segundo melhor alinhamento para aquela sequência. Existem muitas formas diferentes que uma metodologia de pontuação de alinhamento pode ser implantada, por exemplo, cada célula do arranjo pode ser pontuada ou uma subporção de células pode ser pontuada, tal como de acordo com os métodos revelados no presente documento. Em diversos casos, os parâmetros de pontuação para correspondências de nucleotídeo, divergências de nucleotídeo, inserções e deleções podem ter quaisquer valores positivos ou negativos ou zero. Em diversos casos, esses parâmetros de pontuação podem ser modificados com base em informações disponíveis. Por exemplo, alinhamentos precisos podem ser alcançados fazendo-se parâmetros de pontuação, incluindo qualquer uma ou todas as pontuações de divergência de nucleotídeo, as pontuações de divergência de nucleotídeo, as penalidades de lacuna (inserção e/ou deleção), as penalidades de abertura de lacuna e/ou as penalidades de lacuna estendido, que variam de acordo com uma pontuação de qualidade de base associada ao nucleotídeo ou à posição de leitura atual. Por exemplo, bônus e/ou penalidades de pontuação podem ser tornados menores quando uma pontuação de qualidade de base indica uma alta probabilidade de um erro de sequenciamento ou outro erro estar presente. A pontuação sensível a qualidade de base pode ser implantada, por exemplo, com o uso de uma tabela de pesquisa fixa ou configurável, acessada com o uso de uma pontuação de qualidade de base, a qual retorna parâmetros de pontuação correspondente.[0206] Thus, the aligner is looking, in part, for the largest difference between the first and second best confidence scores about making its call that a given read maps to a given location in the reference genome. Ideally, the score for the best possible alignment choice is significantly higher than the score for the second best alignment for that sequence. There are many different ways that an alignment scoring methodology can be implemented, for example, every cell in the array can be scored or a subportion of cells can be scored, such as according to the methods disclosed herein. In many cases, the scoring parameters for nucleotide matches, nucleotide mismatches, insertions, and deletions can have any positive or negative value, or zero. In many cases, these scoring parameters can be modified based on available information. For example, accurate alignments can be achieved by making scoring parameters, including any or all of the nucleotide divergence scores, nucleotide divergence scores, gap penalties (insertion and/or deletion), gap opening penalties, and/or extended gap penalties, vary based on a base quality score associated with the current nucleotide or read position. For example, scoring bonuses and/or penalties can be made smaller when a base quality score indicates a high probability that a sequencing error or other error is present. Base quality-sensitive scoring can be implemented, for example, using a fixed or configurable lookup table, accessed using a base quality score, which returns corresponding scoring parameters.

[0207] Em uma implantação de hardware em um circuito integrado, tal como um FPGA ou um ASIC, uma frente de onda de pontuação pode ser implantada como um arranjo linear de pontuação de células, tal como 16 células, ou 32 células, ou 64 células, ou 128 células ou semelhantes. Cada uma dentre as células de pontuação podem ser construídas de elementos de lógica digitais em uma configuração com fio para computar pontuações de alinhamento. Logo, para cada etapa da frente de onda, por exemplo, cada ciclo de relógio, ou alguma outra unidade fixa ou variável de tempo, cada uma das células de pontuação, ou uma porção das células, computa a pontuação ou as pontuações exigidas para uma nova célula na matriz de alinhamento virtual. De modo nocional, as diversas células de pontuação são consideradas como estando em diversas posições na matriz de alinhamento, que correspondem a uma frente de onda de pontuação, conforme discutido no presente documento, por exemplo, ao longo de uma linha reta que se estende da esquerda inferior para a direita superior na matriz. Conforme será bem entendido no campo de projeto de lógica digital, as células de pontuação físicas e sua lógica digital compreendida não precisam ser fisicamente dispostas de forma semelhante no circuito integrado.[0207] In a hardware implementation on an integrated circuit, such as an FPGA or an ASIC, a scoring wavefront may be implemented as a linear array of scoring cells, such as 16 cells, or 32 cells, or 64 cells, or 128 cells, or the like. Each of the scoring cells may be constructed of digital logic elements in a wired configuration to compute alignment scores. Thus, for each step of the wavefront, e.g., each clock cycle, or some other fixed or variable unit of time, each of the scoring cells, or a portion of the cells, computes the score or scores required for a new cell in the virtual alignment matrix. Notionally, the various scoring cells are considered to be at various positions in the alignment matrix, which correspond to a scoring wavefront, as discussed herein, e.g., along a straight line extending from lower left to upper right in the matrix. As will be well understood in the field of digital logic design, the physical scoring cells and their underlying digital logic need not be physically arranged similarly on the integrated circuit.

[0208] Consequentemente, uma vez que a frente de onda leva etapas para varrer através da matriz de alinhamento virtual, as posições nocionais das células de pontuação atualizam, consequentemente, cada célula, por exemplo, “movendo” de modo nocional uma etapa para a direita ou, por exemplo, uma etapa para baixo na matriz de alinhamento. Todas as células de pontuação fazem o mesmo movimento nocional relativo, mantendo a disposição da frente de onda diagonal intacta. Cada vez que a frente de onda se move para uma nova posição, por exemplo, com uma etapa para baixo vertical ou uma etapa para a direita horizontal na matriz, as células de pontuação chegam em novas posições nocionais e computam as pontuações de alinhamento para as células de matriz de alinhamento virtuais que as mesmas entraram. Em tal implantação, células de pontuação vizinhas no arranjo linear são acopladas para comunicar pesquisa (leitura) de nucleotídeos, nucleotídeos de referência e pontuações de alinhamento anteriormente calculadas. Os nucleotídeos da janela de referência podem ser alimentados sequencialmente em uma extremidade da frente de onda, por exemplo, a célula de pontuação direita superior no arranjo linear, e pode comutar de lá sequencialmente para baixo no comprimento da frente de onda, de forma que, em qualquer dado tempo, um segmento de nucleotídeos de referência que tem comprimento igual ao número de células de pontuação esteja presente dentro das células, um nucleotídeo sucessivo em cada célula de pontuação sucessiva.[0208] Accordingly, as the wavefront takes steps to sweep through the virtual alignment matrix, the notional positions of the scoring cells update accordingly, each cell, e.g., notionally “moving” one step to the right or, e.g., one step down in the alignment matrix. All scoring cells make the same relative notional movement, keeping the diagonal wavefront arrangement intact. Each time the wavefront moves to a new position, e.g., with a vertical step down or a horizontal step to the right in the matrix, the scoring cells arrive at new notional positions and compute alignment scores for the virtual alignment matrix cells they entered. In such an implementation, neighboring scoring cells in the linear array are coupled to communicate nucleotide lookup (readout), reference nucleotides, and previously computed alignment scores. The reference window nucleotides may be fed sequentially into one end of the wavefront, e.g. the upper right scoring cell in the linear array, and may switch from there sequentially down the length of the wavefront, such that at any given time a segment of reference nucleotides having a length equal to the number of scoring cells is present within the cells, one successive nucleotide in each successive scoring cell.

[0209] Por exemplo, cada vez que as etapas de frente de onda são horizontais, outro nucleotídeo de referência é alimentado na célula direita superior e outros nucleotídeos de referência comutam para a esquerda inferior através da frente de onda. Essa comutação de nucleotídeos de referência pode ser a realidade subjacente do movimento nocional da frente de onda de células de pontuação para a direita através da matriz de alinhamento. Logo, os nucleotídeos da leitura podem ser alimentados sequencialmente na extremidade oposta da frente de onda, por exemplo, a célula de pontuação esquerda inferior no arranjo linear, e comutar de lá sequencialmente para cima no comprimento da frente de onda, de forma que, em qualquer dado tempo, um segmento de nucleotídeos de pesquisa que tem comprimento igual ao número de células de pontuação esteja presente dentro das células, um nucleotídeo sucessivo em cada célula de pontuação sucessiva. Do mesmo modo, cada vez que as etapas de frente de onda são verticais, outro nucleotídeo de pesquisa é alimentado na célula esquerda inferior e outros nucleotídeos de pesquisa se comutam para a direita superior através da frente de onda. Essa comutação de nucleotídeos de pesquisa é a realizada subjacente do movimento nocional da frente de onda de células de pontuação para baixo através da matriz de alinhamento. Consequentemente, comandando-se uma comutação de nucleotídeos de referência, a frente de onda pode ser movia um degrau horizontalmente, e comandando-se uma comutação de nucleotídeos de pesquisa, a frente de onda pode ser movida um degrau verticalmente. Logo, para produzir movimento de frente de onda geralmente diagonal, tal como para seguir um alinhamento típico de sequências de pesquisa e referência sem inserções ou deleções, etapas de frente de onda podem ser comandadas em direções vertical e horizontal alternantes.[0209] For example, each time the wavefront steps horizontally, another reference nucleotide is fed into the upper right cell and other reference nucleotides commute to the lower left across the wavefront. This commutation of reference nucleotides may be the underlying reality of the notional movement of the wavefront of scoring cells to the right across the alignment matrix. Thus, readout nucleotides may be fed sequentially into the opposite end of the wavefront, e.g., the lower left scoring cell in the linear array, and commute from there sequentially up the length of the wavefront, such that at any given time, a segment of query nucleotides having a length equal to the number of scoring cells is present within the cells, one successive nucleotide in each successive scoring cell. Similarly, each time the wavefront steps are vertical, another query nucleotide is fed into the lower left cell and other query nucleotides switch to the upper right across the wavefront. This switching of query nucleotides is the underlying effect of the notional movement of the scoring cell wavefront down through the alignment matrix. Consequently, by commanding a reference nucleotide switch, the wavefront can be moved one step horizontally, and by commanding a query nucleotide switch, the wavefront can be moved one step vertically. Thus, to produce generally diagonal wavefront movement, such as to follow a typical alignment of query and reference sequences without insertions or deletions, wavefront steps can be commanded in alternating vertical and horizontal directions.

[0210] Consequentemente, células de pontuação vizinhas no arranjo linear podem ser acopladas para comunicar pontuações de alinhamento anteriormente calculadas. Em diversos algoritmos de pontuação de alinhamento, tal como um Smith-Waterman ou Needleman-Wunsch, ou tal variante, a pontuação (ou pontuações) de alinhamento em cada célula da matriz de alinhamento virtual pode ser calculada com o uso de pontuações anteriormente calculadas em outras células da matriz, tal como as três células posicionadas imediatamente à esquerda da célula atual, acima da célula atual, e diagonalmente à esquerda superior da célula atual. Quando uma célula de pontuação calcula nova pontuação (ou pontuações) para outra posição de matriz que a mesma entrou, a mesma precisa recuperar tais pontuações anteriormente calculadas que correspondem a tais outras posições de matriz. Essas pontuações anteriormente calculadas podem ser obtidas a partir do armazenamento de pontuações anteriormente calculadas dentro da mesma célula e/ou a partir do armazenamento de pontuações anteriormente calculadas na uma ou duas células de pontuação vizinhas no arranjo linear. Isso é devido ao fato de que as três posições de pontuação contribuintes na matriz de alinhamento virtual (imediatamente à esquerda, acima e diagonalmente à esquerda superior) teriam sido pontuadas pela célula de pontuação atual ou por uma de suas células de pontuação vizinhas no arranjo linear.[0210] Accordingly, neighboring scoring cells in the linear array may be coupled to communicate previously calculated alignment scores. In various alignment scoring algorithms, such as a Smith-Waterman or Needleman-Wunsch, or such variant, the alignment score (or scores) in each cell of the virtual alignment matrix may be calculated using scores previously calculated in other cells of the matrix, such as the three cells positioned immediately to the left of the current cell, above the current cell, and diagonally to the upper left of the current cell. When a scoring cell calculates new score (or scores) for another matrix position that it has entered, it needs to retrieve such previously calculated scores that correspond to such other matrix positions. Such previously calculated scores may be obtained from the storage of previously calculated scores within the same cell and/or from the storage of previously calculated scores in the one or two neighboring scoring cells in the linear array. This is due to the fact that the three contributing scoring positions in the virtual alignment matrix (immediately left, above, and diagonally to the upper left) would have been scored by the current scoring cell or by one of its neighboring scoring cells in the linear array.

[0211] Por exemplo, a célula imediatamente à esquerda na matriz teria sido pontuada pela célula de pontuação atual, se a etapa de frente de onda mais recente for horizontal (para a direita), ou teria sido pontuada pela célula esquerda inferior vizinha no arranjo linear, se a etapa de frente de onda mais recente for vertical (para baixo). De modo semelhante, a célula imediatamente acima na matriz teria sido pontuada pela célula de pontuação atual, se a etapa de frente de onda mais recente fosse vertical (para baixo), ou teria sido pontuada pela célula direita superior vizinha no arranjo linear, se a etapa de frente de onda mais recente fosse horizontal (para a direita). Particularmente, a célula diagonalmente esquerda superior na matriz teria sido pontuada pela célula de pontuação atual, se as duas etapas de frente de onda mais recentes estivessem em direções diferentes, por exemplo, para baixo, então, para a esquerda, ou para a direita, então, para baixo, ou teria sido pontuada pela célula direita superior vizinha no arranjo linear, se as duas etapas de frente de onda mais recentes fossem ambas horizontais (para a direita), ou teria sido pontuada pela célula esquerda inferior vizinha no arranjo linear, se as duas etapas de frente de onda mais recentes fosse ambas verticais (para baixo).[0211] For example, the cell immediately to the left in the array would have been scored by the current scoring cell if the most recent wavefront step is horizontal (to the right), or would have been scored by the neighboring lower left cell in the linear array if the most recent wavefront step is vertical (down). Similarly, the cell immediately above in the array would have been scored by the current scoring cell if the most recent wavefront step was vertical (down), or would have been scored by the neighboring upper right cell in the linear array if the most recent wavefront step was horizontal (to the right). In particular, the diagonally upper left cell in the array would have been scored by the current scoring cell if the two most recent wavefront steps were in different directions, e.g. down then left, or right then down, or would have been scored by the neighboring upper right cell in the linear array if the two most recent wavefront steps were both horizontal (to the right), or would have been scored by the neighboring lower left cell in the linear array if the two most recent wavefront steps were both vertical (to the bottom).

[0212] Consequentemente, considerando-se informações na última ou nas últimas duas direções de etapa de frente de onda, uma célula de pontuação pode selecionar as pontuações anteriormente calculadas apropriadas, acessando as mesmas a própria, e/ou dentro de células de pontuação vizinhas, utilizando o acoplamento entre células vizinhas. Em uma variação, as células de pontuação nas duas extremidades da frente de onda podem ter entradas de pontuação para fora conectadas com fio para pontuações de valor inválidas, ou zeradas, ou mínimas, de forma que as mesmas não afetem novos cálculos de pontuação nessas células extremas. Uma frente de onda que é implantada, dessa forma, em um arranjo linear de células de pontuação, com tal acoplamento para comutar os nucleotídeos de referência e pesquisa através do arranjo em direções opostas, a fim de mover de modo nocional a frente de onda em etapas vertical e horizontal, por exemplo, diagonal, e acoplamento para acessar pontuações anteriormente computadas por meio de células vizinhas a fim de computar pontuação (ou pontuações) de alinhamento em novas posições de célula de matriz virtuais inseridas pela frente de onda, é, consequentemente, possível pontuar uma banda de células na matriz virtual, a largura da frente de onda, tal como comandando-se etapas sucessivas da frente de onda para varrer através da matriz.[0212] Accordingly, given information in the last one or two wavefront step directions, a scoring cell may select appropriate previously calculated scores by accessing them within itself, and/or within neighboring scoring cells, using coupling between neighboring cells. In one variation, scoring cells at the two ends of the wavefront may have outwardly wired scoring inputs for invalid, or zero, or minimum value scores, such that they do not affect new score calculations in those extreme cells. A wavefront that is thus deployed in a linear array of scoring cells, with such coupling to switch the reference and query nucleotides through the array in opposite directions in order to notionally move the wavefront in vertical and horizontal, e.g., diagonal, steps, and coupling to access previously computed scores via neighboring cells in order to compute alignment score (or scores) at new virtual array cell positions inserted by the wavefront, it is consequently possible to score a band of cells in the virtual array, the width of the wavefront, such as by commanding successive steps of the wavefront to sweep across the array.

[0213] Para uma nova leitura e janela de referência serem alinhadas, portanto, a frente de onda pode começar posicionada dentro da matriz de pontuação ou, vantajosamente, pode inserir gradualmente a matriz de pontuação de fora, começando, por exemplo, à esquerda, ou acima, ou diagonalmente à esquerda e acima do canto esquerdo superior da matriz. Por exemplo, a frente de onda pode começar com sua célula de pontuação esquerda superior posicionada logo à esquerda da célula esquerda superior da matriz virtual e a frente de onda pode, então, varrer para a direita na matriz por uma série de etapas horizontais, pontuando uma banda horizontal de células na região esquerda superior da matriz. Quando a frente de onda alcança uma relação de alinhamento prevista entre a referência e a pesquisa ou quando uma correspondência é detectada a partir de pontuações de alinhamento crescentes, a frente de onda pode começar a varrer diagonalmente da direita inferior, por etapas vertical e horizontal alternantes, pontuando uma banda diagonal de células através do meio da matriz. Quando a célula de pontuação de frente de onda esquerda inferior alcança o fundo da matriz de alinhamento, a frente de onda pode começar a varrer para a direita novamente por etapas horizontais sucessivas, até que parte ou todas as células de frente de onda varram fora dos limites da matriz de alinhamento, pontuando uma banda horizontal de células na região direita inferior da matriz.[0213] For a new read and reference window to be aligned, therefore, the wavefront may begin positioned within the scoring array or, advantageously, may gradually enter the scoring array from outside, starting, for example, to the left of, or above, or diagonally left and above the upper left corner of the array. For example, the wavefront may begin with its upper left scoring cell positioned just to the left of the upper left cell of the virtual array, and the wavefront may then sweep right across the array by a series of horizontal steps, scoring a horizontal band of cells in the upper left region of the array. When the wavefront achieves a predicted alignment relationship between the reference and the query or when a match is detected from increasing alignment scores, the wavefront may begin to sweep diagonally from the lower right, by alternating vertical and horizontal steps, scoring a diagonal band of cells across the middle of the array. When the lower left wavefront scoring cell reaches the bottom of the alignment array, the wavefront may begin to sweep to the right again by successive horizontal steps, until some or all of the wavefront cells sweep outside the boundaries of the alignment array, scoring a horizontal band of cells in the lower right region of the array.

[0214] Um ou mais de tais procedimentos de alinhamento podem ser realizados por qualquer algoritmo de alinhamento adequado, tal como um algoritmo de alinhamento de Needleman-Wunsch e/ou um algoritmo de alinhamento de SmithWaterman, que pode ter sido modificado para acomodar a funcionalidade descrita no presente documento. Em geral, ambos esses algoritmos e aqueles semelhantes aos mesmos desempenham basicamente, em alguns casos, de uma forma semelhante. Por exemplo, conforme apresentado acima, esses algoritmos de alinhamento constroem tipicamente o arranjo virtual de uma forma semelhante de forma que, em diversos casos, o limite superior horizontal pode ser configurado para representar a sequência genômica de referência, a qual pode ser disposta através da fileira superior do arranjo de acordo com sua composição de par de base. Do mesmo modo, o limite vertical pode ser configurado para representar as sequências de pesquisa sequenciadas e mapeadas que foram posicionadas em ordem, para baixo ao longo da primeira coluna, de forma que sua ordem de sequência de nucleotídeos seja geralmente correspondida à sequência de nucleotídeos da referência para a qual os mesmos se mapearam. As células de intervenção podem ser, então, populadas com pontuações sobre a probabilidade de que a base relevante da pesquisa em uma dada posição está posicionada naquele local relativo à referência. Na realização dessa função, uma faixa pode ser movida diagonalmente através da matriz que popula pontuações dentro das células de intervenção e a probabilidade para cada base da pesquisa estar na posição indicada pode ser determinada.[0214] One or more such alignment procedures may be performed by any suitable alignment algorithm, such as a Needleman-Wunsch alignment algorithm and/or a Smith-Waterman alignment algorithm, which may have been modified to accommodate the functionality described herein. In general, both of these algorithms and those similar thereto perform in some cases in a substantially similar manner. For example, as set forth above, these alignment algorithms typically construct the virtual array in a similar manner such that, in many cases, the upper horizontal boundary may be configured to represent the reference genomic sequence, which may be arranged across the top row of the array according to its base pair composition. Likewise, the vertical boundary may be configured to represent the sequenced and mapped query sequences that have been positioned in order, down the first column, such that their nucleotide sequence order generally matches the nucleotide sequence of the reference to which they map. The intervention cells can then be populated with scores on the probability that the relevant search base at a given position is positioned at that location relative to the reference. In performing this function, a range can be moved diagonally across the matrix that populates scores within the intervention cells and the probability for each search base to be at the indicated position can be determined.

[0215] Em relação a uma função de alinhamento de Needleman-Wunsch, a qual gera alinhamentos globais (ou semiglobais) ideais, o alinhamento de toda a sequência de leitura a algum segmento do genoma de referência, o direcionamento de frente de onda pode ser configurado de forma que a mesma varra tipicamente todo o caminho a partir da borda superior da matriz de alinhamento até a borda inferior. Quando a varredura de frente de onda está completa, a pontuação máxima na borda inferior da matriz de alinhamento (que corresponde ao fim da leitura) é selecionada e o alinhamento é rastreado em retorno para uma célula na borda superior da matriz (que corresponde ao início da leitura). Em diversos dos casos revelados no presente documento, as podem ter qualquer comprimento, pode ter qualquer tamanho, e não precisam ter parâmetros de leitura extensivos sobre como o alinhamento é realizado, por exemplo, em diversos casos, a leitura pode ser tão grande quanto um cromossomo. Em tal caso, entretanto, o tamanho de memória e o comprimento de cromossomo podem ser um fator limitante.[0215] With respect to a Needleman-Wunsch alignment function, which generates optimal global (or semi-global) alignments, the alignment of the entire read sequence to some segment of the reference genome, the wavefront steering may be configured such that it typically scans all the way from the top edge of the alignment matrix to the bottom edge. When the wavefront scan is complete, the maximum score at the bottom edge of the alignment matrix (which corresponds to the end of the read) is selected and the alignment is traced back to a cell at the top edge of the matrix (which corresponds to the start of the read). In many of the cases disclosed herein, the reads may be of any length, may be of any size, and need not have extensive parameters as to how the alignment is performed, e.g., in many cases, the read may be as large as a chromosome. In such a case, however, memory size and chromosome length may be a limiting factor.

[0216] Em relação a um algoritmo de Smith-Waterman, o qual gera alinhamentos de local ideais, o alinhamento de toda a sequência de leitura ou de parte da sequência de leitura a algum segmento do genoma de referência, esse algoritmo pode ser configurado para encontrar a melhor pontuação possível com base em um alinhamento completo ou parcial da leitura. Logo, em diversos casos, a banda pontuada de frente de onda pode não ser estendida para as bordas superior e/ou inferior da matriz de alinhamento, tal como se uma leitura muito longa tivesse apenas sementes em seu mapeamento médio para o genoma de referência, mas, comumente, a frente de onda ainda pode pontuar do topo para o fundo da matriz. O alinhamento de local é tipicamente alcançado por meio de dois ajustes. Primeiro, as pontuações de alinhamento nunca são permitidas a cair abaixo de zero (ou algum outro piso) e, se uma pontuação de célula calculada de outro modo fosse negativa, uma pontuação zero é substituída, representando o início de um novo alinhamento. Em segundo lugar, a pontuação máxima de alinhamento produzida em qualquer célula na matriz, não necessariamente ao longo da borda inferior, é usada como o terminal do alinhamento. O alinhamento é rastreado em retorno a partir dessa pontuação máxima para cima e para a esquerda através da matriz para uma pontuação zero, a qual é usada como a posição inicial do alinhamento de local, mesmo se a mesma não estiver na fileira superior da matriz.[0216] With respect to a Smith-Waterman algorithm, which generates optimal site alignments, the alignment of the entire read sequence or part of the read sequence to some segment of the reference genome, this algorithm can be configured to find the best possible score based on a complete or partial alignment of the read. Thus, in many cases, the wavefront scoring band may not extend to the upper and/or lower edges of the alignment matrix, such as if a very long read had only seeds at its average mapping to the reference genome, but commonly the wavefront may still score from the top to the bottom of the matrix. Site alignment is typically achieved through two adjustments. First, alignment scores are never allowed to fall below zero (or some other floor), and if an otherwise calculated cell score were negative, a zero score is substituted, representing the start of a new alignment. Second, the maximum alignment score produced in any cell in the matrix, not necessarily along the lower edge, is used as the endpoint of the alignment. The alignment is traced back from this maximum score up and left through the matrix to a score of zero, which is used as the starting position of the location alignment, even if it is not in the top row of the matrix.

[0217] Em vista do supracitado, existem diversas trajetórias diferentes possíveis através do arranjo virtual. Em diversas modalidades, a frente de onda começa a partir do canto esquerdo superior do arranjo virtual e se move para baixo em direção a identificadores da pontuação máxima. Por exemplo, os resultados de todos os alinhamentos possíveis podem ser coletados, processados, correlacionados e pontuados para determinar a pontuação máxima. Quando a extremidade de um limite ou a extremidade do arranjo é alcançada e/ou uma computação que leva à pontuação mais alta para todas as células processadas é determinada (por exemplo, a pontuação mais alta geral identificada), então, um rastreamento de retorno pode ser realizado a fim de encontrar a trajetória que foi tomada para alcançar aquela pontuação mais alta. Por exemplo, uma trajetória que leva a uma pontuação máxima prevista pode ser identificada e, uma vez identificada, uma audição pode ser realizada a fim de determinar como aquela pontuação máxima foi derivada, por exemplo, movendo-se para trás seguindo as setas de melhor pontuação alinhamento que refazem a trajetória que levou a alcançar a pontuação máxima identificada, tal como calculada pelas células de frente de onda de pontuação.[0217] In view of the foregoing, there are several different possible trajectories through the virtual array. In various embodiments, the wavefront starts from the upper left corner of the virtual array and moves downward toward identifiers of the maximum score. For example, the results of all possible alignments may be collected, processed, correlated, and scored to determine the maximum score. When the endpoint of a threshold or the endpoint of the array is reached and/or a computation that leads to the highest score for all processed cells is determined (e.g., the highest overall score identified), then a backward trace may be performed in order to find the trajectory that was taken to achieve that highest score. For example, a trajectory that leads to a predicted maximum score may be identified, and once identified, a retracement may be performed in order to determine how that maximum score was derived, for example, by moving backward following the best-scoring alignment arrows that retrace the trajectory that led to achieving the identified maximum score, as computed by the scoring wavefront cells.

[0218] Essa reconstrução para trás ou esse rastreamento de retorno envolve começar de uma pontuação máxima determinada e trabalhar para trás através das células anteriores, navegando o trajeto de células que têm as pontuações que levaram a alcançar a pontuação máxima totalmente para cima da tabela e de volta para um limite inicial, tal como o começo do arranjo ou uma pontuação zero no caso de alinhamento de local. Durante um rastreamento de retorno, tendo alcançado uma célula particular na matriz de alinhamento, a próxima etapa de rastreamento de retorno é para a célula vizinha, imediatamente à esquerda ou acima, ou diagonalmente de cima para a esquerda, que contribuiu com a melhor pontuação que foi selecionada para construir a pontuação na célula atual. Dessa forma, a evolução da pontuação máxima pode ser determinada, descobrindo, desse modo, como a pontuação máxima foi alcançada. O rastreamento de retorno pode terminar em um canto, ou uma borda, ou um limite, ou pode terminar em uma pontuação zero, tal como no canto esquerdo superior do arranjo. Consequentemente, é tal rastreamento de retorno que identifica o alinhamento apropriado e, desse modo, produz o mostrador de filamento CIGAR que representa como a sequência de amostra genômica derivada a partir do indivíduo, ou de uma porção do mesmo, corresponde, ou de outro modo se alinha, à sequência genômica do DNA de referência.[0218] This backward reconstruction or backtracking involves starting from a given maximum score and working backward through the previous cells, navigating the path of cells that have the scores that led to reaching the maximum score all the way up the table and back to a starting boundary, such as the beginning of the array or a score of zero in the case of local alignment. During a backtracking, having reached a particular cell in the alignment matrix, the next backtracking step is to the neighboring cell, immediately to the left or above, or diagonally from top to left, that contributed the best score that was selected to build the score in the current cell. In this way, the evolution of the maximum score can be determined, thereby discovering how the maximum score was reached. The backtracking may end at a corner, or an edge, or a boundary, or it may end at a score of zero, such as the top left corner of the array. Accordingly, it is such backtracking that identifies the appropriate alignment and thereby produces the CIGAR strand display that represents how the genomic sample sequence derived from the individual, or a portion thereof, matches, or otherwise aligns with, the genomic sequence of the reference DNA.

[0219] Uma vez que se determinou para onde cada leitura é mapeada e se determinou adicionalmente a onde cada leitura é alinhada, por exemplo, deu-se a cada leitura relevante uma posição e uma pontuação de qualidade que reflete a probabilidade de que a posição é o alinhamento correto, de forma que a sequência de nucleotídeos para o DNA do sujeito seja conhecida, então, a ordem das diversas leituras e/ou da sequência de ácidos nucleicos genômica do sujeito pode ser verificada, tal como realizando-se uma função de rastreamento de retorno que se move para trás através do arranjo a fim de determinar a identidade de cada ácido nucleico em sua ordem apropriada na sequência de amostra genômica. Consequentemente, em alguns aspectos, a presente revelação é direcionada a uma função de rastreamento de retorno, tal como é parte de um módulo de alinhamento que realiza tanto um alinhamento quanto uma função de rastreamento de retorno, tal como um módulo que pode ser parte de uma segmentação de módulos, tal como uma segmentação que é direcionada a tomar dados de sequência de leitura brutos, tal como a partir de uma amostra genômica de um indivíduo, e mapear e/ou alinhar aqueles dados, em que os dados podem, então, ser classificados.[0219] Once it has been determined where each read maps to and further determined where each read aligns, for example, each relevant read has been given a position and a quality score that reflects the probability that the position is the correct alignment, such that the nucleotide sequence for the subject's DNA is known, then the order of the various reads and/or the subject's genomic nucleic acid sequence can be verified, such as by performing a backtracking function that moves backward through the array to determine the identity of each nucleic acid in its proper order in the genomic sample sequence. Accordingly, in some aspects, the present disclosure is directed to a backtracking function, such as is part of an alignment module that performs both an alignment and a backtracking function, such as a module that may be part of a segmentation of modules, such as a segmentation that is directed to taking raw read sequence data, such as from a genomic sample of an individual, and mapping and/or aligning that data, wherein the data may then be classified.

[0220] Para facilitar a operação de rastreamento de retorno, é útil armazenar um vetor de pontuação para cada célula pontuada na matriz de alinhamento, codificando a decisão de seleção de pontuação. Para implantações de pontuação de SmithWaterman e/ou Needleman-Wunsch clássica com penalidades de lacuna linear, o vetor de pontuação pode codificar quatro possibilidades, as quais podem ser opcionalmente armazenadas como um número inteiro de 2 bits de0a3, por exemplo: 0 = novo alinhamento (pontuação nula selecionada); 1 = alinhamento vertical (pontuação a partir da célula acima selecionada, modificada por penalidade de lacuna); 2 = alinhamento horizontal (pontuação a partir da célula esquerda selecionada, modificada por penalidade de lacuna); 3 = diagonal de alinhamento (pontuação a partir da célula superior e esquerda selecionada, modificada por pontuação de correspondência ou divergência de nucleotídeo). Opcionalmente, a pontuação (ou pontuações) computadas para cada célula de matriz pontuada também pode ser armazenada (além da pontuação de alinhamento máxima alcançada que é armazenada de modo padrão), mas isso não é geralmente necessário para rastreamento de retorno e pode consumir grandes quantidades de memória. A realização de rastreamento de retorno, então, se torna uma questão de seguir os vetores de pontuação; quando o rastreamento de retorno tiver alcançado uma dada célula na matriz, a próxima etapa de rastreamento de retorno é determinada pelo vetor de pontuação armazenado para aquela célula, por exemplo: 0 = terminar rastreamento de retorno; 1 = rastreamento de retorno para cima; 2 = rastreamento de retorno para a esquerda; 3 = rastreamento de retorno diagonalmente de cima para a esquerda.[0220] To facilitate the backtracking operation, it is useful to store a score vector for each scored cell in the alignment matrix, encoding the score selection decision. For implementations of classical Smith-Waterman and/or Needleman-Wunsch scoring with linear gap penalties, the score vector may encode four possibilities, which may optionally be stored as a 2-bit integer from 0 to 3, for example: 0 = new alignment (zero score selected); 1 = vertical alignment (score from cell above selected, modified by gap penalty); 2 = horizontal alignment (score from cell left selected, modified by gap penalty); 3 = diagonal alignment (score from cell top selected, modified by match score or nucleotide divergence). Optionally, the score (or scores) computed for each scored matrix cell can also be stored (in addition to the maximum alignment score achieved which is stored by default), but this is not generally necessary for backtracking and can consume large amounts of memory. Performing backtracking then becomes a matter of following the score vectors; when backtracking has reached a given cell in the matrix, the next step in backtracking is determined by the score vector stored for that cell, e.g.: 0 = end backtracking; 1 = backtracking upwards; 2 = backtracking to the left; 3 = backtracking diagonally from top to left.

[0221] Tais vetores de pontuação podem ser armazenados em uma tabela bidimensional disposta de acordo com as dimensões da matriz de alinhamento, em que apenas entradas que correspondem a células pontuadas pela frente de onda são populadas. Alternativamente, para conservar memória, registrar mais facilmente vetores de pontuação conforme os mesmos são gerados e acomodar mais facilmente as matrizes de alinhamento de diversos tamanhos, os vetores de pontuação podem ser armazenados em uma tabela com cada fileira dimensionada para armazenar vetores de pontuação a partir de uma única frente de onda de células de pontuação, por exemplo, 128 bits para armazenar 64 vetores de pontuação de 2 bits a partir de uma frente de onda de 64 células, e um número de fileiras igual ao número máximo de etapas de frente de onda em uma operação de alinhamento. Adicionalmente, para essa opção, um registro pode ser mantido das direções das diversas etapas de frente de onda, por exemplo, armazenando um bit extra, por exemplo, 129o, em cada fileira da tabela, codificando, por exemplo, 0 para etapa de frente de onda vertical que precede essa posição de frente de onda e 1 para etapa de frente de onda horizontal que precede essa posição de frente de onda. Esse bit extra pode ser usado durante rastreamento de retorno para rastrear a quais posições de matriz de pontuação virtual os vetores de pontuação em cada fileira da tabela correspondem, de forma que o vetor de pontuação apropriado possa ser recuperado após cada etapa de rastreamento de retorno sucessiva. Quando uma etapa de rastreamento de retorno é vertical ou horizontal, o próximo vetor de pontuação deve ser recuperado a partir da fileira da tabela anterior, mas, quando uma etapa de rastreamento de retorno é diagonal, o próximo vetor de pontuação deve ser recuperado a partir das duas fileiras anteriores, devido ao fato de que a frente de onda teve que fazer duas etapas para se mover da pontuação de qualquer uma célula para a pontuação da célula diagonalmente da direita para baixo a partir da mesma.[0221] Such scoring vectors may be stored in a two-dimensional table arranged according to the dimensions of the alignment matrix, in which only entries that correspond to cells scored by the wavefront are populated. Alternatively, to conserve memory, more easily record scoring vectors as they are generated, and more easily accommodate alignment matrices of varying sizes, the scoring vectors may be stored in a table with each row sized to store scoring vectors from a single wavefront of scoring cells, e.g., 128 bits to store 64 2-bit scoring vectors from a 64-cell wavefront, and a number of rows equal to the maximum number of wavefront steps in an alignment operation. Additionally, for this option, a record may be kept of the directions of the various wavefront steps, for example by storing an extra bit, e.g. 129°, in each row of the table, coding, for example, 0 for the vertical wavefront step preceding that wavefront position and 1 for the horizontal wavefront step preceding that wavefront position. This extra bit may be used during backtracking to keep track of which virtual score matrix positions the score vectors in each row of the table correspond to, so that the appropriate score vector can be retrieved after each successive backtracking step. When a backtracking step is either vertical or horizontal, the next score vector must be retrieved from the previous table row, but when a backtracking step is diagonal, the next score vector must be retrieved from the previous two rows, due to the fact that the wavefront had to make two steps to move from the score of any one cell to the score of the cell diagonally down from it.

[0222] No caso de pontuação de lacuna afim, as informações de vetor de pontuação podem ser estendidas, por exemplo, para 4 bits por célula pontuada. Além, por exemplo, do indicador de direção de escolha de pontuação de 2 bits, duas sinalizações de 1 podem ser adicionadas, uma sinalização de extensão vertical e uma sinalização de extensão horizontal. De acordo com os métodos de extensões de pontuação de lacuna afim para algoritmos de alinhamento de Smith-Waterman ou Needleman-Wunsch ou semelhantes, para cada célula, além da pontuação de alinhamento primária que representa o alinhamento de melhor pontuação que termina naquela célula, uma “pontuação vertical” deve ser gerada, a qual corresponde à pontuação máxima de alinhamento que alcança célula com uma etapa vertical final e uma “pontuação horizontal” deve ser gerada, a qual corresponde à pontuação máxima de alinhamento que alcança aquela célula com uma etapa horizontal final; e, quando se computa qualquer uma das três pontuações, uma etapa vertical na célula pode ser computada cm o uso da pontuação primária a partir da célula acima menos uma penalidade de abertura de lacuna ou com o uso da pontuação vertical a partir da célula acima menos uma penalidade de lacuna estendido, a que for maior; e uma etapa horizontal na célula pode ser computada com o uso da pontuação primária a partir da célula à esquerda menos uma penalidade de abertura de lacuna ou com o uso da pontuação horizontal a partir da célula à esquerda menos uma penalidade de extensão de lacuna, a que for maior. Em casos em que a pontuação vertical menos uma penalidade de extensão de lacuna é selecionada, a sinalização de extensão vertical no vetor de pontuação deve ser definida, por exemplo, “1”, e, de outro modo, a mesma deve ser indefinida, por exemplo, “0”.[0222] In the case of affine gap scoring, the scoring vector information may be extended, for example, to 4 bits per scored cell. In addition to, for example, the 2-bit score choice direction indicator, two 1 flags may be added, a vertical extension flag and a horizontal extension flag. According to the methods of affine gap scoring extensions to Smith-Waterman or Needleman-Wunsch or similar alignment algorithms, for each cell, in addition to the primary alignment score representing the best-scoring alignment ending in that cell, a “vertical score” must be generated which corresponds to the maximum alignment score reaching that cell with a final vertical step, and a “horizontal score” must be generated which corresponds to the maximum alignment score reaching that cell with a final horizontal step; and when computing any of the three scores, a vertical step in the cell may be computed using the primary score from the cell above minus a gap opening penalty or using the vertical score from the cell above minus a gap extension penalty, whichever is greater; and a horizontal step in the cell may be computed using the primary score from the cell to the left minus a gap opening penalty or using the horizontal score from the cell to the left minus a gap extension penalty, whichever is greater. In cases where the vertical score minus a gap extension penalty is selected, the vertical extension flag in the score vector shall be set, e.g., "1", and otherwise it shall be unset, e.g., "0".

[0223] Nos casos em que a pontuação horizontal menos uma penalidade de extensão de lacuna é selecionada, a sinalização de extensão horizontal no vetor de pontuação deve ser definida, por exemplo, “1”, e de outro modo deve ser indefinida, por exemplo, “0”. Durante o rastreamento de retorno para pontuação de lacuna afim, a qualquer momento que o rastreamento de retorno tome uma etapa vertical para cima a partir de uma dada célula, se essa sinalização de extensão vertical do vetor de pontuação da célula for definido, a etapa de rastreamento de retorno seguinte precisa ser também vertical, a despeito do vetor de pontuação para a célula acima. Do mesmo modo, cada vez que o rastreamento de retorno toma uma etapa horizontal para a esquerda a partir de uma dada célula, se aquela sinalização de extensão horizontal do vetor de pontuação da célula for definida, a etapa de rastreamento de retorno a seguir também precisa ser horizontal, independentemente do vetor de pontuação para a célula à esquerda. Consequentemente, tal tabela de vetores de pontuação, por exemplo, 129 bits por fileira para 64 células com o uso de pontuação de lacuna linear ou 257 bits por fileira para 64 células com o uso de pontuação de lacuna afim, com algum número NR de fileiras, é adequada para suportar o rastreamento de retorno após concluir a pontuação de alinhamento em que a pontuação da frente de onda levou NR etapas ou menos.[0223] In cases where horizontal scoring minus a gap extension penalty is selected, the horizontal extension flag in the scoring vector must be set, e.g., “1”, and otherwise must be undefined, e.g., “0”. During backtracking for affine gap scoring, any time the backtracking takes a vertical step upward from a given cell, if that vertical extension flag of the cell's scoring vector is set, the next backtracking step must also be vertical, regardless of the scoring vector for the cell above. Likewise, each time the backtracking takes a horizontal step leftward from a given cell, if that horizontal extension flag of the cell's scoring vector is set, the next backtracking step must also be horizontal, regardless of the scoring vector for the cell to the left. Consequently, such a scoring vector table, e.g., 129 bits per row for 64 cells using linear gap scoring or 257 bits per row for 64 cells using affine gap scoring, with some NR number of rows, is suitable to support backtracking after completing alignment scoring where wavefront scoring took NR steps or less.

[0224] Por exemplo, quando se alinha leituras de 300 nucleotídeos, o número de etapas de frente de onda exigido pode ser sempre menor que 1.024, de forma que a tabela possa ser 257 x 1.024 bits ou aproximadamente 32 quilobytes, o que, em muitos casos, pode ser uma memória local razoável dentro do circuito integrado. Porém, se muitas leituras longas tiverem que ser alinhadas, por exemplo, 100.000 nucleotídeos, as exigências de memória para vetores de pontuação podem ser bastante grandes, por exemplo, 8 megabytes, o que pode ser muito custoso para incluir como uma memória local dentro do circuito integrado. Para cada suporte, as informações de vetor de pontuação podem ser registradas em memória de massa fora do circuito integrado, por exemplo, DRAM, mas, então, as exigências de largura de banda, por exemplo, 257 bits por ciclo de relógio por módulo de alinhador, podem ser excessivas, as quais podem congestionar e reduzir dramaticamente o desempenho de alinhador. Consequentemente, é desejável ter um método para dispor de vetores de pontuação antes de completar o alinhamento, de forma que suas exigências de armazenamento possam ser mantidas unidas, por exemplo, para realizar rastreamentos de retorno incrementais, gerando correntes de CIGAR parciais incrementais, por exemplo, a partir de porções antecedentes de um histórico de vetor de pontuação do alinhamento, de forma que tais porções antecedentes dos vetores de pontuação possam ser, então, descartadas. O desafio é que o rastreamento de retorno deve começar na célula de pontuação máxima do terminal de alinhamento, a qual é desconhecida até que a pontuação de alinhamento seja concluída, de forma que qualquer rastreamento de retorno que começou antes que o alinhamento fosse concluído possa começar a partir da célula errada, não ao longo do trajeto de alinhamento ideal final eventual.[0224] For example, when aligning reads of 300 nucleotides, the number of wavefront steps required may always be less than 1,024, so that the table may be 257 x 1,024 bits or approximately 32 kilobytes, which in many cases may be a reasonable local memory within the integrated circuit. However, if many long reads are to be aligned, e.g. 100,000 nucleotides, the memory requirements for scoring vectors may be quite large, e.g. 8 megabytes, which may be too expensive to include as a local memory within the integrated circuit. For each holder, the scoring vector information may be recorded in mass memory outside the integrated circuit, e.g. DRAM, but then the bandwidth requirements, e.g. 257 bits per clock cycle per aligner module, may be excessive, which may bottleneck and dramatically reduce aligner performance. Consequently, it is desirable to have a method for disposing of scoring vectors before the alignment is complete, so that their storage requirements can be kept together, e.g., to perform incremental backtracking, generating incremental partial CIGAR streams, e.g., from antecedent portions of an alignment scoring vector history, so that such antecedent portions of the scoring vectors can then be discarded. The challenge is that the backtracking must start at the alignment terminal's maximum scoring cell, which is unknown until the alignment scoring is complete, so that any backtracking that started before the alignment was complete may start from the wrong cell, not along the eventual final optimal alignment path.

[0225] Logo, um método é dado para realizar rastreamento de retorno incremental a partir de informações de alinhamento parcial, por exemplo, que compreendem informações de vetor de pontuação parciais para a matriz de células de alinhamento pontuada até o momento. A partir de um limite de alinhamento atualmente concluído, por exemplo, uma posição de frente de onda pontuada particular, o rastreamento de retorno é iniciado a partir de todas as posições de célula no limite. Tal rastreamento de retorno a partir de todas as células de limite pode ser realizado sequencialmente, ou vantajosamente, especialmente em uma implantação de hardware, todos os rastreamentos de retorno podem ser realizados em conjunto. Não é necessário extrair notações de alinhamento, por exemplo, correntes de CIGAR, desses múltiplos rastreamentos de retorno; apenas determinar por quais posições de matriz de posições de alinhamento as mesmas passam durante o rastreamento de retorno. Em uma implantação de rastreamento de retorno simultâneo a partir de um limite de pontuação, diversos registros de 1 bit podem ser utilizados, correspondendo ao número de células de alinhamento inicializadas, por exemplo, todas para “1”s, que representam se qualquer um dos rastreamentos de retorno passou por uma posição correspondente. Para cada etapa de rastreamento de retorno simultâneo, vetores de pontuação que correspondem a todos os “1”s atuais nesses registros, por exemplo, a partir de uma fileira da tabela de vetor de pontuação, podem ser examinados para determinar uma próxima etapa de rastreamento de retorno que corresponde a cada “1” nos registros, levando a uma posição seguinte para cada “1” nos registros, para a próxima etapa de rastreamento de retorno simultânea.[0225] Thus, a method is provided for performing incremental backtracking from partial alignment information, e.g., comprising partial scoring vector information for the alignment cell array scored thus far. Starting from a currently completed alignment boundary, e.g., a particular scored wavefront position, backtracking is initiated from all cell positions on the boundary. Such backtracking from all boundary cells may be performed sequentially, or advantageously, especially in a hardware implementation, all backtracks may be performed together. It is not necessary to extract alignment notations, e.g., CIGAR streams, from these multiple backtracks; only to determine which alignment position array positions they pass through during backtracking. In a simultaneous backtracking implementation from a score boundary, multiple 1-bit registers can be used, corresponding to the number of alignment cells initialized, e.g., all to “1”s, representing whether any of the backtracks passed through a matching position. For each simultaneous backtracking step, score vectors that correspond to all current “1”s in those registers, e.g., from a row of the score vector table, can be examined to determine a next backtracking step that corresponds to each “1” in the registers, leading to a next position for each “1” in the registers, for the next simultaneous backtracking step.

[0226] De modo importante, é facilmente possível que múltiplos “1”s nos registros se fundam em posições comuns, que correspondem a múltiplos dos rastreamentos de retorno simultâneos que se fundem em trajetos de rastreamento de retorno comuns. Uma vez que dois ou mais dos rastreamentos de retorno simultâneos se fundem, os mesmos permanecem fundidos indefinidamente, devido ao fato de que, doravante, os mesmos utilizarão informações de vetor de pontuação da mesma célula. Observou-se, empiricamente e por motivos teóricos, que, com alta probabilidade, todos os rastreamentos de retorno simultâneos se fundem em um trajeto de rastreamento de retorno singular, em um número relativamente pequeno de etapas de rastreamento de retorno, as quais, por exemplo, podem ser um múltiplo pequeno, por exemplo, 8, vezes o número de células de pontuação na frente de onda. Por exemplo, com uma frente de onda de 64 células, com alta probabilidade, todos os rastreamentos de retorno a partir de um dado limite de frente de onda se fundem em um único trajeto de rastreamento de retorno dentro de 512 etapas de rastreamento de retorno. Alternativamente, também é possível, e não é incomum, que todos os rastreamentos de retorno terminem dentro do número, por exemplo, 512, de etapas de rastreamento de retorno.[0226] Importantly, it is easily possible for multiple “1”s in the records to merge into common positions, which correspond to multiples of the simultaneous return traces merging into common return trace paths. Once two or more of the simultaneous return traces merge, they remain fused indefinitely, due to the fact that they will henceforth use scoring vector information from the same cell. It has been observed, both empirically and on theoretical grounds, that with high probability all of the simultaneous return traces merge into a singular return trace path within a relatively small number of return trace steps, which, for example, may be a small multiple, e.g. 8, times the number of scoring cells in the wavefront. For example, with a 64-cell wavefront, with high probability all of the return traces from a given wavefront boundary merge into a single return trace path within 512 return trace steps. Alternatively, it is also possible, and not uncommon, for all backtracks to end within the number, e.g. 512, of backtrack steps.

[0227] Consequentemente, os múltiplos rastreamentos de retorno simultâneos podem ser realizados a partir de um limite de pontuação, por exemplo, uma posição de frente de onda pontuada, longe o suficiente de forma que todos terminem ou se fundam em um único trajeto de rastreamento de retorno, por exemplo, em 512 etapas de rastreamento de retorno ou menos. Se os mesmos se fundirem, todos, em um trajeto de rastreamento de retorno singular, então, a partir do local na matriz de pontuação em que os mesmos se fundem, ou qualquer distância mais distante ao longo do trajeto de rastreamento de retorno singular, um rastreamento de retorno incremental a partir de informações de alinhamento parcial é possível. Um rastreamento de retorno adicional a partir do ponto de fusão, ou qualquer distância mais distante, é começado, por meio de métodos de rastreamento de retorno singular normais, incluindo o registro da notação de alinhamento correspondente, por exemplo, uma corrente de CIGAR parcial. Esse rastreamento de retorno incremental e, por exemplo, essa corrente de CIGAR parcial, precisa ser parte de qualquer rastreamento de retorno final possível e, por exemplo, uma corrente de CIGAR completa, a qual resultaria após o alinhamento ser concluído, a menos que tal rastreamento de retorno final terminasse antes de alcançar o limite de pontuação em que o rastreamento de retorno simultâneo começou, devido ao fato de que, se o mesmo alcançar o limite de pontuação, o mesmo precisa seguir um dentre os trajetos de rastreamento de retorno simultâneo e se fundir no trajeto de rastreamento de retorno singular, agora extraído de modo incremental.[0227] Accordingly, multiple simultaneous return traces may be performed from a scoring boundary, e.g., a scored wavefront position, far enough away that they all terminate or merge into a single return trace path, e.g., in 512 return trace steps or less. If they all merge into a singular return trace path, then from the location in the scoring matrix where they merge, or any farther distance along the singular return trace path, an incremental return trace from partial alignment information is possible. An additional return trace from the merge point, or any farther distance, is started by normal singular return trace methods, including recording the corresponding alignment notation, e.g., a partial CIGAR stream. This incremental backtrack, and e.g. this partial CIGAR stream, must be part of any possible final backtrack, and e.g. a complete CIGAR stream, which would result after alignment is complete, unless such final backtrack ends before reaching the score threshold at which the simultaneous backtrack begins, because if it reaches the score threshold, it must follow one of the simultaneous backtrack paths and merge into the now incrementally extracted singular backtrack path.

[0228] Portanto, todos os vetores de pontuação para as regiões de matriz que correspondem ao rastreamento de retorno extraído de modo incremental, por exemplo, em todas as fileiras de tabela para posições de frente de onda que precedem o início do rastreamento de retorno singular extraído, podem ser descartados de modo seguro. Quando o rastreamento de retorno final é realizado a partir de uma célula de pontuação máxima, se o mesmo terminar antes de alcançar o limite de pontuação (ou, alternativamente, se o mesmo terminar antes de alcançar o início do rastreamento de retorno singular extraído), a notação de alinhamento incremental, por exemplo, corrente de CIGAR parcial, pode ser descartada. Se o rastreamento de retorno final continuar até o início do rastreamento de retorno singular extraído, sua notação de alinhamento, por exemplo, corrente de CIGAR, pode, então, ser enxertada na notação de alinhamento incremental, por exemplo, corrente de CIGAR parcial. Adicionalmente, em um alinhamento muito longo, o processo de realizar um rastreamento de retorno simultâneo a partir de um limite de pontuação, por exemplo, posição de frente de onda pontuada, até que todos os rastreamentos de retorno terminem ou se fundam, seguido por um rastreamento de retorno singular com extração de notação de alinhamento, pode ser repetido múltiplas vezes a partir de diversos limites de pontuação sucessivos. A notação de alinhamento incremental, por exemplo, corrente de CIGAR parcial, a partir de cada rastreamento de retorno incremental sucessivo pode, então, ser enxertada nas notações de alinhamento anteriores acumuladas, a menos que o novo rastreamento de retorno simultâneo ou o rastreamento de retorno singular termine antecipadamente, em que, nesse caso, as notações de alinhamento anteriores acumuladas podem ser descartadas. O rastreamento de retorno final eventual, do mesmo modo, enxerta sua notação de alinhamento nas notações de alinhamento acumuladas mais recentes para uma descrição de rastreamento de retorno completa, por exemplo, corrente de CIGAR.[0228] Therefore, all score vectors for matrix regions that correspond to the incrementally extracted return trace, e.g., in all table rows for wavefront positions preceding the start of the extracted singular return trace, may be safely discarded. When the final return trace is performed from a top-scoring cell, if it terminates before reaching the score threshold (or, alternatively, if it terminates before reaching the start of the extracted singular return trace), the incremental alignment notation, e.g., partial CIGAR chain, may be discarded. If the final return trace continues until the start of the extracted singular return trace, its alignment notation, e.g., CIGAR chain, may then be grafted onto the incremental alignment notation, e.g., partial CIGAR chain. Additionally, in a very long alignment, the process of performing a simultaneous backtrack from a scoring boundary, e.g., scored wavefront position, until all backtracks terminate or merge, followed by a singular backtrack with alignment notation extraction, may be repeated multiple times from several successive scoring boundaries. The incremental alignment notation, e.g., partial CIGAR current, from each successive incremental backtrack may then be grafted onto the previous accumulated alignment notations, unless the new simultaneous backtrack or singular backtrack terminates early, in which case the previous accumulated alignment notations may be discarded. The eventual final backtrack likewise grafts its alignment notation onto the most recent accumulated alignment notations for a complete backtrack description, e.g., CIGAR current.

[0229] Consequentemente, dessa forma, a memória para armazenar vetores de pontuação pode ser mantida unida, supondo que os rastreamentos de retorno simultâneos sempre se fundem em um número unido de etapas, por exemplo, 512 etapas. Em casos raros em que os rastreamentos de retorno simultâneos falham ao fundir ou terminar no número unido de etapas, diversas ações excepcionais podem ser feitas, incluindo falhar o alinhamento atual ou repetir o mesmo com uma união maior ou sem nenhuma união, tal vez por meio de um método diferente ou tradicional, tal como armazenando todos os vetores de pontuação para o alinhamento completo, tal como em DRAM externa. Em uma variação, pode ser razoável falhar tal alinhamento, devido ao fato de que o mesmo é extremamente raro e é ainda mais raro que tal alinhamento falho teria sido um alinhamento de melhor pontuação a ser usado no relatório de alinhamento.[0229] Accordingly, in this way, the memory for storing scoring vectors may be kept unitary, assuming that concurrent backtracks always merge at a unitary number of steps, e.g., 512 steps. In the rare cases where concurrent backtracks fail to merge or terminate at the unitary number of steps, several exceptional actions may be taken, including failing the current alignment or repeating it with a larger union or no union at all, perhaps by a different or traditional method, such as storing all scoring vectors for the full alignment, such as in external DRAM. In a variation, it may be reasonable to fail such an alignment, because it is extremely rare, and it is even rarer that such a failed alignment would have been a better-scoring alignment to be used in the alignment report.

[0230] Em uma variação opcional, o armazenamento de vetor de pontuação pode ser dividido, física ou logicamente, em diversos blocos distintos, por exemplo, 512 fileiras cada, e a fileira final em cada bloco pode ser usada como um limite de pontuação para começar um rastreamento de retorno simultâneo. Opcionalmente, é possível exigir que um rastreamento de retorno simultâneo termine ou se funda dentro do único bloco, por exemplo, 512 etapas. Opcionalmente, se os rastreamentos de retorno simultâneos se fundirem em menos etapas, o rastreamento de retorno fundido pode, mesmo assim, ser continuado através de todo o bloco, antes de começar uma extração de um rastreamento de retorno singular no bloco anterior. Consequentemente, após os vetores de pontuação serem completamente escritos no bloco N e começarem a ser escritos no bloco N+1, um rastreamento de retorno simultâneo pode começar no bloco N, seguido por um rastreamento de retorno singular e uma extração de notação de alinhamento no bloco N-1. Se as velocidades do rastreamento de retorno simultâneo, do rastreamento de retorno singular e da pontuação de alinhamento forem, todas, semelhantes ou idênticas e os mesmos puderem ser realizados simultaneamente, por exemplo, em hardware paralelo em um circuito integrado, então, o rastreamento de retorno singular no bloco N-1 pode ser simultâneo aos vetores de pontuação que preenchem o bloco N+2 e, quando o bloco N+3 tiver que ser preenchido, o bloco N-1 pode ser liberado e reciclado.[0230] In an optional variation, the score vector storage may be divided, physically or logically, into several distinct blocks, e.g., 512 rows each, and the final row in each block may be used as a score boundary to begin a concurrent backtrack. Optionally, a concurrent backtrack may be required to end or merge within a single block, e.g., 512 steps. Optionally, if the concurrent backtracks merge in fewer steps, the fused backtrack may still be continued through the entire block before beginning an extraction of a singular backtrack in the previous block. Accordingly, after the score vectors are completely written in block N and begin to be written in block N+1, a concurrent backtrack may begin in block N, followed by a singular backtrack and an alignment notation extraction in block N-1. If the speeds of simultaneous backtracking, singular backtracking, and alignment scoring are all similar or identical, and they can be performed simultaneously, for example in parallel hardware on an integrated circuit, then singular backtracking in block N-1 can be concurrent with the scoring vectors that fill block N+2, and when block N+3 needs to be filled, block N-1 can be released and recycled.

[0231] Dessa forma, em tal implantação, um mínimo de 4 blocos de vetor de pontuação pode ser empregado e pode ser utilizado ciclicamente. Logo, o armazenamento de vetor de pontuação total para um módulo de alinhador pode ser 4 blocos de 257 x 512 bits cada, por exemplo, ou aproximadamente 64 quilobytes. Em uma variação, se a pontuação máxima de alinhamento atual corresponder a um bloco mais antecedente do que a posição de frente de onda atual, esse bloco e o bloco anterior podem ser preservados em vez de serem reciclados, de forma que um rastreamento de retorno final possa começar a partir dessa posição se o mesmo permanecer na pontuação máxima; ter 2 blocos extras para manter preservados, dessa forma, traz o mínimo, por exemplo, para 6 blocos.[0231] Thus, in such an implementation, a minimum of 4 scoring vector blocks may be employed, and may be used cyclically. Thus, the total scoring vector storage for an aligner module may be 4 blocks of 257 x 512 bits each, for example, or approximately 64 kilobytes. In a variation, if the current maximum alignment score corresponds to a block further back than the current wavefront position, that block and the previous block may be preserved instead of being recycled, so that a final backtrack may start from that position if it remains at the maximum score; having 2 extra blocks to keep preserved thus brings the minimum, for example, to 6 blocks.

[0232] Em outra variação, para suportar alinhamentos sobrepostos, a frente de onda de pontuação que cruza gradualmente de uma matriz de alinhamento para a próxima, conforme descrito acima, blocos adicionais, por exemplo, 1 ou 2 blocos adicionais, podem ser utilizados, por exemplo, 8 blocos totais, por exemplo, aproximadamente 128 quilobytes. Consequentemente, se tal número limitado de blocos, por exemplo, 4 blocos ou 8 blocos, for usado ciclicamente, o alinhamento e o rastreamento de retorno de leituras arbitrariamente longas são possíveis, por exemplo, 100.000 nucleotídeos ou todo um cromossomo, sem o uso de memória externa para vetores de pontuação. Deve ser entendido, tal como com referência ao supracitado, que, embora uma função de mapeamento possa, em alguns casos, ter sido descrita, tal como com referência a um mapeador, e/ou uma função de alinhamento pode ter, em alguns casos, sido descrita, tal como com referência a um alinhador, essas funções diferentes podem ser realizadas sequencialmente pela mesma arquitetura, a qual foi comumente mencionada na técnica como um alinhador. Consequentemente, em diversos casos, tanto a função de mapeamento quanto a função de alinhamento, conforme descrito no presente documento, podem ser realizadas por uma arquitetura comum que pode ser entendida como sendo um alinhador, especialmente naqueles casos em que se realiza uma função de alinhamento, em que uma função de mapeamento precisa ser realizada primeiro.[0232] In another variation, to support overlapping alignments, the scoring wavefront gradually crossing from one alignment matrix to the next, as described above, additional blocks, e.g., 1 or 2 additional blocks, may be used, e.g., 8 total blocks, e.g., approximately 128 kilobytes. Accordingly, if such a limited number of blocks, e.g., 4 blocks or 8 blocks, are used cyclically, alignment and backtracking of arbitrarily long reads is possible, e.g., 100,000 nucleotides or an entire chromosome, without the use of external memory for scoring vectors. It should be understood, as with reference to the foregoing, that although a mapping function may in some cases have been described, such as with reference to a mapper, and/or an alignment function may in some cases have been described, such as with reference to an aligner, these different functions may be performed sequentially by the same architecture, which has been commonly referred to in the art as an aligner. Accordingly, in many cases, both the mapping function and the alignment function as described herein may be performed by a common architecture that may be understood to be an aligner, especially in those cases where an alignment function is performed, where a mapping function needs to be performed first.

[0233] Em vários casos, os dispositivos, os sistemas e seus métodos de uso da presente revelação podem ser configurados para realizar um ou mais dentre um alinhamento sem lacuna e/ou com lacuna de leitura completa que podem ser então pontuados de modo a determinar o alinhamento adequado para as leituras no conjunto de dados. Por exemplo, em vários casos, um procedimento de alinhamento sem lacuna pode ser realizado em dados a serem processados, em que o procedimento de alinhamento sem lacuna pode ser, então, seguido por um ou mais dentre um alinhamento com lacuna e/ou por um procedimento de alinhamento de Smith-Waterman seletivo. Por exemplo, em uma primeira etapa, uma cadeia de alinhamento sem lacuna pode ser gerada. Conforme descrito no presente documento, tais funções de alinhamento sem lacuna podem ser realizadas rapidamente, tal como sem a necessidade de representar lacunas, que, após uma primeira etapa de realizar um alinhamento sem lacuna, podem ser, então, seguidas por, então, realizar alinhamento com lacuna.[0233] In various instances, the devices, systems, and methods of use thereof of the present disclosure may be configured to perform one or more of a gapless and/or full-read gapped alignment which may then be scored to determine the proper alignment for the reads in the data set. For example, in various instances, a gapless alignment procedure may be performed on data to be processed, wherein the gapless alignment procedure may then be followed by one or more of a gapped alignment and/or a selective Smith-Waterman alignment procedure. For example, in a first step, a gapless alignment string may be generated. As described herein, such gapless alignment functions may be performed rapidly, such as without the need to represent gaps, which, after a first step of performing a gapless alignment, may then be followed by performing a gapped alignment.

[0234] Por exemplo, uma função de alinhamento pode ser realizada a fim de determinar como qualquer dada sequência de nucleotídeos, por exemplo, leitura, alinha-se a uma sequência de referência sem a necessidade de inserir lacunas em uma ou mais das leituras e/ou a referência. Uma parte importante de realizar tal função de alinhamento é determinar quando e como há divergências na sequência em questão versus a sequência do genoma de referência. Entretanto, devido à grande tecnologia dentro do genoma humano, em teoria, qualquer dada sequência de nucleotídeos irá amplamente corresponder a uma sequência de referência representativa. Quando há divergências, as mesmas serão provavelmente devido a um único polimorfismo de nucleotídeo, que é relativamente fácil de detectar, ou serão devido a uma inserção ou deleção nas sequências em questão, que são muito mais difíceis de detectar.[0234] For example, an alignment function may be performed to determine how any given nucleotide sequence, e.g., read, aligns to a reference sequence without the need to insert gaps in one or more of the reads and/or the reference. An important part of performing such an alignment function is to determine when and how there are divergences in the sequence in question versus the reference genome sequence. However, due to the large amount of technology within the human genome, in theory, any given nucleotide sequence will broadly match a representative reference sequence. When there are divergences, they will likely be due to a single nucleotide polymorphism, which is relatively easy to detect, or they will be due to an insertion or deletion in the sequences in question, which are much more difficult to detect.

[0235] Consequentemente, para realizar uma função de alinhamento, a maior parte do tempo, a sequência em questão irá corresponder à sequência de referência, e, quando há uma divergência devido a um SNP, o mesmo é facilmente determinado. Logo, uma quantidade relativamente grande de potência de processamento não é necessária para realizar tal análise. Surgem dificuldades, no entretanto, quando há inserções ou deleções na sequência em questão em relação à sequência de referência, devido ao fato de que tais inserções e deleções somam- se em lacunas no alinhamento. Tais lacunas exibem uma plataforma de processamento mais dispendiosa e complicada de modo a determinar o alinhamento correto. No entanto, devido ao fato de que haverá apenas uma pequena porcentagem de indels, apenas uma porcentagem relativamente menor de protocolos de alinhamento com lacuna precisa ser realizada em comparação com os milhões de alinhamentos sem lacuna realizados. Logo, apenas uma pequena porcentagem de todas as funções de alinhamento sem lacuna resulta em uma necessidade de processamento adicional devido à presença de um indel na sequência e, portanto, precisará de um alinhamento com lacuna.[0235] Consequently, to perform an alignment function, most of the time, the sequence in question will match the reference sequence, and when there is a divergence due to a SNP, this is easily determined. Therefore, a relatively large amount of processing power is not required to perform such an analysis. Difficulties arise, however, when there are insertions or deletions in the sequence in question relative to the reference sequence, due to the fact that such insertions and deletions add up to gaps in the alignment. Such gaps present a more expensive and complicated processing platform in order to determine the correct alignment. However, because there will be only a small percentage of indels, only a relatively smaller percentage of gapped alignment protocols need to be performed compared to the millions of gapless alignments performed. Therefore, only a small percentage of all gapless alignment functions result in a need for additional processing due to the presence of an indel in the sequence and will therefore require a gapped alignment.

[0236] Quando um indel é indicado em um procedimento de alinhamento sem lacuna, apenas aquelas sequências passadas por um mecanismo de alinhamento para processamento adicional, tal como um mecanismo de alinhamento configurado para realizar uma função de alinhamento avançada, tal como um alinhamento de Smith Waterman (SWA). Assim, devido ao fato de que um alinhamento sem lacuna ou com lacuna deve ser realizado, os dispositivos e sistemas revelados no presente documento são um uso muito mais eficaz de recursos. Mais particularmente, em certas modalidades, um alinhamento tanto sem lacuna quanto com lacuna pode ser realizado em uma dada seleção de sequências, por exemplo, uma logo após a outra, então, os resultados são comparados para cada sequência, e o melhor resultado é escolhido. Tal disposição pode ser implantada, por exemplo, quando uma intensificação em precisão é desejada, e uma quantidade aumentada de tempo e recursos para realizar o processamento necessário é aceitável.[0236] When an indel is indicated in a gapless alignment procedure, only those sequences are passed through an alignment engine for further processing, such as an alignment engine configured to perform an advanced alignment function, such as a Smith Waterman alignment (SWA). Thus, because either a gapless or gapped alignment must be performed, the devices and systems disclosed herein are a much more efficient use of resources. More particularly, in certain embodiments, both a gapless and gapped alignment can be performed on a given selection of sequences, e.g., one right after the other, then the results are compared for each sequence, and the best result is chosen. Such an arrangement can be implemented, for example, when an increase in accuracy is desired, and an increased amount of time and resources to perform the necessary processing is acceptable.

[0237] Particularmente, em vários casos, uma primeira etapa de alinhamento pode ser realizada sem envolver uma função de Smith Waterman de processamento intensivo. Logo, uma pluralidade de alinhamentos sem lacuna pode ser realizada de uma maneira com menos intensidade de recurso, menos demorada, e, devido ao fato de que menos recursos são necessários, menos espaço precisa ser dedicado para tal processamento no chip. Assim, mais processamento precisa ser realizado, com o uso de menos elementos de processamento, exigindo menos tempo, portanto, mais alinhamentos podem ser realizados, e melhor precisão pode ser atingida. Mais particularmente, menos implantações de recurso em chip para realizar alinhamentos de Smith Waterman precisam ser dedicadas com o uso de menos área de chip, visto que não exige tanta área de chip para os elementos de processamento necessários para realizar alinhamentos sem lacuna do que exige para realizar alinhamento com lacuna. Conforme os requisitos de recurso de chip diminuem, mais processamento pode ser realizado em um período de tempo mais curto, e com mais processamento podendo ser realizado, a melhor precisão pode ser atingida.[0237] In particular, in many cases, a first alignment step can be performed without involving a processor-intensive Smith Waterman function. Thus, a plurality of gapless alignments can be performed in a less resource-intensive, less time-consuming manner, and because fewer resources are required, less space needs to be dedicated to such processing on the chip. Thus, more processing needs to be performed, using fewer processing elements, requiring less time, so more alignments can be performed, and better accuracy can be achieved. More particularly, fewer on-chip resource allocations need to be dedicated to performing Smith Waterman alignments using less chip area, since it does not require as much chip area for the processing elements required to perform gapless alignments than it does to perform gapped alignments. As chip resource requirements decrease, more processing can be performed in a shorter period of time, and with more processing able to be performed, better accuracy can be achieved.

[0238] Consequentemente, em tais casos, um protocolo de alinhamento sem lacuna, por exemplo, a ser realizado por recursos de alinhamento sem lacuna adequadamente configurados, pode ser empregado. Por exemplo, conforme revelado no presente documento, em várias modalidades, um mecanismo de processamento de alinhamento é fornecido tal como em que o mecanismo de processamento é configurado para receber sinais digitais, por exemplo, que representam uma ou mais leituras de dados genômicos, tais como dados digitais que denotam uma ou mais sequências de nucleotídeos, a partir de uma fonte de dados eletrônicos, e mapear e/ou alinhar esses dados a uma sequência de referência, tal como realizando-se primeiramente uma função de alinhamento sem lacuna nesses dados, em que a função de alinhamento sem lacuna pode ser, então, seguida, se necessário, por uma função de alinhamento com lacuna, tal como realizando-se um protocolo de alinhamento de Smith Waterman.[0238] Accordingly, in such cases, a gapless alignment protocol, e.g., to be performed by suitably configured gapless alignment resources, may be employed. For example, as disclosed herein, in various embodiments, an alignment processing engine is provided such as wherein the processing engine is configured to receive digital signals, e.g., representing one or more reads of genomic data, such as digital data denoting one or more nucleotide sequences, from an electronic data source, and map and/or align such data to a reference sequence, such as by first performing a gapless alignment function on such data, wherein the gapless alignment function may then be followed, if necessary, by a gapped alignment function, such as by performing a Smith Waterman alignment protocol.

[0239] Consequentemente, em vários casos, uma função de alinhamento sem lacuna é realizada em uma porção contígua da leitura, por exemplo, empregando-se um alinhador sem lacuna, e, se o alinhamento sem lacuna ocorrer de extremidade a extremidade, por exemplo, a leitura está completa, um alinhamento com lacuna não é realizado. Entretanto, se os resultados do alinhamento sem lacuna forem indicativos de serem um indel presente, por exemplo, a leitura é recortada ou incompleta de outro modo, então, um alinhamento com lacuna pode ser realizado. Assim, os resultados de alinhamento sem lacuna podem ser usados para determinar se um alinhamento com lacuna é necessário, por exemplo, quando o alinhamento sem lacuna é estendido em uma região de lacuna, mas não estende o comprimento inteiro da leitura, tal como quando a leitura pode ser recordada, por exemplo, por recorte suave em algum grau, e, quando recortada, então, um alinhamento com lacuna pode ser realizado.[0239] Accordingly, in many cases, a gapless alignment function is performed on a contiguous portion of the read, e.g., by employing a gapless aligner, and if the gapless alignment occurs end-to-end, e.g., the read is complete, a gapped alignment is not performed. However, if the results of the gapless alignment are indicative of an indel being present, e.g., the read is trimmed or otherwise incomplete, then a gapped alignment may be performed. Thus, the gapless alignment results may be used to determine whether a gapped alignment is necessary, e.g., when the gapless alignment extends into a gapped region but does not extend the entire length of the read, such as when the read can be recalled, e.g., by soft trimming to some degree, and when trimmed, then a gapped alignment may be performed.

[0240] Logo, em várias modalidades, com base na completude e pontuações de alinhamento, somente se o alinhamento sem lacuna terminar sendo recortado, por exemplo, não ocorrer de extremidade a extremidade, um alinhamento com lacuna é realizado. Mais particularmente, em várias modalidades, a melhor pontuação de alinhamento sem lacuna e/ou com lacuna identificável pode ser estimada e usada como uma linha de corte para decidir se a pontuação é boa o suficiente para justificar análise adicional, tal como realizando-se um alinhamento com lacuna. Assim, a completude de alinhamento e sua pontuação podem ser empregadas de modo que uma alta pontuação seja indicativa de o alinhamento ser completo e, portanto, sem lacuna, e uma pontuação mais baixa seja indicativa de o alinhamento não ser completo, e um alinhamento com lacuna precisar ser realizado. Logo, quando uma alta pontuação é obtida, um alinhamento com lacuna não é realizado, mas apenas quando a pontuação é baixa o suficiente, o alinhamento com lacuna é realizado. Obviamente, em vários casos, uma abordagem de alinhamento de força bruta pode ser empregada de modo que o número de alinhadores com lacuna e/ou sem lacuna seja implantado na arquitetura de chip, de modo a permitir que um número maior de alinhamentos seja realizado e, assim, uma quantidade maior de dados pode ser pesquisada.[0240] Thus, in various embodiments, based on alignment completeness and scores, only if the gapless alignment ends up being clipped, e.g., does not run end-to-end, a gapped alignment is performed. More particularly, in various embodiments, the best gapless and/or identifiable gapped alignment score can be estimated and used as a cutoff line to decide whether the score is good enough to warrant further analysis, such as performing a gapped alignment. Thus, alignment completeness and its score can be employed such that a high score is indicative of the alignment being complete and therefore gapless, and a lower score is indicative of the alignment not being complete and a gapped alignment needs to be performed. Thus, when a high score is obtained, a gapped alignment is not performed, but only when the score is low enough, a gapped alignment is performed. Obviously, in many cases, a brute force alignment approach can be employed such that a number of gapped and/or non-gaped aligners are deployed in the chip architecture so as to allow a larger number of alignments to be performed and thus a larger amount of data can be searched.

[0241] Mais particularmente, em várias modalidades, cada mecanismo de mapeamento e/ou alinhamento pode incluir um ou mais, por exemplo, dois, módulos alinhadores de Smith-Waterman. Em certos casos, esses módulos podem ser configurados de modo a suportar alinhamento sem lacuna (extremidade a extremidade) global e/ou alinhamento com lacuna (recortado) local, realizar pontuação de lacuna afim e podem ser configurados para gerar bônus de pontuação não recortada em cada extremidade. Pontuação de correspondência ou divergência sensível à qualidade de base pode ser também suportada. Quando dois módulos de alinhamento estão incluídos, por exemplo, como parte do circuito integrado, por exemplo, cada alinhador de Smith-Waterman pode ser construído como uma frente de onda antidiagonal de células de pontuação, em que a frente de onda “se move” através de um retângulo de alinhamento virtual, pontuando células que o mesmo varre.[0241] More particularly, in various embodiments, each mapping and/or alignment engine may include one or more, e.g., two, Smith-Waterman aligner modules. In certain cases, these modules may be configured to support global gapless (end-to-end) alignment and/or local gapped (clipped) alignment, perform affine gap scoring, and may be configured to generate non-clipped scoring bonuses at each end. Base quality-sensitive matching or divergence scoring may also be supported. When two alignment modules are included, e.g., as part of the integrated circuit, for example, each Smith-Waterman aligner may be constructed as an antidiagonal wavefront of scoring cells, wherein the wavefront “moves” across a virtual alignment rectangle, scoring cells that it sweeps.

[0242] Entretanto, para leituras mais longas, a frente de onda de SmithWaterman pode ser também configurada para suportar direção automática, de modo a rastrear o melhor alinhamento através de indels acumulados, tal como para garantir que a frente de onda de alinhamento e as células que são pontuadas não escapem da banda de pontuação. No plano de fundo, mecanismos lógicos podem ser configurados para examinar pontuações de frente de onda atuais, encontrar os máximos, sinalizar os subconjuntos de células por uma distância limite além do máximo e ter como alvo o ponto médio entre duas sinalizações extremas. Em tal caso, a autodireção pode ser configurada para funcionar na diagonal quando o alvo está no centro da frente de onda, mas pode ser configurada para funcionar reta na horizontal ou na vertical conforme necessário para recentralizar o alvo se o mesmo se desviar, tal como devido à presença de indels.[0242] However, for longer reads, the SmithWaterman wavefront can also be configured to support auto-steering to track the best alignment through accumulated indels, such as to ensure that the alignment wavefront and the cells that are scored do not stray from the scoring band. In the background, logic mechanisms can be configured to examine current wavefront scores, find maxima, flag subsets of cells by a threshold distance beyond the maxima, and target the midpoint between two extreme flags. In such a case, auto-steering can be configured to operate diagonally when the target is at the center of the wavefront, but can be configured to operate straight horizontally or vertically as needed to re-center the target if it drifts, such as due to the presence of indels.

[0243] A saída do módulo de alinhamento é um arquivo de SAM (Text) ou uma BAM (por exemplo, versão binária de uma SAM) em conjunto com uma pontuação de qualidade de mapeamento (MAPA), em que a pontuação de qualidade reflete a confiança que o local previsto e alinhado da leitura para a referência é realmente onde a leitura é derivada. Consequentemente, uma vez que foi determinado onde cada leitura é mapeada e adicionalmente determinado onde cada leitura é alinhada, por exemplo, a cada leitura relevante foi dada uma posição e uma pontuação de qualidade que refletem a probabilidade de que a posição é o alinhamento correto, de forma que a sequência de nucleotídeos para o DNA do sujeito seja conhecida, assim como como o DNA do sujeito é diferente daquele da referência (por exemplo, a corrente de CIGAR foi determinada), então, as diversas leituras que representam a sequência de ácidos nucleicos genômica do sujeito podem ser classificadas por local cromossômico, de forma que o local exato da leitura nos cromossomos podem ser determinadas. Consequentemente, em alguns aspectos, a presente revelação é direcionada a uma função de classificação, tal como pode ser realizada por um módulo de classificação, em que o módulo de classificação pode ser parte de uma segmentação de módulos, tal como uma segmentação que é direcionada a pegar os dados de sequência de leitura brutos, tal como de uma amostra genômica de um indivíduo, e mapear e/ou alinhar aqueles dados, em que os dados podem ser, então, classificados.[0243] The output of the alignment module is a SAM (Text) file or a BAM (e.g., binary version of a SAM) together with a mapping quality score (MAP), where the quality score reflects the confidence that the predicted and aligned location of the read to the reference is actually where the read is derived. Accordingly, once it has been determined where each read maps and further determined where each read aligns, e.g., each relevant read has been given a position and a quality score that reflect the probability that the position is the correct alignment, such that the nucleotide sequence for the subject's DNA is known, as well as how the subject's DNA differs from that of the reference (e.g., the CIGAR chain has been determined), then the various reads representing the subject's genomic nucleic acid sequence can be sorted by chromosomal location, such that the exact location of the read on the chromosomes can be determined. Accordingly, in some aspects, the present disclosure is directed to a classification function, as may be performed by a classification module, wherein the classification module may be part of a segmentation of modules, such as a segmentation that is directed to taking raw read sequence data, such as from a genomic sample of an individual, and mapping and/or aligning that data, wherein the data may then be classified.

[0244] Mais particularmente, uma vez que as leituras foram atribuídas a uma posição, tal como em relação ao genoma de referência, o qual pode incluir identificar a qual cromossomo a leitura pertence e/ou seu desvio do começo daquele cromossomo, as leituras podem ser classificadas por posição. A classificação pode ser útil, tal como em análises a jusantes, pelas quais todas as leituras que sobrepõem uma dada posição no genoma podem ser formadas em um acúmulo, a fim de serem adjacentes umas às outras, tal como após serem processadas através do módulo de classificação, pelo qual pode ser prontamente determinado se a maioria das leituras concordam com o valor de referência ou não. Logo, quando a maioria de leituras não concordam com o valor de referência, uma chamada de variante pode ser sinalizada. A classificação, portanto, pode envolver um ou mais dentre a classificação das leituras que se alinham relativamente à mesma posição, tal como a mesma posição de cromossomo, a fim de produzir um acúmulo, de forma que todas as leituras que cobrem o mesmo local sejam fisicamente agrupadas em conjunto, e pode envolver adicionalmente analisar as leituras do acúmulo para determinar onde as leituras podem indicar uma variante real no genoma, em comparação com o genoma de referência, em que a variante pode ser distinguível, tal como pelo consenso do acúmulo, de um erro, tal como um erro de leitura de máquina ou um erro nos métodos de sequenciamento que pode ser exibido por uma pequena minoria das leituras.[0244] More particularly, once the reads have been assigned to a position, such as relative to the reference genome, which may include identifying which chromosome the read belongs to and/or its offset from the beginning of that chromosome, the reads may be classified by position. Classification may be useful, such as in downstream analyses, whereby all reads that overlap a given position in the genome may be formed into a cluster so as to be adjacent to each other, such as after being processed through the classification module, whereby it may be readily determined whether the majority of the reads agree with the reference value or not. Thus, when the majority of reads do not agree with the reference value, a variant call may be flagged. Sorting, therefore, may involve one or more of the sorting of reads that align relatively to the same position, such as the same chromosome position, in order to produce a cluster such that all reads covering the same location are physically grouped together, and may further involve analyzing the reads in the cluster to determine where the reads may indicate an actual variant in the genome, as compared to the reference genome, where the variant may be distinguishable, such as by the consensus of the cluster, from an error, such as a machine read error or an error in the sequencing methods that may be exhibited by a small minority of the reads.

[0245] Uma vez que os dados foram obtidos, existem um ou mais outros módulos que podem ser operados a fim de limpar os dados. Por exemplo, um módulo que pode ser incluído, por exemplo, em uma segmentação de análise de sequência, tal como para determinar a sequência genômica de um indivíduo, pode ser um módulo de realinhamento local. Por exemplo, é normalmente difícil determinar inserções e deleções que ocorrem na extremidade da leitura. Isso é devido ao fato de que o processo de alinhamento de Smith-Waterman ou um equivalente não tem contexto o suficiente além do indel para permitir que a pontuação detecte sua presença. Consequentemente, o indel real pode ser relatado como um ou mais SNPs. Em tal caso, a precisão do local previsto para qualquer dada leitura pode ser aprimorada realizando-se um realinhamento local nos dados de leitura mapeados e/ou alinhados e/ou classificados.[0245] Once the data has been obtained, there are one or more other modules that can be operated in order to clean the data. For example, a module that may be included, for example, in a sequence analysis segment, such as to determine the genomic sequence of an individual, may be a local realignment module. For example, it is typically difficult to determine insertions and deletions that occur at the end of the read. This is because the Smith-Waterman alignment process or an equivalent does not have enough context beyond the indel to allow the score to detect its presence. Consequently, the actual indel may be reported as one or more SNPs. In such a case, the accuracy of the predicted location for any given read may be improved by performing a local realignment on the mapped and/or aligned and/or classified read data.

[0246] Em tais casos, acúmulos podem ser usados para ajudar a clarificar o alinhamento apropriado, tal como quando uma posição em questão está na extremidade de qualquer dada leitura, é provável que aquela mesma posição esteja no meio de alguma outra leitura no acúmulo. Consequentemente, na realização de um realinhamento local, as diversas leituras em um acúmulo podem ser analisadas a fim de determinar se algumas das leituras no acúmulo indicam que houve uma inserção ou uma deleção em uma dada posição quando uma outra leitura não incluir o indel ou, em vez disso, inclui uma substituição, naquela posição, então, o indel pode ser inserido, tal como na referência, quando o mesmo não está presente, e as leituras no acúmulo local que se sobrepõem àquela região podem ser realinhadas para ver se, coletivamente, uma pontuação melhor é alcançada, então, quando a inserção e/ou a deleção não esteve lá. Se houver um aperfeiçoamento, o conjunto de leituras inteiro no acúmulo pode ser revisado e, se a pontuação do conjunto geral tiver aperfeiçoado, então, fica claro fazer a chamada que realmente houve um indel naquela posição. De uma forma tal como essa, o fato de não existir contexto suficiente para alinhar de modo mais preciso uma leitura na extremidade de um cromossomo, para qualquer leitura individual, pode ser compensado. Logo, quando se realiza um realinhamento local, um ou mais acúmulos em que um ou mais indels podem ser posicionados são examinados e determina-se se, adicionando-se um indel e qualquer dada posição, a pontuação de alinhamento geral pode ser aprimorada.[0246] In such cases, stacks can be used to help clarify the proper alignment, such as when a position in question is at the end of any given read, it is likely that that same position is in the middle of some other read in the stack. Consequently, in performing a local realignment, the various reads in a stack can be analyzed to determine whether any of the reads in the stack indicate that there was an insertion or deletion at a given position when another read does not include the indel, or instead includes a substitution, at that position; then the indel can be inserted, as in the reference, when it is not present, and the reads in the local stack that overlap that region can be realigned to see if, collectively, a better score is achieved then when the insertion and/or deletion was not there. If there is an improvement, the entire set of reads in the stack can be reviewed, and if the score of the overall set has improved, then it is clear to make the call that there was indeed an indel at that position. In such a way, the fact that there is not enough context to more accurately align a read at the end of a chromosome for any given read can be compensated for. Thus, when a local realignment is performed, one or more clusters where one or more indels might be positioned are examined and it is determined whether adding an indel at any given position can improve the overall alignment score.

[0247] Outro módulo que pode ser incluído, por exemplo, em uma segmentação de análise de sequência, tal como para determinar a sequência genômica de um indivíduo, pode ser um módulo de marcação de duplicada. Por exemplo, uma função de marcação de duplicada pode ser realizada a fim de compensar erros de química que podem ocorrer durante a fase de sequenciamento. Por exemplo, conforme descrito acima, durante alguns procedimentos de sequenciamento, as sequências de ácidos nucleicos são fixadas a grânulos e construídas a partir desses com o uso de bases de nucleotídeo identificadas. Idealmente, existirá apenas uma leitura por grânulo. Entretanto, algumas vezes, múltiplas leituras se tornam fixadas a um único grânulo e isso resulta em um número excessivo de cópias da leitura fixada. Esse fenômeno é conhecido como duplicação de leitura.[0247] Another module that may be included, for example, in a sequence analysis pipeline, such as for determining the genomic sequence of an individual, may be a duplicate marking module. For example, a duplicate marking function may be performed in order to compensate for chemistry errors that may occur during the sequencing phase. For example, as described above, during some sequencing procedures, nucleic acid sequences are fixed to beads and constructed from these using identified nucleotide bases. Ideally, there will be only one read per bead. However, sometimes multiple reads become fixed to a single bead and this results in an excessive number of copies of the fixed read. This phenomenon is known as read duplication.

[0248] Após um alinhamento ser realizado e os resultados obtidos, e/ou uma função de classificação, realinhamento local e/ou um desduplicação serem realizados, uma função de chamada de variante pode ser empregada nos dados resultantes. Por exemplo, uma função de chamada de variante típica ou partes da mesma podem ser configuradas de modo a serem implantadas em um software e/ou configuração com fio, tal como em um circuito integrado. Particularmente, a chamada de variante é um processo que envolve posicionar todas as leituras que se alinham a um dado local na referência em agrupamentos, de modo que todas as regiões sobrepostas de todas as várias leituras alinhadas formem um "acúmulo". Então, o acúmulo de leituras que cobrem uma dada região do genoma de região é analisado para determinar qual o conteúdo atual mais provável do DNA/RNA do indivíduo amostrado está dentro dessa região. Isso é, então, repetido, por etapas, para cada região do genoma. O conteúdo determinado gera uma lista de diferenças denominadas "variações" ou "variantes" do genoma de referência, cada uma com um nível de confiança associado juntamente com outros metadados.[0248] After an alignment is performed and the results obtained, and/or a classification function, local realignment and/or deduplication are performed, a variant calling function may be employed on the resulting data. For example, a typical variant calling function or portions thereof may be configured to be implemented in a software and/or wired configuration, such as on an integrated circuit. In particular, variant calling is a process that involves placing all of the reads that align to a given location in the reference into clusters, such that all of the overlapping regions of all of the various aligned reads form a "cumulation". Then, the accumulation of reads covering a given region of the genome is analyzed to determine what the most likely current content of the sampled individual's DNA/RNA is within that region. This is then repeated, in steps, for each region of the genome. The determined content generates a list of differences called "variations" or "variants" from the reference genome, each with an associated confidence level along with other metadata.

[0249] As variantes mais comuns são polimorfismos de nucleotídeo único (SNPs), em que uma única base difere da referência. Os SNPs ocorrem em cerca de 1 em 1.000 posições em um genoma humano. Os seguintes mais comuns são inserções (na referência) e deleções (a partir da referência) mais comuns, ou "indels" coletivamente. Os mesmos são mais comuns em comprimentos mais curtos, mas podem ter qualquer comprimento. Complicações adicionais surgem, entretanto, devido ao fato de que a coleção de segmentos sequenciados ("leituras") é aleatória, algumas regiões terão cobertura mais profunda que outras. Há também variantes mais complexas que incluem substituições de múltiplas bases e combinações de indels e substituições que podem ser através de substituições que alteram o comprimento. Chamadores de variante baseados em software padrão têm dificuldade de identificar todos os mesmos e com vários limites em comprimentos de variante. Chamadores de variante mais especializados tanto em software quanto em hardware são necessários para identificar variações mais longas, e muitas variedades de "variantes estruturais" exóticas que envolvem grandes alterações dos cromossomos.[0249] The most common variants are single nucleotide polymorphisms (SNPs), in which a single base differs from the reference. SNPs occur at about 1 in 1,000 positions in a human genome. The next most common are insertions (in reference) and deletions (from reference), or "indels" collectively. They are most common at shorter lengths, but can be of any length. Additional complications arise, however, because the collection of sequenced segments ("reads") is random, some regions will have deeper coverage than others. There are also more complex variants that include multiple base substitutions and combinations of indels and substitutions that can be across substitutions that alter the length. Standard software-based variant callers have difficulty identifying all of them and with varying limits on variant lengths. More specialized variant callers in both software and hardware are needed to identify longer-term variants, and many exotic "structural variants" involving large chromosome changes.

[0250] Entretanto, a chamada de variante é um procedimento difícil de implantar em software, e muitíssimo mais difícil de instalar em hardware. A fim de representar e/ou detectar esses tipos de erros, chamadores de variante típicos podem realizar uma ou mais das tarefas a seguir. Por exemplo, podem propor um conjunto de genótipos hipotéticos (conteúdo do um ou dois cromossomos em um locus), usar cálculos bayesianos para estimar a probabilidade posterior de que cada genótipo é o verdadeiro, dada a evidência observada e relatar o genótipo mais provável juntamente com seu nível de confiança. Como tal, os chamadores de variante podem ser simples com complexos. Os chamadores de variante mais simples pesquisam apenas na coluna de bases no acúmulo de leituras alinhadas na posição exata de uma chamada que é realizada. Os chamadores de variante mais avançados são "chamadores baseados em haplótipo", que podem ser configurados para considerar o contexto, tal como em uma janela, em torno da chamada que é realizada.[0250] However, variant calling is a difficult procedure to implement in software, and much more difficult to implement in hardware. In order to represent and/or detect these types of errors, typical variant callers may perform one or more of the following tasks. For example, they may propose a set of hypothetical genotypes (contents of the one or two chromosomes at a locus), use Bayesian calculations to estimate the posterior probability that each genotype is the true one given the observed evidence, and report the most likely genotype along with its confidence level. As such, variant callers can be simple to complex. The simplest variant callers search only the column of bases in the accumulation of reads aligned to the exact position of a call being made. The most advanced variant callers are "haplotype-based callers", which can be configured to consider the context, such as a window, surrounding the call being made.

[0251] Um "haplótipo” é conteúdo de DNA particular (sequência de nucleotídeos, lista de variantes, etc.) em um único "filamento” comum, por exemplo, um dentre dois filamentos diploides em uma região, e um chamador baseado em haplótipo considera as implicações bayesianas das quais as diferenças são ligadas aparecendo na mesma leitura. Consequentemente, um protocolo de chamada de variante, conforme proposto no presente documento, pode implantar uma ou mais funções aprimoradas, tal como aquelas realizadas em um chamador de haplótipo de Kit de Ferramenta de Análise de Genoma (GATK) e/ou com o uso de uma ferramenta de Modelo Oculto de Markov (HMM) e/ou uma função de Gráfico de De Bruijn, tal como quando uma ou mais dessas funções tipicamente empregadas por um chamador de haplótipo de GATK e/ou uma ferramenta de HMM e/ou uma função de Gráfico de De Bruijn podem ser implantadas em software e/ou em hardware.[0251] A "haplotype" is particular DNA content (nucleotide sequence, list of variants, etc.) on a single common "strand", e.g., one of two diploid strands in a region, and a haplotype-based caller considers the Bayesian implications of which differences are linked by appearing in the same read. Accordingly, a variant calling protocol as proposed herein may implement one or more enhanced functions, such as those performed in a Genome Analysis Toolkit (GATK) haplotype caller and/or using a Hidden Markov Model (HMM) tool and/or a De Bruijn Graph function, such as when one or more of those functions typically employed by a GATK haplotype caller and/or an HMM tool and/or a De Bruijn Graph function may be implemented in software and/or hardware.

[0252] Mais particularmente, conforme implantado no presente documento, várias operações de chamada de variante diferentes podem ser configuradas de modo a serem realizadas em software ou hardware e podem incluir uma ou mais das etapas a seguir. Por exemplo, a função de chamada de variante pode incluir uma identificação de região ativa, tal como para identificar locais em que múltiplas leituras divergem da referência e para gerar uma janela em torno da região ativa identificada, de modo que apenas essas regiões possam ser selecionadas para processamento adicional. Adicionalmente, a montagem de haplótipo localizada pode ocorrer, tal como quando, para cada região ativa, todas as leituras sobrepostas podem ser montadas em uma matriz de "gráfico de De Bruijn" (DBG). A partir desse DBG, vários caminhos através da matriz podem ser extraídos, em que cada caminho constitui um haplótipo candidato, por exemplo, hipóteses, para qual pode ser a sequência de DNA verdadeira em pelo menos um filamento. Ademais, o alinhamento de haplótipo pode ocorrer, tal como quando cada candidato de haplótipo extraído pode ser alinhado, por exemplo, alinhado por Smith-Waterman, de volta ao genoma de referência, de modo a determinar qual variação (ou variações) a partir da referência o mesmo implica. Além disso, um cálculo de probabilidade de leitura pode ser realizado, tal como quando cada leitura pode ser testada contra cada haplótipo, ou hipótese, para estimar uma probabilidade de observar que a leitura que assume o haplótipo foi o DNA original verdadeiro amostrado.[0252] More particularly, as implemented herein, a number of different variant calling operations may be configured to be performed in software or hardware, and may include one or more of the following steps. For example, the variant calling function may include hot region identification, such as to identify locations where multiple reads diverge from the reference, and to generate a window around the identified hot region such that only those regions may be selected for further processing. Additionally, localized haplotype assembly may occur, such as where, for each hot region, all overlapping reads may be assembled into a "De Bruijn graph" (DBG) matrix. From that DBG, a number of paths through the matrix may be extracted, where each path constitutes a candidate haplotype, e.g., hypotheses, for what may be the true DNA sequence on at least one strand. Furthermore, haplotype alignment can occur, such as when each extracted haplotype candidate can be aligned, e.g., Smith-Waterman aligned, back to the reference genome, in order to determine what variation (or variations) from the reference it implies. Furthermore, a read probability calculation can be performed, such as when each read can be tested against each haplotype, or hypothesis, to estimate a probability of observing that the read assuming the haplotype was the true original DNA sampled.

[0253] Em relação a esses processos, o cálculo de probabilidade de leitura será tipicamente a operação com maior intensidade de recursos e mais demorada a ser realizada, frequentemente exigindo uma avaliação de HMM de par. Adicionalmente, a construção de gráficos de De Bruijn para cada acúmulo de leituras, com operações associadas para identificar local e globalmente K-mers exclusivos, conforme descrito abaixo, pode ser também intensiva em recursos e/ou demorada. Consequentemente, em várias modalidades, um ou mais dos vários cálculos envolvidos na realização de uma ou mais dessas etapas podem ser configurados de modo a serem implantados em forma de software otimizado ou hardware, tal como para serem realizados de uma maneira acelerada por um circuito integrado, conforme descrito no presente documento.[0253] With respect to such processes, the calculation of read probability will typically be the most resource-intensive and time-consuming operation to perform, often requiring pairwise HMM evaluation. Additionally, the construction of De Bruijn graphs for each accumulation of reads, with associated operations to identify locally and globally unique K-mers, as described below, may also be resource-intensive and/or time-consuming. Accordingly, in various embodiments, one or more of the various calculations involved in performing one or more of these steps may be configured to be implemented in optimized software or hardware form, such as to be performed in an accelerated manner by an integrated circuit, as described herein.

[0254] Conforme indicado acima, em várias modalidades, um chamador de Haplótipo da revelação, implantado em software e/ou em hardware ou uma combinação dos mesmos pode ser configurado para incluir uma ou mais das seguintes operações: Identificação de Região Ativa, Montagem de Haplótipo Localizada, Alinhamento de Haplótipo, Cálculo de Probabilidade de Leitura e/ou Genotipagem. Por exemplo, os dispositivos, os sistemas e/ou os métodos da revelação podem ser configurados para realizar um ou mais dentre uma operação de mapeamento, alinhamento e/ou classificação em dados obtidos a partir do DNA/RNA sequenciado do sujeito para gerar dados de resultado mapeados, alinhados e/ou classificados. Esses dados de resultado podem ser, então, limpos, tal como realizando-se uma operação de duplicação nos mesmos e/ou esses dados podem ser comunicados a um ou mais mecanismos de processamento de chamador de haplótipo dedicados para realizar uma operação de chamada de variante, incluindo uma ou mais das etapas mencionadas anteriormente, nesses dados de resultados de modo a gerar um arquivo de chamada de variante em relação aos mesmos. Logo, todas as leituras que foram sequenciadas e/ou mapeadas e/ou alinhadas a posições particulares no genoma de referência podem ser submetidas a processamento adicional de modo a determinar como a sequência determinada difere de uma sequência de referência em qualquer dado ponto no genoma de referência.[0254] As indicated above, in various embodiments, a Haplotype caller of the disclosure, implemented in software and/or hardware or a combination thereof, may be configured to include one or more of the following operations: Active Region Identification, Localized Haplotype Assembly, Haplotype Alignment, Read Probability Calculation, and/or Genotyping. For example, the devices, systems, and/or methods of the disclosure may be configured to perform one or more of a mapping, alignment, and/or classification operation on data obtained from the subject's sequenced DNA/RNA to generate mapped, aligned, and/or classified result data. Such result data may then be cleaned, such as by performing a deduplication operation thereon, and/or such data may be communicated to one or more dedicated haplotype caller processing engines to perform a variant calling operation, including one or more of the aforementioned steps, on such result data so as to generate a variant call file with respect thereto. Therefore, all reads that have been sequenced and/or mapped and/or aligned to particular positions in the reference genome can be subjected to further processing in order to determine how the given sequence differs from a reference sequence at any given point in the reference genome.

[0255] Consequentemente, em várias modalidades, um dispositivo, um sistema e/ou um método de seu uso, conforme revelado no presente documento, podem incluir um sistema chamador de variante ou haplótipo que é implantado em uma configuração de software e/ou com fio para realizar uma operação de identificação de região ativa nos dados de resultados obtidos. A identificação de região ativa envolve identificar e determinar locais em que múltiplas leituras, por exemplo, em um acúmulo de leituras, divergem de uma referência e envolve adicionalmente gerar uma ou mais janelas em torno dos desacordos ("regiões ativas") de modo que a região dentro da janela possa ser selecionada para processamento adicional. Por exemplo, durante uma etapa de mapeamento e/ou alinhamento, leituras identificadas são mapeadas e/ou alinhadas às regiões no genoma de referência onde se espera que tenham sido originadas na sequência genética do sujeito.[0255] Accordingly, in various embodiments, a device, a system, and/or a method of use thereof as disclosed herein may include a variant or haplotype calling system that is implemented in a software and/or wired configuration to perform a hot region identification operation on the obtained result data. Hot region identification involves identifying and determining locations where multiple reads, e.g., in a backlog of reads, diverge from a reference and further involves generating one or more windows around the disagreements (“hot regions”) such that the region within the window may be selected for further processing. For example, during a mapping and/or alignment step, identified reads are mapped and/or aligned to regions in the reference genome where they are expected to have originated in the subject's genetic sequence.

[0256] Entretanto, conforme o sequenciamento é realizado de tal maneira a criar uma superamostragem de leituras sequenciadas para qualquer dada região do genoma, em qualquer dada posição na sequência de referência pode ser visto um acúmulo de qualquer uma e/ou todas as leituras sequenciadas que se enfileiram e se alinham com essa região. Todas essas leituras que se alinham e/ou se sobrepõem em uma dada região ou posição de acúmulo podem ser inseridas no sistema chamador de variante. Logo, para qualquer dada leitura que é analisada, a leitura pode ser comparada à referência em sua região de sobreposição suspeita, e essa leitura pode ser comparada à referência para determinar se mostra qualquer diferença em sua sequência em relação à sequência conhecida da referência. Se a leitura se alinhar à referência, se quaisquer inserções ou deleções e todas as bases forem iguais, então, o alinhamento é determinado como sendo bom.[0256] However, as sequencing is performed in such a manner as to create an oversampling of sequenced reads for any given region of the genome, at any given position in the reference sequence there may be seen an accumulation of any and/or all of the sequenced reads that queue up and align with that region. All of these reads that align and/or overlap at a given cluster region or position may be input into the variant calling system. Thus, for any given read that is analyzed, the read may be compared to the reference at its suspected overlap region, and that read may be compared to the reference to determine whether it shows any differences in its sequence from the known sequence of the reference. If the read aligns to the reference, if any insertions or deletions and all bases are the same, then the alignment is determined to be good.

[0257] Logo, para qualquer dada leitura mapeada e/ou alinhada, a leitura pode ter bases que são diferentes da referência, por exemplo, a leitura pode incluir um ou mais SNPs, criando uma posição em que uma base é incompatível; e/ou a leitura pode ter uma ou mais dentre uma inserção e/ou deleção, por exemplo, criando uma lacuna no alinhamento. Consequentemente, em qualquer um desses casos, haverá uma ou mais divergências que precisam ser consideradas pelo processamento adicional. No entanto, para economizar tempo e aumentar a eficácia, tal processamento adicional deve ser limitado àqueles casos em que uma divergência percebida não é trivial, por exemplo, uma diferença não ruído. Para determinar a significância de uma divergência, locais em que múltiplas leituras em um acúmulo divergem da referência podem ser identificados como uma região ativa, uma janela em torno da região ativa pode ser, então, usada para selecionar um locus de desacordo que pode ser, então, submetido a processamento adicional. O desacordo, entretanto, deve ser não trivial. Isso pode ser determinado de muitas formas, por exemplo, a probabilidade de não referência pode ser calculada para cada locus em questão, tal como analisando-se pontuações de qualidade de correspondência vs divergência de base, tal como acima de um dado limite considerado como sendo uma quantidade suficientemente significativa de indicação dessas leituras que divergem da referência de uma forma significativa.[0257] Thus, for any given mapped and/or aligned read, the read may have bases that are different from the reference, e.g., the read may include one or more SNPs, creating a position where a base is mismatched; and/or the read may have one or more of an insertion and/or deletion, e.g., creating a gap in the alignment. Consequently, in any of these cases, there will be one or more divergences that need to be considered by further processing. However, to save time and increase efficiency, such further processing should be limited to those cases where a perceived divergence is non-trivial, e.g., a non-noise difference. To determine the significance of a divergence, locations where multiple reads in a pool diverge from the reference can be identified as a hot region, a window around the hot region can then be used to select a locus of disagreement that can then be subjected to further processing. The disagreement, however, must be non-trivial. This can be determined in many ways, for example, the probability of non-reference can be calculated for each locus in question, such as by looking at match quality scores vs baseline divergence, such as above a given threshold considered to be a sufficiently significant amount of indication of those reads that diverge from the reference in a significant way.

[0258] Por exemplo, se 30 de todas as leituras mapeadas e/ou alinhadas se alinharem e/ou se sobrepuserem de modo a formar um acúmulo em uma dada posição na referência, por exemplo, uma região ativa, e apenas 1 ou 2 dentre as 30 leituras divergem da referência, então, o limite mínimo para processamento adicional pode ser considerado como não tendo sido atendido, e a leitura (ou leituras) não de acordo pode ser desconsiderada em vista das 28 ou 29 leituras que estão de acordo. Entretanto, se 3 ou 4, ou 5, ou 10, ou mais das leituras no acúmulo divergirem, então, o desacordo pode ser estatisticamente significativa o suficiente para justificar processamento adicional, e uma região ativa em torno da região (ou regiões) identificada de diferença deve ser determinada. Em tal caso, uma janela de região ativa que determina as bases que circundam essa diferença pode ser tomada para gerar contexto intensificado à região que circunda a diferença, e etapas adicionais de processamento, tal como realizar uma distribuição gaussiana e soma de probabilidades de não referência distribuídas através de posições vizinhas, podem ser realizadas para investigar e processar adicionalmente essa região para verificar se uma região ativa deve ser declarada e, se sim, quais variâncias da referência realmente estão presentes dentro dessa região, se houver. Portanto, a determinação de uma região ativa identifica aquelas regiões em que processamento extra pode ser necessário para determinar claramente se uma variância verdadeira ou um erro de leitura ocorreu.[0258] For example, if 30 of all mapped and/or aligned reads align and/or overlap so as to form a cluster at a given position in the reference, e.g., a hot region, and only 1 or 2 of the 30 reads diverge from the reference, then the minimum threshold for further processing may be considered not to have been met, and the non-compliant read (or reads) may be disregarded in view of the 28 or 29 reads that do agree. However, if 3 or 4, or 5, or 10, or more of the reads in the cluster diverge, then the disagreement may be statistically significant enough to warrant further processing, and an active region around the identified region (or regions) of difference should be determined. In such a case, an active region window that determines the bases surrounding this mismatch can be taken to generate enhanced context for the region surrounding the mismatch, and additional processing steps, such as performing a Gaussian distribution and summing non-reference probabilities distributed across neighboring positions, can be performed to investigate and further process this region to see if an active region should be declared and, if so, what, if any, variances from the reference are actually present within this region. Thus, determining an active region identifies those regions where extra processing may be necessary to clearly determine whether a true variance or a misread has occurred.

[0259] Particularmente, devido ao fato de que, em muitos casos, não é desejável submeter cada região em um acúmulo de sequências a processamento adicional, uma região ativa pode ser identificada de modo que a mesma seja apenas aquela região em que processamento extra pode ser necessário para determinar claramente se uma variância verdadeira ou um erro de leitura ocorreu que pode ser determinado como precisando de processamento adicional. E, conforme indicado acima, pode ser o tamanho da variância suporta que determina o tamanho da janela da região ativa. Por exemplo, em vários casos, os limites da janela ativa podem variar de 1 ou 2 ou cerca de 10 ou 20 ou mesmo cerca de 25 ou cerca de 50 a cerca de 200 ou cerca de 300, ou cerca de 500 ou cerca de 1.000 bases de comprimento ou mais, em que está apenas dentro dos limites da janela ativa em que o processamento adicional está ocorrendo. Obviamente, o tamanho da janela ativa pode ser qualquer comprimento adequado contanto que forneça o contexto para determinar a importância estatística de uma diferença.[0259] In particular, because in many cases it is not desirable to subject every region in a sequence backlog to further processing, an active region may be identified such that it is just that region where extra processing may be needed to clearly determine whether a true variance or a read error has occurred that can be determined to need further processing. And, as indicated above, it may be the size of the variance supported that determines the size of the active region window. For example, in various cases, the boundaries of the active window may range from 1 or 2 or about 10 or 20 or even about 25 or about 50 to about 200 or about 300, or about 500 or about 1,000 bases in length or more, where it is just within the boundaries of the active window that additional processing is occurring. Of course, the size of the active window may be any suitable length so long as it provides the context for determining the statistical significance of a difference.

[0260] Logo, se houver apenas uma ou duas diferenças isoladas, então, a janela ativa pode apenas precisar cobrir um ou mais a algumas dúzias de bases na região ativa de modo a ter contexto suficiente para produzir uma chamada estatística que uma variante real está presente. Entretanto, se houver um agrupamento ou muitas diferenças, ou se houver indels presentes para os quais mais contexto é desejado, então, a janela pode ser configurada de modo a ser mais longa. Em qualquer caso, pode ser desejável analisar qualquer uma e todas as diferenças que possam ocorrer em agrupamentos, de modo a analisar todos os mesmos em uma ou mais regiões ativas, devido ao fato de que fazê-lo pode fornecer informações sobre cada diferença individual e economizará tempo de processamento diminuindo o número de janelas envolvidas. Em vários casos, os limites da região ativa podem ser determinados por probabilidades ativas que passam um dado limite, tal como cerca de 0,00001 ou cerca de 0,00001 ou cerca de 0,0001 ou menos a cerca de 0,002 ou cerca de 0,02 ou cerca de 0,2 ou mais. E se a região ativa for mais longa que um dado limite, por exemplo, cerca de 300 a 500 bases ou 1.000 bases ou mais, então, a região pode ser quebrada em sub-regiões, tal como por sub-regiões definidas pelo locus com a pontuação de probabilidade ativa mais baixa.[0260] Thus, if there are only one or two isolated differences, then the active window may only need to cover one or more to a few dozen bases in the active region in order to have enough context to produce a statistical call that a real variant is present. However, if there is a cluster or many differences, or if there are indels present for which more context is desired, then the window may be set to be longer. In any case, it may be desirable to analyze any and all differences that may occur in clusters, so as to analyze all of them in one or more active regions, because doing so can provide information about each individual difference and will save processing time by decreasing the number of windows involved. In many cases, the boundaries of the active region can be determined by active probabilities passing a given threshold, such as about 0.00001 or about 0.00001 or about 0.0001 or less to about 0.002 or about 0.02 or about 0.2 or more. And if the active region is longer than a given threshold, for example, about 300 to 500 bases or 1,000 bases or more, then the region can be broken into subregions, such as by subregions defined by the locus with the lowest active probability score.

[0261] Em vários casos, após uma região ativa ser identificada, um procedimento de montagem de haplótipo localizado pode ser realizado. Por exemplo, em cada região ativa, todas as leituras acumuladas e/ou sobrepostas podem ser montadas em um "Gráfico de De Bruijn" (DBG). Um DBG pode ser um gráfico direcionado com base em todas as leituras que sobrepuseram a região ativa selecionada, em que a região ativa pode ter cerca de 200 ou cerca de 300 a cerca de 400 ou cerca de 500 bases de comprimento ou mais, dentro de qual região ativa a presença e/ou a identidade de variantes devem ser determinadas. Em vários casos, conforme indicado acima, a região ativa pode ser estendida, por exemplo, incluindo-se outras cerca de 100 ou cerca de 200 ou mais bases em cada direção do locus em questão de modo a gerar uma região ativa estendida, tal como quando contexto adicional que circunda uma diferença pode ser desejado. Consequentemente, é da janela de região ativa, estendida ou não, que todas as leituras que têm porções que se sobrepõem à região ativa são acumuladas, por exemplo, para produzir um acúmulo, as porções sobrepostas são identificadas, e as sequências de leitura são inseridos no sistema de chamador de haplótipo e são, assim, montadas juntas na forma de um gráfico de De Bruin, muito similarmente às peças de um quebra-cabeças.[0261] In various cases, after an active region is identified, a localized haplotype assembly procedure may be performed. For example, within each active region, all accumulated and/or overlapping reads may be assembled into a "De Bruijn Graph" (DBG). A DBG may be a directed graph based on all reads that overlapped the selected active region, wherein the active region may be about 200 or about 300 to about 400 or about 500 bases in length or more, within which active region the presence and/or identity of variants is to be determined. In various cases, as noted above, the active region may be extended, for example, by including another about 100 or about 200 or more bases in each direction from the locus in question so as to generate an extended active region, such as when additional context surrounding a difference may be desired. Consequently, it is from the active region window, extended or not, that all reads that have portions that overlap the active region are accumulated, i.e. to produce an accumulation, the overlapping portions are identified, and the read sequences are input into the haplotype caller system and are thus assembled together in the form of a De Bruin graph, much like the pieces of a jigsaw puzzle.

[0262] Consequentemente, para qualquer dada janela ativa, haverá leituras que formam um acúmulo de modo que, em massa, o acúmulo incluirá uma trajetória de sequência através da qual as regiões sobrepostas das várias leituras sobrepostas no acúmulo cobrem a sequência inteira dentro da janela ativa. Logo, em qualquer dado locus na região ativa, haverá uma pluralidade de leituras que sobrepõem esse locus, embora qualquer dada leitura possam não estender a região ativa inteira. O resultado disso é que várias regiões de várias leituras dentro do acúmulo são empregadas pelo DBG na determinação de se uma variante realmente está presente ou não para qualquer dado locus na sequência dentro da região ativa. Como está dentro da janela ativa em que essa determinação está sendo realizada, são essas porções de qualquer dada leitura dentro das bordas da janela ativa que são consideradas, e aquelas porções que estão fora da janela ativa podem ser descartadas.[0262] Accordingly, for any given active window, there will be reads that form a cluster such that, in bulk, the cluster will include a sequence trajectory through which the overlapping regions of the multiple overlapping reads in the cluster cover the entire sequence within the active window. Thus, at any given locus in the active region, there will be a plurality of reads that overlap that locus, although any given read may not span the entire active region. The result of this is that multiple regions of multiple reads within the cluster are employed by the DBG in determining whether or not a variant is actually present for any given locus in the sequence within the active region. Since it is within the active window in which this determination is being made, it is those portions of any given read within the borders of the active window that are considered, and those portions that fall outside the active window may be discarded.

[0263] Conforme indicado, são aquelas seções das leituras que sobrepões a referência dentro da região ativa que são alimentadas no sistema de DBG. O sistema de DBG, então, monta as leituras como um quebra-cabeças em um gráfico e, então, para cada posição na sequência, é determinado com base na coleção de leituras sobrepostas para essa posição, se há uma correspondência ou uma divergência para qualquer dada, e, se houver uma divergência, qual é a probabilidade dessa divergência. Por exemplo, quando há locais discretos em que segmentos das leituras no acúmulo se sobrepõe uns aos outros, os mesmos podem ser alinhados um ao outro com base em suas áreas de correspondência e a partir de encadeamento ou sutura das leituras de correspondência juntas, conforme determinado por seus pontos de correspondência, pode ser estabelecido, para cada posição dentro desse segmento, se e até que ponto as leituras em qualquer dada posição correspondem ou divergem uma da outra. Logo, se duas ou mais leituras que são compiladas se alinharem e corresponderem uma à outra identicamente por um período, um gráfico que tem uma única cadeia resultará; entretanto, quando as duas ou mais leituras entram em um ponto de diferença, uma ramificação no gráfico será formada, e duas ou mais cadeias divergentes resultarão, até a correspondência entre as duas ou mais leituras ser retomada.[0263] As indicated, it is those sections of the readings that overlap the reference within the active region that are fed into the DBG system. The DBG system then assembles the readings like a jigsaw puzzle on a graph, and then for each position in the sequence, it is determined based on the collection of overlapping readings for that position whether there is a match or a mismatch for any given position, and if there is a mismatch, what the probability of that mismatch is. For example, where there are discrete locations where segments of the readings in the accumulation overlap each other, they can be aligned to each other based on their areas of match, and from chaining or stitching the matching readings together as determined by their points of match, it can be established, for each position within that segment, whether and to what extent the readings at any given position match or mismatch each other. Thus, if two or more readings that are compiled align and match each other identically for a period, a graph that has a single chain will result; however, when the two or more readings come into a point of difference, a branch in the graph will be formed, and two or more divergent chains will result, until correspondence between the two or more readings is resumed.

[0264] Logo, as trajetórias através do gráfico não são frequentemente uma linha reta. Por exemplo, quando os k-mers de uma leitura variam a partir dos k-mers da referência e/ou os k-mers de uma ou mais leituras sobrepostas, por exemplo, no acúmulo, uma "bolha" será formada no gráfico no ponto de diferença, resultando em duas cadeias divergentes que continuarão ao longo de duas linhas de caminho diferentes até a correspondência entre as duas sequências ser retomada. Cada vértice pode receber uma pontuação ponderada que identifica quantas vezes os respectivos k-mers se sobrepõem em todas as leituras no acúmulo. Particularmente, cada trajetória que se estende através do gráfico gerado de um lado ao outro pode receber uma contagem. E quando os mesmos k-mers são gerados a partir de uma multiplicidade de leituras, por exemplo, em que cada k-mer tem o mesmo padrão de sequência, os mesmos podem ser representados no gráfico aumentando-se a contagem para essa trajetória em que o k-mer sobrepõe uma trajetória de k-mer já existente. Logo, quando o mesmo k-mer é gerado a partir de uma multiplicidade de leituras sobrepostas que têm a mesma sequência, o padrão da trajetória entre o gráfico será repetido novamente e a contagem para cruzar essa trajetória através do gráfico será aumentada incrementalmente em correspondência com o mesmo. Em tal caso, o padrão é apenas registrado para a primeira instância do k-mer, e a contagem é aumentada incrementalmente para cada k-mer que repete esse padrão. Nesse modo, as várias leituras no acúmulo podem ser coletadas para determinar quais variações ocorrem e onde.[0264] Thus, trajectories through the graph are often not a straight line. For example, when the k-mers of a read vary from the k-mers of the reference and/or the k-mers of one or more overlapping reads, e.g. in the stack, a "bubble" will form in the graph at the point of difference, resulting in two divergent chains that will continue along two different pathlines until the two sequences are matched again. Each vertex can be assigned a weighted score that identifies how many times the respective k-mers overlap across all reads in the stack. In particular, each trajectory that extends through the generated graph from one end to the other can be assigned a count. And when the same k-mers are generated from a plurality of reads, e.g. where each k-mer has the same sequence pattern, they can be represented in the graph by increasing the count for that trajectory where the k-mer overlaps an already existing k-mer trajectory. Hence, when the same k-mer is generated from a multitude of overlapping reads that have the same sequence, the trajectory pattern across the graph will be repeated again and the count for crossing that trajectory across the graph will be incrementally increased accordingly. In such a case, the pattern is only recorded for the first instance of the k-mer, and the count is incrementally increased for each k-mer that repeats that pattern. In this way, the multiple reads in the accumulation can be collected to determine which variations occur where.

[0265] De uma maneira tal como essa, uma matriz de gráfico pode ser formada tomando-se todos N k-mers de base possíveis, por exemplo, 10 k-mers de base, que podem ser gerados a partir de cada leitura percorrendo-se sequencialmente o comprimento da leitura em dez segmentos de base, em que o começo de cada novo segmento de base está deslocado em uma base em relação ao último segmento de 10 bases gerado. Esse procedimento pode ser, então, repetido fazendo-se o mesmo para cada leitura no acúmulo dentro da janela ativa. Os k-mers gerados podem ser, então, alinhados uns aos outros de modo que as áreas de correspondência idêntica entre os k-mers gerados sejam correspondentes às áreas em que se sobrepõem, de modo a construir uma estrutura de dados, por exemplo, gráfico, que pode ser, então, escaneado e a porcentagem de correspondência e divergência pode ser determinada. Particularmente, a referência e quaisquer k-mers anteriormente processados alinhados com a mesma podem ser escaneados em relação ao k-mer seguinte gerado para determinar se o presente de k-mer gerado corresponde e/ou se sobrepõe a qualquer porção de um k-mer anteriormente gerado, e onde mostra corresponder ao presente k-mer gerado pode ser, então, inserido no gráfico na posição adequada.[0265] In such a manner, a graph matrix may be formed by taking all N possible base k-mers, e.g., 10 base k-mers, which may be generated from each read by sequentially traversing the length of the read in ten base segments, where the start of each new base segment is offset by one base relative to the last 10 base segment generated. This procedure may then be repeated by doing the same for each read in the accumulation within the active window. The generated k-mers may then be aligned with each other such that areas of identical correspondence between the generated k-mers correspond to areas where they overlap, so as to construct a data structure, e.g., graph, which may then be scanned and the percentage of correspondence and divergence determined. In particular, the reference and any previously processed k-mers aligned to it can be scanned against the next generated k-mer to determine whether the present generated k-mer matches and/or overlaps with any portion of a previously generated k-mer, and where it shows a match to the present generated k-mer it can then be inserted into the graph at the appropriate position.

[0266] Uma vez construído, o gráfico pode ser escaneado e pode ser determinado com base nessa correspondência se quaisquer dados SNPs e/ou indels nas leituras em relação à referência serão provavelmente uma variação real no código genético do sujeito ou o resultado de um processamento ou outro erro. Por exemplo, se todos ou uma porção significativa dos k-mers, de todas ou uma porção significativa de todas as leituras, em uma dada região incluírem a mesma divergência de SNP e/ou indel, mas diferirem da referência da mesma maneira, então pode ser determinado que há realmente uma variação de SNP e/ou indel no genoma do sujeito em comparação com o genoma de referência. Entretanto, se apenas um número limitado de k-mers de um número limitado de leituras evidenciar o artefato, é provável que seja causado por máquina e/ou processamento e/ou outro erro e não indicativo de variação verdadeira na posição em questão.[0266] Once constructed, the graph can be scanned and it can be determined based on this correspondence whether any given SNPs and/or indels in the reads relative to the reference are likely to be true variation in the subject's genetic code or the result of a processing or other error. For example, if all or a significant portion of the k-mers from all or a significant portion of all reads in a given region include the same SNP and/or indel divergence but differ from the reference in the same manner, then it can be determined that there is indeed SNP and/or indel variation in the subject's genome compared to the reference genome. However, if only a limited number of k-mers from a limited number of reads evidence the artifact, it is likely to be caused by machine and/or processing and/or other error and not indicative of true variation at the position in question.

[0267] Conforme indicado, quando há uma variância suspeita, uma bolha será formada dentro do gráfico. Especificamente, quando todos os k-mers dentro de uma dada região de leituras correspondem à referência, os mesmos se alinharão de tal maneira a formar um gráfico linear. Entretanto, quando há uma diferença entre as bases em um dado locus, é nesse locus de diferença que esse gráfico se ramificará. Essa ramificação pode estar em qualquer posição dentro do k-mer e, consequentemente, nesse ponto de diferença o k-mer de 10 bases, incluindo essa diferença, divergirá do restante dos k-mers no gráfico. Em tal caso, um novo nó, que forma uma trajetória diferente através do gráfico, será formado.[0267] As indicated, when there is a suspicious variance, a bubble will form within the graph. Specifically, when all k-mers within a given region of reads match the reference, they will align in such a way as to form a linear graph. However, when there is a difference between the bases at a given locus, it is at that locus of difference that this graph will branch. This branch can be at any position within the k-mer, and consequently, at that point of difference the 10-base k-mer including that difference will diverge from the rest of the k-mers in the graph. In such a case, a new node, which forms a different trajectory through the graph, will be formed.

[0268] Logo, quando tudo pode ter estado em conformidade, por exemplo, a sequência no dado novo k-mer que é representado em gráfico está correspondendo à sequência à qual a mesma se alinha no gráfico, até o ponto de diferença em que a trajetória para esse k-mer corresponderá à trajetória para o gráfico de modo geral e será linear, mas, após o ponto de diferença, uma nova trajetória através do gráfico emergirá para acomodar a diferença representada na sequência do k-mer recém- representado em gráfico. Essa divergência é representada por um novo nó dentro do gráfico. Em tal caso, quaisquer novos k-mers a serem adicionados ao gráfico que correspondem à trajetória recém-divergente aumentarão a contagem nesse nó. Logo, para cada leitura que suporta o arco, a contagem será aumentada incrementalmente.[0268] Thus, when everything may have been in agreement, for example, the sequence in the given new k-mer that is graphed is matching the sequence to which it aligns in the graph, up to the point of difference at which the trajectory for that k-mer will match the trajectory for the graph overall and will be linear, but after the point of difference, a new trajectory through the graph will emerge to accommodate the difference represented in the sequence of the newly graphed k-mer. This divergence is represented by a new node within the graph. In such a case, any new k-mers added to the graph that match the newly diverged trajectory will increase the count at that node. Thus, for each read that supports the arc, the count will be incrementally increased.

[0269] Em vários de tais casos, o k-mer e/ou a leitura que o mesmo representa iniciará novamente a correspondência, por exemplo, após o ponto de divergência, de modo que haja agora um ponto de convergência em que os k-mer começam a corresponder à trajetória principal através do gráfico representado pelos k-mers da sequência de referência. Por exemplo, naturalmente após um período, a leitura (ou leituras) que suporta o nó ramificado deve reunir-se ao gráfico ao longo do tempo. Assim, ao longo do tempo, os k-mers para essa leitura serão reunidos à trajetória principal novamente. Mais particularmente, para um SNP em um dado locus dentro de uma leitura, o k-mer que inicia nesse SNP divergirá do gráfico principal e permanecerá separado por cerca de 10 nós, devido ao fato de que há 10 bases por k-mer que sobrepõem esse locus de divergência entre a leitura e a referência. Logo, para um SNP, na 11a posição, os k-mers que cobrem esse locus dentro da leitura serão reunidos à trajetória principal conforme a correspondência exata é retomada. Consequentemente, serão necessários dez deslocamentos para os k-mers de uma leitura que tem um SNP em um dado locus ser reunido ao gráfico principal representado pela sequência de referência.[0269] In many such cases, the k-mer and/or the read it represents will start matching again, for example after the point of divergence, so that there is now a point of convergence where the k-mers start matching the main trajectory through the graph represented by the k-mers of the reference sequence. For example, naturally after a period of time, the read (or reads) supporting the branched node should rejoin the graph over time. Thus, over time, the k-mers for that read will rejoin the main trajectory again. More particularly, for a SNP at a given locus within a read, the k-mer starting at that SNP will diverge from the main graph and remain separated by about 10 nodes, due to the fact that there are 10 bases per k-mer that overlap that locus of divergence between the read and the reference. Thus, for a SNP at position 11, the k-mers covering that locus within the read will be rejoined to the main trajectory as the exact match is resumed. Consequently, it will take ten shifts for the k-mers from a read that has a SNP at a given locus to be rejoined to the main graph represented by the reference sequence.

[0270] Conforme indicado acima, há tipicamente um caminho ou linha ou cadeia principal que é o caminho de referência, e, quando há uma divergência, uma bolha é formada em um nó em que há uma diferença entre uma leitura e o gráfico de cadeia principal. Assim, há algumas leituras que divergem da cadeia principal e formam uma bolha, em que a divergência pode ser indicativa da presença de uma variante. Conforme o gráfico é processado, bolhas dentro de bolhas dentro de bolhas podem ser formadas ao longo da cadeia principal de referência, de modo que sejam empilhadas e uma pluralidade de trajetórias através do gráfico possa ser criada. Em tal caso, pode haver um caminho principal representado pela cadeia principal de referência, um caminho de uma primeira divergência, e outro caminho de uma segunda divergência dentro da primeira divergência, todas dentro de uma dada janela, cada trajetória através do gráfico pode representar uma variação real ou pode ser um artefato tal como causado por erro de sequenciamento, e/ou erro de PCR, e/ou um erro de processamento, e similares.[0270] As indicated above, there is typically a path or line or parent strand that is the reference path, and when there is a divergence, a bubble is formed at a node where there is a difference between a read and the parent strand graph. Thus, there are some reads that diverge from the parent strand and form a bubble, where the divergence may be indicative of the presence of a variant. As the graph is processed, bubbles within bubbles within bubbles may be formed along the reference parent strand, such that they are stacked and a plurality of trajectories through the graph may be created. In such a case, there may be a parent pathway represented by the reference parent strand, a pathway from a first divergence, and another pathway from a second divergence within the first divergence, all within a given window, each trajectory through the graph may represent a real variation or may be an artifact such as caused by sequencing error, and/or PCR error, and/or a processing error, and the like.

[0271] Uma vez que tal gráfico tenha sido produzido, precisa ser determinado quais trajetórias através do gráfico representam variações reais presentes dentro do genoma de amostra que quais são meros artefatos. Embora seja esperado que as leituras contendo erros de manuseio ou máquina não serão suportadas pela maioria das leituras no acúmulo de amostra, entretanto, esse não é sempre o caso. Por exemplo, erros em processamento de PCR podem ser tipicamente o resultado de um engano de clonagem que ocorre ao preparar a amostra de DNA, tais enganos tendem a resultar em uma inserção e/ou uma deleção ser adicionada à sequência clonada. Tais erros de indel podem ser mais consistentes entre leituras, e podem acabar com a geração de múltiplas leituras que têm o mesmo erro a partir desse engano na clonagem de PCR. Consequentemente, uma linha de contagem mais alta para tal ponto de divergência pode resultar devido a tais erros.[0271] Once such a graph has been produced, it needs to be determined which trajectories through the graph represent actual variation present within the sample genome and which are mere artifacts. While it is expected that reads containing handling or machine errors will not be supported by the majority of reads in the sample backlog, however, this is not always the case. For example, errors in PCR processing may typically be the result of a cloning mistake that occurs when preparing the DNA sample; such mistakes tend to result in an insertion and/or a deletion being added to the cloned sequence. Such indel errors may be more consistent between reads, and may result in the generation of multiple reads that have the same error from that PCR cloning mistake. Consequently, a higher line count for such a divergence point may result due to such errors.

[0272] Logo, uma vez que uma matriz de gráfico tenha sido formada, com muitos caminhos através do gráfico, o estágio seguinte deve cruzar e, assim, extrair todos os caminhos através do gráfico, por exemplo, esquerda para direita. Um caminho será a cadeia principal de referência, mas haverá outros caminhos que seguem várias bolhas ao longo do caminho. Todos os caminhos precisam ser cruzados e sua contagem tabulada. Por exemplo, se o gráfico incluir uma trajetória com uma bolha de dois níveis em um ponto e uma bolha de três níveis em outro ponto, haverá (2 x 3)<6>caminhos através desse gráfico. Assim, cada um dos caminhos precisará individualmente ser extraído, em que os caminhos extraídos são denominados como haplótipos candidatos. Tais haplótipos candidatos representam teorias para as quais poderia ser realmente representativo do DNA real do sujeito que foi sequenciado, e as etapas de processamento a seguir, incluindo um ou mais dentre alinhamento de haplótipo, cálculo de probabilidade de leitura e/ou genotipagem, podem ser empregadas para testar essas teorias de modo a encontrar as probabilidades de que qualquer uma e/ou cada uma dessas teorias está correta. A implantação de uma reconstrução de gráfico de De Bruijn, portanto, representa uma forma de extrair de forma confiável um bom conjunto de hipóteses para teste.[0272] Thus, once a graph matrix has been formed, with many paths through the graph, the next stage must traverse and thus extract all paths through the graph, e.g. left to right. One path will be the main reference chain, but there will be other paths that follow various bubbles along the path. All paths need to be traversed and their count tabulated. For example, if the graph includes a trajectory with a two-level bubble at one point and a three-level bubble at another point, there will be (2 x 3)<6> paths through that graph. Thus, each of the paths will need to be individually extracted, where the extracted paths are referred to as candidate haplotypes. Such candidate haplotypes represent theories that could be truly representative of the actual DNA of the subject that was sequenced, and the following processing steps, including one or more of haplotype alignment, read probability calculation, and/or genotyping, can be employed to test these theories in order to find the probabilities that any and/or each of these theories is correct. Implementing a De Bruijn graph reconstruction therefore represents a way to reliably extract a good set of hypotheses for testing.

[0273] Por exemplo, na realização de uma função de chamada de variante, conforme revelado no presente documento, uma operação de identificação de região ativa pode ser implantada, tal como para identificar locais onde múltiplas leituras em um acúmulo dentro de uma dada regiões ativas divergem em relação à referência, e para gerar uma janela em torno da região ativa identificada, de modo que apenas essas regiões possam ser selecionadas para processamento adicional. Adicionalmente, a montagem de haplótipo localizada pode ocorrer, tal como quando, para cada região ativa, todas as leituras sobrepostas no acúmulo podem ser montadas em uma matriz de "gráfico de De Bruijn" (DBG). A partir desse DBG, vários caminhos através da matriz podem ser extraídos, em que cada caminho constitui um haplótipo candidato, por exemplo, hipóteses, para qual pode ser a sequência de DNA verdadeira em pelo menos um filamento.[0273] For example, in performing a variant calling function as disclosed herein, an active region identification operation may be implemented, such as to identify locations where multiple reads in a cluster within a given active region diverge from the reference, and to generate a window around the identified active region such that only those regions may be selected for further processing. Additionally, localized haplotype assembly may occur, such as where, for each active region, all overlapping reads in the cluster may be assembled into a "De Bruijn graph" (DBG) matrix. From this DBG, multiple paths through the matrix may be extracted, where each path constitutes a candidate haplotype, e.g., hypotheses, for what may be the true DNA sequence on at least one strand.

[0274] Ademais, o alinhamento de haplótipo pode ocorrer, tal como quando cada candidato de haplótipo extraído pode ser alinhado, por exemplo, alinhado por Smith-Waterman, de volta ao genoma de referência, de modo a determinar qual variação (ou variações) a partir da referência o mesmo implica. Além disso, um cálculo de probabilidade de leitura pode ser realizado, tal como quando cada leitura pode ser testada contra cada haplótipo para estimar uma probabilidade de observar que a leitura que assume o haplótipo foi o DNA original verdadeiro amostrado. Finalmente, uma operação de genotipagem pode ser implantada, e um arquivo de chamada de variante produzido. Conforme indicado acima, qualquer uma ou todas essas operações podem ser configuradas de modo a serem implantadas de uma maneira otimizada em software e/ou em hardware, e, em vários casos, devido à natureza intensiva em recursos e demorada de construir uma matriz de DBG e extrair haplótipos candidatos da mesma e/ou devido à natureza intensiva em recursos e demorada de realizar um alinhamento de haplótipo e/ou um cálculo de probabilidade de leitura, que pode incluir o envolvimento de uma avaliação de Modelo Oculto de Markov (HMM), essas operações (por exemplo, montagem de haplótipo localizada e/ou alinhamento de haplótipo e/ou cálculo de probabilidade de leitura) ou uma porção das mesmas podem ser configuradas de modo a ter uma ou mais funções de sua operação implantadas em uma forma com fio, tal como para serem realizadas de uma maneira acelerada por um circuito integrado conforme descrito no presente documento. Em vários casos, essas tarefas podem ser configuradas para serem implantadas por um ou mais circuitos quânticos, tal como em um dispositivo de computação quântica.[0274] Further, haplotype alignment may occur, such as where each extracted haplotype candidate may be aligned, e.g., Smith-Waterman aligned, back to the reference genome, so as to determine what variation (or variations) from the reference it entails. Further, a read probability calculation may be performed, such as where each read may be tested against each haplotype to estimate a probability of observing that the read assuming the haplotype was the true original DNA sampled. Finally, a genotyping operation may be implemented, and a variant call file produced. As indicated above, any or all of these operations may be configured to be implemented in an optimized manner in software and/or in hardware, and in various cases, due to the resource-intensive and time-consuming nature of constructing a DBG matrix and extracting candidate haplotypes therefrom and/or due to the resource-intensive and time-consuming nature of performing a haplotype alignment and/or a read probability calculation, which may include the involvement of a Hidden Markov Model (HMM) evaluation, these operations (e.g., localized haplotype assembly and/or haplotype alignment and/or read probability calculation) or a portion thereof may be configured to have one or more functions of their operation implemented in a hard-wired fashion, such as to be performed in an accelerated manner by an integrated circuit as described herein. In various cases, these tasks may be configured to be implemented by one or more quantum circuits, such as in a quantum computing device.

[0275] Consequentemente, em vários casos, os dispositivos, os sistemas e os métodos para realizar os mesmos podem ser configurados de modo a realizar um alinhamento de haplótipo e/ou um cálculo de probabilidade de leitura. Por exemplo, conforme indicado, cada haplótipo extraído pode ser alinhado, tal como alinhado por Smith-Waterman, de volta ao genoma de referência, de modo a determinar qual variação (ou variações) a partir da referência o mesmo implica. Em vários casos exemplificativos, a pontuação pode ocorrer, tal como em conformidade os seguintes parâmetros de pontuação exemplificativos: uma correspondência = 20,0; uma divergência = -15,0; uma abertura de lacuna -26,0; e uma extensão de lacuna = -1,1, outros parâmetros de pontuação podem ser usados. Consequentemente, dessa maneira, um filamento CIGAR pode ser gerado e associado ao haplótipo para produzir um haplótipo montado, em que o haplótipo montado pode ser eventualmente usado para identificar as variantes. Consequentemente, de uma maneira tal como essa, a probabilidade de uma dada leitura estar associada a um dado haplótipo pode ser calculada para todas as combinações de leitura/haplótipo. Em tais casos, a probabilidade pode ser calculada com o uso de um Modelo Oculto de Markov (HMM).[0275] Accordingly, in various instances, the devices, systems, and methods for performing the same may be configured to perform a haplotype alignment and/or a read probability calculation. For example, as indicated, each extracted haplotype may be aligned, such as by Smith-Waterman alignment, back to the reference genome, so as to determine what variation (or variations) from the reference it entails. In various exemplary instances, scoring may occur, such as in accordance with the following exemplary scoring parameters: a match = 20.0; a mismatch = -15.0; a gap opening -26.0; and a gap extension = -1.1, other scoring parameters may be used. Accordingly, in this manner, a CIGAR strand may be generated and associated with the haplotype to produce an assembled haplotype, wherein the assembled haplotype may eventually be used to identify variants. Consequently, in a manner such as this, the probability of a given read being associated with a given haplotype can be calculated for all read/haplotype combinations. In such cases, the probability can be calculated using a Hidden Markov Model (HMM).

[0276] Por exemplo, os vários haplótipos montados podem ser alinhados em conformidade com um modelo de programação dinâmica similar a um alinhamento de SW. Em tal caso, uma matriz virtual pode ser gerada tal como quando o haplótipo candidato, por exemplo, gerado pelo DBG, pode ser posicionado em um eixo geométrico de um arranjo virtual, e a leitura pode ser posicionada no outro eixo geométrico. A matriz pode ser, então, preenchida com as pontuações geradas cruzando-se os caminhos extraídos através do gráfico e calculando-se as probabilidades de que qualquer dado caminho seja o caminho verdadeiro. Logo, em tal caso, uma diferença nesse protocolo de alinhamento em relação a um protocolo de alinhamento de SW típico é que, em relação a encontrar o caminho mais provável através do arranjo, um cálculo máxima verossimilhança é usado, tal como um cálculo realizado por um modelo HMM que é configurado para fornecer a probabilidade total para alinhamento das leituras ao haplótipo. Logo, um alinhamento de filamento CIGAR real, nesse caso, não precisa ser produzido. Em vez disso, todos os alinhamentos possíveis são considerados e suas possibilidades são somadas. A avaliação de HMM em par é intensiva em recurso e tempo e, assim, implantar suas operações dentro de uma configuração com fio dentro de um circuito integrado ou por meio de circuitos quânticos em uma plataforma de computação quântica é muito vantajoso.[0276] For example, the various assembled haplotypes may be aligned according to a dynamic programming model similar to a SW alignment. In such a case, a virtual matrix may be generated such as when the candidate haplotype, e.g. generated by DBG, may be positioned on one geometric axis of a virtual array, and the read may be positioned on the other geometric axis. The matrix may then be populated with the scores generated by traversing the extracted paths through the graph and calculating the probabilities that any given path is the true path. Thus, in such a case, a difference in this alignment protocol from a typical SW alignment protocol is that, in order to find the most likely path through the array, a maximum likelihood calculation is used, such as a calculation performed by an HMM model that is configured to provide the total probability for alignment of the reads to the haplotype. Thus, an actual CIGAR strand alignment in this case does not need to be produced. Instead, all possible alignments are considered and their probabilities are summed. Pairwise HMM evaluation is resource and time intensive, and thus deploying its operations within a wired configuration within an integrated circuit or via quantum circuits on a quantum computing platform is very advantageous.

[0277] Por exemplo, cada leitura pode ser testada contra cada haplótipo candidato, de modo a estimar uma probabilidade de observar que a leitura que assume o haplótipo é o verdadeiro representativo do DNA original amostrado. Em vários casos, esse cálculo pode ser realizado avaliando-se um "modelo oculto de Markov em par" (HMM), que pode ser configurado para modelar as várias formas possíveis que o candidato de haplótipo pode ter sido modificado, tal como por PCR ou erros de sequenciamento, e similares, e uma variação introduzida na leitura observada. Em tais casos, a avaliação de HMM pode empregar um método de programação dinâmica para calcular a probabilidade total de quaisquer séries de transições de estado de Markov que chegam na leitura observada em vista da possibilidade de que qualquer divergência na leitura possa ser o resultado de um modelo de erro. Consequentemente, tais cálculos de HMM podem ser configurados para analisar todos os SNPs e Indels possíveis que poderiam ter sido introduzidos em uma ou mais das leituras, tal como por amplificação e/ou sequenciamento de artefatos.[0277] For example, each read may be tested against each candidate haplotype in order to estimate a probability of observing that the read assuming the haplotype is the true representative of the original sampled DNA. In various cases, this calculation may be performed by evaluating a "pairwise hidden Markov model" (HMM), which may be configured to model the various possible ways that the haplotype candidate may have been modified, such as by PCR or sequencing errors, and the like, and variation introduced into the observed read. In such cases, the HMM evaluation may employ a dynamic programming method to calculate the total probability of any series of Markov state transitions arriving at the observed read in light of the possibility that any divergence in the read may be the result of a model error. Accordingly, such HMM calculations may be configured to analyze all possible SNPs and Indels that could have been introduced into one or more of the reads, such as by amplification and/or sequencing artifacts.

[0278] Particularmente, o HMM pareado considera em uma matriz virtual todos os alinhamentos possíveis da leitura aos haplótipos candidatos de referência juntamente com uma probabilidade associada a cada um dos mesmos, em que todas as probabilidades são adicionadas. A soma de todas as probabilidades de todas as variantes ao longo de um dado caminho é adicionada para obter uma probabilidade abrangente para cada leitura. Esse processo é, então, realizado para cada par, para cada haplótipo, par de leituras. Por exemplo, se houver um agrupamento de seis acúmulos sobreposto a uma dada região, por exemplo, uma região de seis candidatos de haplótipo, e se a acúmulo incluir cerca de cem leituras, 600 operações de HMM precisarão, então, ser realizadas. Mais particularmente, se houver 6 haplótipos, então, haverá 6 ramificações através do caminho e a probabilidade de que cada um seja a trajetória correta que corresponde ao código genético real do sujeito para essa região precisa ser calculada. Consequentemente, cada trajetória para todas as leituras precisa ser considerada, e a probabilidade para cada leitura que poderia chegar nesse dado haplótipo deve ser calculada.[0278] In particular, the pairwise HMM considers in a virtual matrix all possible alignments of the read to the reference candidate haplotypes together with a probability associated with each of them, where all the probabilities are added. The sum of all the probabilities of all the variants along a given path is added to obtain a comprehensive probability for each read. This process is then performed for each pair, for each haplotype, of reads. For example, if there is a cluster of six clusters overlapping a given region, e.g. a region of six haplotype candidates, and if the cluster includes about a hundred reads, then 600 HMM operations will need to be performed. More particularly, if there are 6 haplotypes, then there will be 6 branches through the path and the probability that each is the correct trajectory that corresponds to the subject's actual genetic code for that region needs to be calculated. Consequently, each trajectory for all reads needs to be considered, and the probability for each read that could arrive at this given haplotype must be calculated.

[0279] O Modelo Oculto de Markov em par é um modelo aproximado para como um haplótipo verdadeiro no DNA amostrado pode transformar-se em uma leitura detectada diferente possível. Foi observado que esses tipos de transformações são uma combinação de SNPs e Indels que foram introduzidos na amostra genética definida pelo processo de PCR, por uma ou mais das etapas de preparação de amostra, e/ou por um erro causado pelo processo de sequenciamento e similares. Conforme pode ser observado em relação à Figura 2, para considerar esses tipos de erro, um modelo de base de 3 estados subjacente pode ser empregado, tal como em que: (M = correspondência de alinhamento, I = inserção, D = deleção), adicionalmente quando qualquer transição é possível exceto I <-> D.[0279] The Pairwise Hidden Markov Model is an approximate model for how a true haplotype in the sampled DNA can transform into a different possible detected read. These types of transformations have been observed to be a combination of SNPs and Indels that have been introduced into the defined genetic sample by the PCR process, by one or more of the sample preparation steps, and/or by an error caused by the sequencing process and the like. As can be seen from Figure 2, to account for these types of errors, an underlying 3-state model can be employed, such as where: (M = alignment match, I = insertion, D = deletion), additionally when any transition is possible except I <-> D.

[0280] Conforme pode ser observado em relação à Figura 2, as transições de modelo de base de 3 estados não estão em sequência de tempo, mas, em vez disso, estão em uma sequência de progressão através das sequências de haplótipo e leitura candidatas, começando na posição 0 em cada sequência, em que a primeira base é a posição 1. Uma transição para M implica posição +1 em ambas as sequências; uma transição para I implica posição +1 na sequência de leitura apenas; e uma transição para D implica posição +1 na sequência de haplótipo apenas. O mesmo modelo de 3 estados pode ser configurado para basear os alinhamentos de Smith-Waterman e/ou Needleman-Wunsch, conforme descrito no presente documento também. Consequentemente, tal modelo de 3 estados, conforme apresentado no presente documento, pode ser empregado em um processo de SW e/ou NW, permitindo, assim, pontuação de lacuna afim (indel), em que se assume que a abertura de lacuna (entrando no estado I ou D) é menor provavelmente que a extensão de lacuna (permanecendo no estado I ou D). Logo, nesse caso, o HMM em par pode ser visto como alinhamento, e uma cadeia CIGAR pode ser produzida para codificar uma sequência das várias transições de estado.[0280] As can be seen from Figure 2, the 3-state base model transitions are not in time sequence, but instead are in a progression sequence through the candidate haplotype and read sequences, starting at position 0 in each sequence, where the first base is position 1. A transition to M implies position +1 in both sequences; a transition to I implies position +1 in the read sequence only; and a transition to D implies position +1 in the haplotype sequence only. The same 3-state model can be configured to base Smith-Waterman and/or Needleman-Wunsch alignments as described herein as well. Consequently, such a 3-state model as presented in this paper can be employed in a SW and/or NW process, thus allowing for affine gap (indel) scoring, where the gap opening (entering state I or D) is assumed to be less likely than the gap extension (remaining in state I or D). Hence, in this case, the pairwise HMM can be viewed as an alignment, and a CIGAR string can be produced to encode a sequence of the various state transitions.

[0281] Em vários casos, o modelo de base de 3 estados pode ser complicado permitindo-se que as probabilidades de transição variem por posição. Por exemplo, as probabilidades de todas as transições para M podem ser multiplicadas pelas probabilidades anteriores de observar a base de leitura seguinte dada sua pontuação de qualidade de base e a base de haplótipo seguinte correspondente. Em tal caso, as pontuações de qualidade de base podem traduzir-se em uma probabilidade de um erro de SNP de sequenciamento. Quando as duas bases correspondem, a probabilidade anterior é tomada como um menos essa probabilidade de erro, e, quando divergem, a mesma é tomada como a probabilidade de erro dividida por 3, visto que há 3 resultados de SNP possíveis.[0281] In many cases, the 3-state base model can be complicated by allowing the transition probabilities to vary by position. For example, the probabilities of all transitions to M can be multiplied by the prior probabilities of observing the next read base given its base quality score and the corresponding next haplotype base. In such a case, the base quality scores can translate into a probability of a sequencing SNP error. When the two bases match, the prior probability is taken as one minus this error probability, and when they disagree, it is taken as the error probability divided by 3, since there are 3 possible SNP outcomes.

[0282] A discussão acima é em relação a um modelo de "Markovish" abstrato. Em vários casos, a sequência de transição de máxima verossimilhança pode ser também determinada, que é denominada no presente documento como um alinhamento, e pode ser realizada com o uso de um algoritmo de programação dinâmica de Needleman-Wunsch ou outra. Mas, em vários casos, na realização de uma função de chamada de variante, conforme revelado no presente documento, alinhamento de máxima verossimilhança, ou qualquer alinhamento particular, não precisa ser uma preocupação primária. Em vez disso, a probabilidade total pode ser computada, por exemplo, computando-se a probabilidade total de observar a leitura dado o haplótipo, que é a soma das probabilidades de todos os caminhos de transição possíveis através do gráfico, a partir da posição de leitura zero em qualquer posição de haplótipo até a posição final de leitura, em qualquer posição de haplótipo, em que cada probabilidade de caminho de componente é simplesmente o produto das várias probabilidades de transição constituintes.[0282] The above discussion is with respect to an abstract "Markovish" model. In many cases, the maximum likelihood transition sequence may also be determined, which is referred to herein as an alignment, and may be performed using a Needleman-Wunsch or other dynamic programming algorithm. But in many cases, in performing a variant calling function as disclosed herein, maximum likelihood alignment, or any particular alignment, need not be a primary concern. Instead, the total probability may be computed, for example, by computing the total probability of observing the given read haplotype, which is the sum of the probabilities of all possible transition paths through the graph from the zero read position at any haplotype position to the final read position at any haplotype position, where each component path probability is simply the product of the various constituent transition probabilities.

[0283] Encontrar a soma de probabilidades de trajetória pode ser também realizado empregando-se um arranjo virtual e usando-se um algoritmo de programação dinâmica, conforme descrito acima, de modo que, em cada célula de uma matriz (0 ... N) x (0 ... M), haja três valores de probabilidade calculados, correspondentes a estados de transição M, D e I. (Ou, de modo equivalente, há 3 matrizes.) A fileira superior (posição de leitura zero) da matriz pode ser iniciada em probabilidade 1,0 nos estados D, e 0,0 nos estados I e M; e o restante da coluna esquerda (posição de haplótipo zero) pode ser iniciado todo em zeros. (Em software, as probabilidades D iniciais podem ser ajustadas próximo ao valor máximo de dupla precisão, por exemplo, 2A1020, de modo a evitar subfluxo, mas esse fator pode ser normalizado posteriormente.)[0283] Finding the sum of trajectory probabilities may also be accomplished by employing a virtual array and using a dynamic programming algorithm as described above, such that in each cell of a (0...N) x (0...M) matrix, there are three calculated probability values corresponding to transition states M, D, and I. (Or, equivalently, there are 3 matrices.) The top row (zero read position) of the matrix may be initialized at probability 1.0 in states D, and 0.0 in states I and M; and the remainder of the left column (zero haplotype position) may be initialized all at zeros. (In software, the initial D probabilities may be set close to the maximum double-precision value, e.g., 2A1020, to avoid underflow, but this factor may be normalized later.)

[0284] Essa dependência de computação 3 para 1 restringe a ordem em que as células podem ser computadas. As mesmas podem ser computadas da esquerda para a direita em cada fileira, processamento através das fileiras de cima para baixo, ou de cima para baixo em cada coluna, processamento para a direita. Adicionalmente, as mesmas podem ser computadas em frentes de onda antidiagonais, em que a etapa seguinte deve computar todas as células (n,m) em que n+m seja igual ao número de etapas incrementadas. Essa ordem de frente de onda tem a vantagem de que todas as células na antidiagonal podem ser computadas independentemente umas das outras. A fileira inferior da matriz, então, na posição de leitura final, pode ser configurada para representar os alinhamentos concluídos. Em tal caso, o Chamador de Haplótipo trabalhará somando as probabilidades I e M de todas as células da fileira inferior. Em várias modalidades, o sistema pode ser configurado de modo que nenhuma transição D seja permitida dentro da fileira inferior, ou uma probabilidade de transição D de 0,0 pode ser usada aqui, de modo a evitar contagem dupla.[0284] This 3-to-1 computation dependence restricts the order in which cells can be computed. They can be computed from left to right in each row, processing through the rows from top to bottom, or from top to bottom in each column, processing to the right. Additionally, they can be computed in antidiagonal wavefronts, where the next step must compute all (n,m) cells where n+m is equal to the number of incremental steps. This wavefront order has the advantage that all cells on the antidiagonal can be computed independently of each other. The bottom row of the matrix, then, at the final read position, can be configured to represent the completed alignments. In such a case, the Haplotype Caller will work by summing the probabilities I and M of all cells in the bottom row. In various embodiments, the system may be configured such that no D transitions are allowed within the bottom row, or a D transition probability of 0.0 may be used here, so as to avoid double counting.

[0285] Conforme descrito no presente documento, em vários casos, cada avaliação de HMM pode operar em um par de sequências, tal como em um haplótipo candidato e um par de leituras. Por exemplo, dentro de uma dada região ativa, cada um dentre um conjunto de haplótipos pode ser avaliado por HMM vs. cada uma dentre um conjunto de leituras. Em tal caso, a largura de banda de entrada de software e/ou hardware pode ser reduzida e/ou minimizada transferindo-se o conjunto de leituras e o conjunto de haplótipos uma vez e deixando o software e/ou hardware gerarem as operações de par NxM. Em certos casos, um avaliador de Smith-Waterman pode ser configurado para colocar em fila operações de HMM individuais, cada uma com sua própria cópia de leitura e dados de haplótipo. Um módulo de alinhamento de Smith-Waterman (SW) pode ser configurado para executar um cálculo de HMM em par em espaço linear ou pode operar em espaço de probabilidade logarítmica. Isso é útil para manter a precisão através de uma enorme gama de valores de probabilidade com valores de ponto fixo. Entretanto, em outros casos, operações de ponto oscilante podem ser usadas.[0285] As described herein, in various cases, each HMM evaluation may operate on a pair of sequences, such as a candidate haplotype and a pair of reads. For example, within a given active region, each of a set of haplotypes may be evaluated by HMM vs. each of a set of reads. In such a case, software and/or hardware input bandwidth may be reduced and/or minimized by transferring the set of reads and the set of haplotypes once and letting the software and/or hardware generate the NxM pairwise operations. In certain cases, a Smith-Waterman evaluator may be configured to queue individual HMM operations, each with its own copy of read and haplotype data. A Smith-Waterman (SW) alignment module may be configured to perform a pairwise HMM calculation in linear space or may operate in log-likelihood space. This is useful for maintaining accuracy across a huge range of probability values with fixed point values. However, in other cases, oscillating point operations can be used.

[0286] Há três multiplicações paralelas (por exemplo, adições em espaço logarítmico), então, duas diluições em série (aproximadamente 5 a 6 segmentações de aproximação de estágio), então, uma multiplicação adicional. Em tal caso, a segmentação completa pode ter cerca de L = 12 a 16 ciclos de comprimento. Os cálculos I e D podem ter cerca de metade do comprimento. A segmentação pode ser alimentada a uma multiplicidade de probabilidades, tal como 2 ou 3 ou 5 ou 7 ou mais probabilidades de entrada a cada ciclo, tal como a partir de uma ou mais células vizinhas já computadas (M e/ou D da esquerda, M e/ou I de cima, e/ou M e/ou I e/ou D de cima à esquerda). Isso pode incluir também uma ou mais bases de haplótipo e/ou uma ou mais bases de leitura, tal como com parâmetros associados, por exemplo, parâmetros pré-processados, a cada ciclo. O mesmo emite o resultado de M e I e D definido para uma célula a cada ciclo, após latência de queda.[0286] There are three parallel multiplications (e.g., additions in logarithmic space), then two serial dilutions (approximately 5 to 6 stage approximation segmentations), then an additional multiplication. In such a case, the complete segmentation may be about L = 12 to 16 cycles long. The I and D computations may be about half as long. The segmentation may be fed a multiplicity of probabilities, such as 2 or 3 or 5 or 7 or more input probabilities at each cycle, such as from one or more already computed neighboring cells (M and/or D from left, M and/or I from top, and/or M and/or I and/or D from top left). This may also include one or more haplotype bases and/or one or more read bases, such as with associated parameters, e.g., preprocessed parameters, at each cycle. It outputs the result of M and I and D defined for a cell every cycle, after drop latency.

[0287] Conforme indicado acima, na realização de uma função de chamada de variante, conforme revelado no presente documento, um Gráfico de De Bruijn pode ser formulado em quando todas as leituras em um acúmulo são idênticas, o DBG será linear. Entretanto, quando há diferenças, o gráfico formará "bolhas" que são indicativas de regiões de diferenças que resultam em múltiplos caminhos que divergem da correspondência com o alinhamento de referência e, então, reúnem-se em alinhamento de correspondência. A partir desse DBG, vários caminhos podem ser extraídos, que formam haplótipos candidatos, por exemplo, hipóteses para qual sequência de DNA verdadeira pode estar em pelo menos um filamento, em que as hipóteses podem ser testadas realizando-se uma operação de HMM, ou HMM modificado, nos dados. Adicionalmente, uma função de genotipagem pode ser empregada tal como quando as combinações diploides possíveis dos haplótipos candidatos puderem ser formadas, e para cada uma das mesmas, uma probabilidade condicional de observar o acúmulo de leituras inteiro pode ser calculada. Esses resultados podem ser, então, alimentados em um módulo de fórmula bayesiana para calcular uma probabilidade absoluta de que ada genótipo é o verdadeiro, dado o acúmulo inteiro de leituras observado.[0287] As indicated above, in performing a variant calling function as disclosed herein, a De Bruijn Graph can be formulated where when all reads in a pool are identical, the DBG will be linear. However, when there are differences, the graph will form "bubbles" that are indicative of regions of differences that result in multiple paths that diverge from matching the reference alignment and then come together in matching alignment. From this DBG, multiple paths can be extracted that form candidate haplotypes, i.e., hypotheses for which true DNA sequence may be on at least one strand, where the hypotheses can be tested by performing an HMM, or modified HMM, operation on the data. Additionally, a genotyping function can be employed such that possible diploid combinations of the candidate haplotypes can be formed, and for each of these, a conditional probability of observing the entire pool of reads can be calculated. These results can then be fed into a Bayesian formula module to calculate an absolute probability that each genotype is the true one, given the entire observed accumulation of reads.

[0288] Logo, em conformidade com os dispositivos, sistemas e métodos de seu uso descrito no presente documento, em vários casos, uma operação de genotipagem pode ser realizada, em que a operação de genotipagem pode ser configurada de modo a ser implantada de uma maneira otimizada em software e/ou em hardware e/ou por uma unidade de processamento quântico. Por exemplo, as combinações diploides possíveis dos haplótipos candidatos podem ser formadas, e, para cada combinação, uma probabilidade condicional de observar o acúmulo de leituras inteiro pode ser calculada, tal como com o uso das probabilidades constituintes de observar cada leitura dado cada haplótipo a partir da avaliação de HMM em par. Os resultados desses cálculos alimentam uma fórmula bayesiana de modo a calcular uma probabilidade absoluta de que ada genótipo é o verdadeiro, dado o acúmulo inteiro de leituras observado.[0288] Thus, in accordance with the devices, systems, and methods of use described herein, in various instances, a genotyping operation may be performed, wherein the genotyping operation may be configured to be implemented in an optimized manner in software and/or hardware and/or by a quantum processing unit. For example, possible diploid combinations of candidate haplotypes may be formed, and for each combination, a conditional probability of observing the entire read stack may be calculated, such as using the constituent probabilities of observing each read given each haplotype from pairwise HMM evaluation. The results of these calculations are fed into a Bayesian formula to calculate an absolute probability that each genotype is the true genotype given the entire read stack observed.

[0289] Consequentemente, em vários aspectos, a presente revelação é direcionada a um sistema para realizar uma operação de chamada de haplótipo ou variante em dados gerados e/ou fornecidos de modo a produzir um arquivo de chamada de variante em relação aos mesmos. Especificamente, conforme descrito acima no presente documento, em casos particulares, um arquivo de chamada de variante pode ser um arquivo digital ou outro tal arquivo que codifica a diferença entre uma sequência e outra, tal como a diferença entre uma sequência de amostra e uma sequência de referência. Especificamente, em vários casos, o arquivo de chamada de variante pode ser um arquivo de texto que apresenta ou detalha de outro modo as variações genéticas e/ou estruturais em uma constituição genética da pessoa em comparação com um ou mais genomas de referência.[0289] Accordingly, in various aspects, the present disclosure is directed to a system for performing a haplotype or variant calling operation on generated and/or provided data so as to produce a variant calling file with respect thereto. Specifically, as described above herein, in particular instances, a variant calling file may be a digital file or other such file that encodes the difference between one sequence and another, such as the difference between a sample sequence and a reference sequence. Specifically, in various instances, the variant calling file may be a text file that presents or otherwise details the genetic and/or structural variations in a person's genetic makeup as compared to one or more reference genomes.

[0290] Por exemplo, um haplótipo é um conjunto de variações genéticas, por exemplo, DNA e/ou RNA, tais como polimorfismos, que residem nos cromossomos de uma pessoa e como tais podem ser passadas para a prole e, assim, herdadas juntas. Particularmente, um haplótipo pode referir-se a uma combinação de alelos, por exemplo, uma dentre uma pluralidade de formas alternativas de um gene tal como podem surgir por mutação, em que as variações alélicas são tipicamente encontradas no mesmo local em um cromossomo. Logo, na determinação da identidade do genoma da pessoa, é importante saber qual forma de vários alelos possíveis diferentes a sequência genética de uma pessoa codifica. Em casos particulares, um haplótipo pode referir-se a um ou mais, por exemplo, um conjunto, dentre polimorfismos de nucleotídeo (por exemplo, SNPs) que podem ser encontrados na mesma posição no mesmo cromossomo.[0290] For example, a haplotype is a set of genetic variations, e.g. DNA and/or RNA, such as polymorphisms, that reside on a person's chromosomes and as such can be passed on to offspring and thus inherited together. In particular, a haplotype may refer to a combination of alleles, e.g. one of a plurality of alternative forms of a gene as may arise by mutation, where the allelic variations are typically found at the same location on a chromosome. Therefore, in determining a person's genome identity, it is important to know which form of several different possible alleles a person's genetic sequence encodes. In particular cases, a haplotype may refer to one or more, e.g. a set, of nucleotide polymorphisms (e.g. SNPs) that may be found at the same position on the same chromosome.

[0291] Tipicamente, em várias modalidades, a fim de determinar o genótipo, por exemplo, haplótipos alélicos, para um sujeito, conforme descrito no presente documento e acima, um algoritmo baseado em software pode ser envolvido, tal como um algoritmo que emprega um programa de chamada de haplótipo, por exemplo, GATK, para determinar simultaneamente SNPs e/ou inserções e/ou deleções, isto é, indels, na sequência genética de um indivíduo. Em particular, o algoritmo pode envolver um ou mais protocolos de montagem de haplótipo, tal como para montagem local de novo de um haplótipo em uma ou mais regiões ativas da sequência genética que é processada. Tal processamento tipicamente envolve a implantação de uma função de processamento chamada Modelo Oculto de Markov (HMM), que é um modelo estocástico e/ou estatístico usado para exemplificar aleatoriamente sistemas variáveis, tal como quando se assume que estados futuros dentro do sistema dependem apenas do estado presente e não da sequência de eventos que precede o mesmo.[0291] Typically, in various embodiments, in order to determine the genotype, e.g., allelic haplotypes, for a subject as described herein and above, a software-based algorithm may be involved, such as an algorithm that employs a haplotype calling program, e.g., GATK, to simultaneously determine SNPs and/or insertions and/or deletions, i.e., indels, in the genetic sequence of an individual. In particular, the algorithm may involve one or more haplotype assembly protocols, such as for local de novo assembly of a haplotype in one or more active regions of the genetic sequence being processed. Such processing typically involves the implementation of a processing function called a Hidden Markov Model (HMM), which is a stochastic and/or statistical model used to model randomly varying systems, such as when it is assumed that future states within the system depend only on the present state and not on the sequence of events preceding it.

[0292] Em tais casos, o sistema que é modelado possui características ou se assume de outro modo que seja um processo de Markov com estados não observados (ocultos). Em casos particulares, o modelo pode envolver uma rede bayesiana dinâmica simples. Particularmente, em relação a determinar variação genética, em sua forma mais simples, há uma dentre quatro possibilidades para a identidade de qualquer dada base em uma sequência que é processada, tal como ao comparar um segmento de uma sequência de referência, por exemplo, um haplótipo hipotético, e aquele do DNA ou RNA de um sujeito, por exemplo, uma leitura derivada de um sequenciador. Entretanto, a fim de determinar tal variação, em uma primeira instância, o DNA/RNA de um sujeito precisa ser sequenciado, por exemplo, por meio de um Sequenciador de Próxima Geração ("NGS"), para produzir uma leitura ou "leituras" que identificam o código genético do sujeito. Em seguida, uma vez que o genoma do sujeito tenha sido sequenciado para produzir uma ou mais leituras, as várias leituras, representativas do DNA e/ou RNA do sujeito precisam ser mapeadas e/ou alinhadas, conforme descrito acima no presente documento em mais detalhes. A etapa seguinte no processo, então, é determinar como os genes do sujeito que foram determinados, por exemplo, tendo sido mapeados e/ou alinhados, variam daquele de uma sequência de referência prototípica. Na realização de tal análise, portanto, assume-se que a leitura que representa potencialmente um dado gene de um sujeito é uma representação do haplótipo prototípico, embora com vários SNPs e/ou indels que devem ser presentemente determinados.[0292] In such cases, the system that is modeled has features or is otherwise assumed to be a Markov process with unobserved (hidden) states. In particular cases, the model may involve a simple dynamic Bayesian network. In particular, with respect to determining genetic variation, in its simplest form, there is one of four possibilities for the identity of any given base in a sequence that is processed, such as when comparing a segment of a reference sequence, e.g., a hypothetical haplotype, and that of a subject's DNA or RNA, e.g., a read derived from a sequencer. However, in order to determine such variation, in the first instance, a subject's DNA/RNA needs to be sequenced, e.g., by means of a Next Generation Sequencer ("NGS"), to produce a read or "reads" that identify the subject's genetic code. Next, once the subject's genome has been sequenced to produce one or more reads, the multiple reads, representative of the subject's DNA and/or RNA, need to be mapped and/or aligned, as described in more detail above in this document. The next step in the process, then, is to determine how the subject's genes that have been determined, for example, to have been mapped and/or aligned, vary from that of a prototypic reference sequence. In performing such an analysis, therefore, it is assumed that the read that potentially represents a given gene from a subject is a representation of the prototypic haplotype, albeit with multiple SNPs and/or indels that are currently to be determined.

[0293] Especificamente, em aspectos particulares, são fornecidos dispositivos, sistemas e/ou métodos para praticar os mesmos, tais como para realizar uma função de chamada de haplótipo e/ou variante, tal como implantando-se uma função de HMM, por exemplo, em um chamador de haplótipo acelerado. Em vários casos, a fim de superar esses e outros tais vários problemas na técnica, o acelerador de HMM apresentado no presente documento pode ser configurado para ser operado de uma maneira de modo a ser implantado em software, implantado em hardware ou uma combinação de ser implantado e/ou controlado de outro modo em parte por software e/ou em parte por hardware e/ou pode incluir implantações de computação quântica. Por exemplo, em um aspecto particular, a revelação é direcionada a um método pelo qual dados referentes à identidade de sequência de DNA e/ou RNA de um sujeito e/ou como as informações genéticas do sujeito podem diferir daquelas de um genoma de referência podem ser determinados.[0293] Specifically, in particular aspects, devices, systems, and/or methods for practicing the same are provided, such as for performing a haplotype and/or variant calling function, such as by implementing an HMM function, e.g., in an accelerated haplotype caller. In various instances, in order to overcome these and other such various problems in the art, the HMM accelerator disclosed herein may be configured to be operated in a manner such as to be software-implemented, hardware-implemented, or a combination of being implemented and/or otherwise controlled in part by software and/or in part by hardware, and/or may include quantum computing implementations. For example, in a particular aspect, the disclosure is directed to a method by which data regarding the DNA and/or RNA sequence identity of a subject and/or how the subject's genetic information may differ from that of a reference genome may be determined.

[0294] Em tal caso, o método pode ser realizado pela implantação de uma função de chamada de haplótipo ou variante, tal como empregando-se um protocolo de HMM. Particularmente, a função de HMM pode ser realizada em hardware, software ou por meio de um ou mais circuitos quânticos, tal como em um dispositivo acelerado, em conformidade com um método descrito no presente documento. Em tal caso, o acelerador de HMM pode ser configurado para receber e processar os dados sequenciados, mapeados e/ou alinhados, para processar os mesmos, por exemplo, para produzir um arquivo de chamada de variante, assim como para transmitir os dados processados de volta por todo o sistema. Consequentemente, o método pode incluir empregar um sistema em que os dados podem ser enviados de um processador, tal como uma CPU ou GPU ou mesmo uma QPU controlada por software, para um chamador de haplótipo que implanta um HMM acelerado, em que o chamador de haplótipo pode ser implantado em um chip de microprocessador, tal como um FPGA, ASIC ou ASIC estruturado ou implantado por um ou mais circuitos quânticos. O método pode incluir adicionalmente as etapas para processar os dados para produzir dados de resultado de HMM, cujos resultados podem ser, então, alimentados de volta à CPU e/ou GPU e/ou QPU.[0294] In such a case, the method may be performed by implementing a haplotype or variant calling function, such as by employing an HMM protocol. In particular, the HMM function may be performed in hardware, software, or via one or more quantum circuits, such as in an accelerator device, in accordance with a method described herein. In such a case, the HMM accelerator may be configured to receive and process the sequenced, mapped, and/or aligned data, to process the same, for example, to produce a variant calling file, as well as to transmit the processed data back throughout the system. Accordingly, the method may include employing a system in which data may be sent from a processor, such as a CPU or GPU or even a software-controlled QPU, to a haplotype caller that deploys an accelerated HMM, wherein the haplotype caller may be deployed on a microprocessor chip, such as an FPGA, ASIC, or ASIC structured or deployed by one or more quantum circuits. The method may further include steps for processing the data to produce HMM result data, which results may then be fed back to the CPU and/or GPU and/or QPU.

[0295] Particularmente, em uma modalidade, conforme pode ser observado em relação à Figura 3A, um sistema de segmentação de bioinformática que inclui um acelerador de HMM é fornecido. Por exemplo, em um caso, o sistema de segmentação de bioinformática pode ser configurado como um sistema de chamada de variante 1. O sistema é ilustrado como sendo implantado em hardware, mas pode ser também implantado por meio de um ou mais circuitos quânticos, tal como de uma plataforma de computação quântica. Especificamente, a Figura 3 A fornece uma vista em alto nível de uma estrutura de interface de HMM. Em modalidades particulares, o sistema de chamada de variante 1 é configurado para acelerar pelo menos uma porção de uma operação de chamada de variante, tal como uma operação de HMM. Logo, em vários casos, o sistema de chamada de variante pode ser denominado no presente documento como um sistema de HMM 1. O sistema 1 inclui um servidor que tem uma ou mais unidades de processamento central (CPU/GPU/QPU) 1000 configuradas para realizar uma ou mais rotinas relacionadas ao sequenciamento e/ou processamento de informações genéticas, tal como para comparar uma sequência genética sequenciada a uma ou mais sequências de referência.[0295] Particularly, in one embodiment, as can be seen with respect to Figure 3A, a bioinformatics segmentation system that includes an HMM accelerator is provided. For example, in one case, the bioinformatics segmentation system can be configured as a variant calling system 1. The system is illustrated as being implemented in hardware, but can also be implemented via one or more quantum circuits, such as a quantum computing platform. Specifically, Figure 3A provides a high-level view of an HMM interface structure. In particular embodiments, the variant calling system 1 is configured to accelerate at least a portion of a variant calling operation, such as an HMM operation. Thus, in various cases, the variant calling system may be referred to herein as an HMM system 1. The system 1 includes a server having one or more central processing units (CPU/GPU/QPU) 1000 configured to perform one or more routines related to sequencing and/or processing genetic information, such as comparing a sequenced genetic sequence to one or more reference sequences.

[0296] Adicionalmente, o sistema 1 inclui um dispositivo periférico 2, tal como um cartão de expansão, que inclui um microchip 7, tal como um FPGA, ASIC ou sASIC. Em alguns casos, um ou mais circuitos quânticos podem ser fornecidos e configurados para realizar as várias operações apresentadas no presente documento. Deve-se perceber também que o termo ASIC pode referir-se a um ASIC estruturado (sASIC), quando adequado. O dispositivo periférico 2 inclui uma interconexão 3 e uma interface de barramento 4, tal como um barramento paralelo ou serial, que conecta a CPU/GPU/QPU 1000 ao chip 7. Por exemplo, o dispositivo 2 pode compreender uma interconexão de componente periférico, tal como uma PCI, PCI-X, PCIe ou QPI (interconexão rápida) e pode incluir uma interface de barramento 4, que é adaptada para conectar de modo operacional e/ou comunicativo a CPU/GPU/QPU 1000 ao dispositivo periférico 2, tal como para altas taxas de transferência de dados e baixa latência. Consequentemente, em casos particulares, a interface pode ser uma interconexão de componente periférico expressa (PCIe) 4 que está associada ao microchip 7, em que o microchip inclui um acelerador de HMM 8. Por exemplo, em casos particulares, o acelerador de HMM 8 é configurado para realizar uma função de HMM acelerado, tal como quando a função de HMM, em certas modalidades, pode ser, pelo menos parcialmente, implantado no hardware do FPGA, AISC ou sASIC ou por meio de um ou mais circuitos quânticos adequadamente configurados.[0296] Additionally, system 1 includes a peripheral device 2, such as an expansion card, which includes a microchip 7, such as an FPGA, ASIC or sASIC. In some cases, one or more quantum circuits may be provided and configured to perform the various operations presented herein. It should also be understood that the term ASIC may refer to a structured ASIC (sASIC), where appropriate. The peripheral device 2 includes an interconnect 3 and a bus interface 4, such as a parallel or serial bus, that connects the CPU/GPU/QPU 1000 to the chip 7. For example, the device 2 may comprise a peripheral component interconnect, such as a PCI, PCI-X, PCIe, or QPI (Quick Interconnect), and may include a bus interface 4, which is adapted to operatively and/or communicatively connect the CPU/GPU/QPU 1000 to the peripheral device 2, such as for high data transfer rates and low latency. Accordingly, in particular cases, the interface may be a peripheral component interconnect express (PCIe) 4 that is associated with the microchip 7, wherein the microchip includes an HMM accelerator 8. For example, in particular cases, the HMM accelerator 8 is configured to perform an accelerated HMM function, such as where the HMM function, in certain embodiments, may be at least partially implemented in the hardware of the FPGA, AISC, or sASIC or via one or more suitably configured quantum circuits.

[0297] Especificamente, a Figura 3A apresenta uma figura em alto nível de um acelerador de HMM 8 que tem uma organização exemplificativa de um ou mais mecanismos 13, tal como uma pluralidade de mecanismos de processamento 13a a 13m+i, para realizar um ou mais processos de uma função de chamada de variante, tal como incluindo uma tarefa de HMM. Consequentemente, o acelerador de HMM 8 pode ser composto por um distribuidor de dados 9, por exemplo, CentCom, e um ou uma multiplicidade de agrupamentos de processamento 11 a 11n+i que podem ser organizados ou incluir de outro modo uma ou mais instâncias 13, tal como em que cada instância pode ser configurada como um mecanismo de processamento, tal como um pequeno mecanismo 13a a 13m+1. Por exemplo, o distribuidor 9 pode ser configurado para receber dados, tal como da CPU/GPU/QPU 1000, e distribuir ou transferir de outro modo esses dados para um ou mais dentre a multiplicidade de agrupamentos de processamento de HMM 11.[0297] Specifically, Figure 3A presents a high-level figure of an HMM accelerator 8 having an exemplary organization of one or more engines 13, such as a plurality of processing engines 13a through 13m+i, for performing one or more processes of a variant call function, such as including an HMM task. Accordingly, the HMM accelerator 8 may be composed of a data distributor 9, e.g., CentCom, and one or a plurality of processing clusters 11 through 11n+i that may be organized or otherwise include one or more instances 13, such as wherein each instance may be configured as a processing engine, such as a small engine 13a through 13m+1. For example, distributor 9 may be configured to receive data, such as from CPU/GPU/QPU 1000, and distribute or otherwise transfer that data to one or more of the plurality of HMM processing clusters 11.

[0298] Particularmente, em certas modalidades, o distribuidor 9 pode ser posicionado localmente entre a interface de PCIe integrada 4 e o módulo de acelerador de HMM 8, tal como quando a interface 4 comunica-se com o distribuidor 9, tal como através de uma interconexão ou outro barramento adequadamente configurado 5, por exemplo, barramento de PCIe. O módulo de distribuidor 9 pode ser adaptado para comunicar-se com um ou mais agrupamentos de acelerador de HMM 11, tal como através de um ou mais barramentos de agrupamento 10. Por exemplo, o módulo de acelerador de HMM 8 pode ser configurado como ou incluir de outro modo um arranjo de agrupamentos 11a a 11n+1, tal como em que cada agrupamento de HMM 11 pode ser configurado como ou inclui de outro modo um cubo de agrupamento 11 e/ou pode incluir uma ou mais instâncias 13, em que a instância pode ser configurada como um mecanismo de processamento 13 que é adaptado para realizar uma ou mais operações em dados recebidos desse modo. Consequentemente, em várias modalidades, cada agrupamento 11 pode ser formado como ou incluir de outro modo um cubo de agrupamento 11a a 11n+1, em que cada um dos cubos pode ser associado operacionalmente a múltiplas instâncias de mecanismo de acelerador de HMM 13a a 13m+1, tal como em que cada cubo de agrupamento 11 pode ser configurado para direcionar dados a uma pluralidade dos mecanismos de processamento 13a a 13m+1 dentro do agrupamento 11.[0298] Particularly, in certain embodiments, the distributor 9 may be positioned locally between the integrated PCIe interface 4 and the HMM accelerator module 8, such as when the interface 4 communicates with the distributor 9, such as via an interconnect or other suitably configured bus 5, e.g., PCIe bus. The distributor module 9 may be adapted to communicate with one or more HMM accelerator clusters 11, such as via one or more cluster buses 10. For example, the HMM accelerator module 8 may be configured as or otherwise include an arrangement of clusters 11a through 11n+1, such as wherein each HMM cluster 11 may be configured as or otherwise include a cluster cube 11, and/or may include one or more instances 13, wherein the instance may be configured as a processing engine 13 that is adapted to perform one or more operations on data received thereby. Accordingly, in various embodiments, each cluster 11 may be formed as or otherwise include a cluster cube 11a through 11n+1, wherein each of the cubes may be operationally associated with multiple HMM accelerator engine instances 13a through 13m+1, such as wherein each cluster cube 11 may be configured to direct data to a plurality of processing engines 13a through 13m+1 within the cluster 11.

[0299] Em vários casos, o acelerador de HMM 8 é configurado para comparar cada base do código genético sequenciado de um sujeito, tal como em formato de leitura, com os vários haplótipos candidatos conhecidos e gerados de uma sequência de referência e determinar a probabilidade de que qualquer dada base em uma posição que é considerada corresponda ou não corresponda ao haplótipo relevante, por exemplo, a leitura inclui um SNP, uma inserção ou uma deleção, resultando, assim, em uma variação da base na posição que é considerada. Particularmente, em várias modalidades, o acelerador de HMM 8 é configurado para atribuir probabilidades de transição para a sequência das bases da leitura passando entre cada um desses estados, Correspondência ("M"), Inserção ("I") ou Deleção ("D"), conforme descrito em mais detalhes abaixo no presente documento.[0299] In various instances, the HMM accelerator 8 is configured to compare each base of a subject's sequenced genetic code, such as in read format, to the various known candidate haplotypes generated from a reference sequence and determine the probability that any given base at a position that is considered matches or does not match the relevant haplotype, e.g., the read includes a SNP, an insertion, or a deletion, thereby resulting in a variation of the base at the position that is considered. Particularly, in various embodiments, the HMM accelerator 8 is configured to assign transition probabilities to the sequence of bases of the read passing between each of these states, Match ("M"), Insertion ("I"), or Deletion ("D"), as described in more detail below herein.

[0300] Mais particularmente, dependendo da configuração, a função de aceleração de HMM pode ser implantada em software, tal como pela CPU/GPU/QPU 1000 e/ou microchip 7, e/ou pode ser implantada em hardware e pode estar presente dentro do microchip 7, tal como posicionada no cartão ou placa de expansão periférica 2. Em várias modalidades, essa funcionalidade pode ser implantada parcialmente como software, por exemplo, executada pela CPU/GPU/QPU 1000, e parcialmente como hardware, implantada no chip 7 ou por meio de um ou mais circuitos de processamento quântico. Consequentemente, em várias modalidades, o chip 7 pode estar presente na placa-mãe da CPU/GPU/QPU 1000 ou pode ser parte do dispositivo periférico 2, ou ambos. Consequentemente, o módulo de acelerador de HMM 8 pode incluir ou estar de outro modo associado a várias interfaces, por exemplo, 3, 5, 10 e/ou 12, de modo a permitir a transferência eficaz de dados para e dos mecanismos de processamento 13.[0300] More particularly, depending on the configuration, the HMM acceleration function may be implemented in software, such as by the CPU/GPU/QPU 1000 and/or microchip 7, and/or may be implemented in hardware and may be present within the microchip 7, such as positioned on the peripheral expansion card or board 2. In various embodiments, this functionality may be implemented partially as software, e.g., executed by the CPU/GPU/QPU 1000, and partially as hardware, implemented on the chip 7 or via one or more quantum processing circuits. Accordingly, in various embodiments, the chip 7 may be present on the motherboard of the CPU/GPU/QPU 1000 or may be part of the peripheral device 2, or both. Accordingly, the HMM accelerator module 8 may include or be otherwise associated with multiple interfaces, e.g., 3, 5, 10, and/or 12, so as to allow efficient transfer of data to and from the processing engines 13.

[0301] Consequentemente, conforme pode ser observado em relação às Figuras 2 e 3, em várias modalidades, um microchip 7 configurado para realizar uma função de chamada de variante, por exemplo, haplótipo, é fornecido. O microchip 7 pode estar associado a uma CPU/GPU/QPU 1000, tal como acoplado diretamente à mesma, por exemplo, incluído na placa-mãe de um computador, ou acoplado indiretamente à mesma, tal como sendo incluído como parte de um dispositivo periférico 2 que é acoplado operacionalmente à CPU/GPU/QPU 1000, tal como por meio de uma ou mais interconexões, por exemplo, 3, 4, 5, 10, e/ou 12. Nesse caso, o microchip 7 está presente no dispositivo periférico 2. Deve-se entender que, embora configurado como um microchip, o acelerador poderia também ser configurado como um ou mais circuitos quânticos de uma unidade de processamento quântico, em que os circuitos quânticos são configurados como um ou mais mecanismos de processamento para realizar uma ou mais das funções reveladas no presente documento.[0301] Accordingly, as can be seen with respect to Figures 2 and 3, in various embodiments, a microchip 7 configured to perform a variant, e.g., haplotype, calling function is provided. The microchip 7 may be associated with a CPU/GPU/QPU 1000, such as directly coupled thereto, e.g., included on the motherboard of a computer, or indirectly coupled thereto, such as being included as part of a peripheral device 2 that is operatively coupled to the CPU/GPU/QPU 1000, such as through one or more interconnects, e.g., 3, 4, 5, 10, and/or 12. In this case, the microchip 7 is present in the peripheral device 2. It should be understood that, although configured as a microchip, the accelerator could also be configured as one or more quantum circuits of a quantum processing unit, wherein the quantum circuits are configured as one or more processing engines for performing one or more of the functions disclosed herein.

[0302] Logo, o dispositivo periférico 2 pode incluir um barramento de expansão paralelo ou serial 4, tal como para conectar o dispositivo periférico 2 à unidade de processamento central (CPU/GPU/QPU) 1000 de um computador e/ou servidor, tal como por meio de uma interface 3, por exemplo, DMA. Em casos particulares, o dispositivo periférico 2 e/ou barramento de expansão serial 4 pode ser uma Interconexão de Componente Periférico expressa (PCIe) que é configurada para comunicar-se com ou incluir de outro modo o microchip 7, tal como por meio de conexão 5. Conforme descrito no presente documento, o microchip 7 pode ser, pelo menos parcialmente, configurado como ou pode incluir de outro modo um acelerador de HMM 8. O acelerador de HMM 8 pode ser configurado como parte do microchip 7, por exemplo, como hardware e/ou como código a ser executado em associação com o mesmo, e é configurado para realizar uma função de chamada de variante, tal como para realizar uma ou mais operações de um Modelo Oculto de Markov, em dados fornecidos ao microchip 7 pela CPU/GPU/QPU 1000, tal como através da interface de PCIe 4. Similarmente, uma vez que uma ou mais funções de chamada de variante tenham sido realizadas, por exemplo, uma ou mais operações de HMM executadas, os resultados das mesmas podem ser transferidos do acelerador de HMM 8 do chip 7 através do barramento 4 para a CPU/GPU/QPU 1000, tal como por meio de conexão 3.[0302] Thus, the peripheral device 2 may include a parallel or serial expansion bus 4, such as for connecting the peripheral device 2 to the central processing unit (CPU/GPU/QPU) 1000 of a computer and/or server, such as via an interface 3, e.g., DMA. In particular cases, peripheral device 2 and/or serial expansion bus 4 may be a Peripheral Component Interconnect Express (PCIe) that is configured to communicate with or otherwise include microchip 7, such as via connection 5. As described herein, microchip 7 may be at least partially configured as or may otherwise include an HMM accelerator 8. HMM accelerator 8 may be configured as part of microchip 7, e.g., as hardware and/or as code to be executed in association therewith, and is configured to perform a variant call function, such as to perform one or more operations of a Hidden Markov Model, on data provided to microchip 7 by CPU/GPU/QPU 1000, such as via PCIe interface 4. Similarly, once one or more variant call functions have been performed, e.g., one or more HMM operations have been executed, the results thereof may be transferred from the HMM accelerator to the microchip 7. 8 of chip 7 via bus 4 to CPU/GPU/QPU 1000, such as via connection 3.

[0303] Por exemplo, em casos particulares, uma CPU/GPU/QPU 1000 para processar e/ou transferir informações e/ou executar instruções é fornecida juntamente com um microchip 7 que é pelo menos parcialmente configurado como um acelerador de HMM 8. A CPU/GPU/QPU 1000 comunica-se com o microchip 7 através de uma interface 5 que é adaptada para facilitar a comunicação entre a CPU/GPU/QPU 1000 e o acelerador de HMM 8 do microchip 7 e, portanto, pode conectar comunicativamente a CPU/GPU/QPU 1000 ao acelerador de HMM 8 que é parte do microchip 7. Para facilitar essas funções, o microchip 7 inclui um módulo de distribuidor 9, que pode ser um CentCom, que é configurado para transferir dados a uma multiplicidade de mecanismos de HMM 13, por exemplo, por meio de um ou mais agrupamentos 11, em que cada mecanismo 13 é configurado para receber e processar os dados, tal como executando um protocolo de HMM no mesmo, computar os valores finais, emitir os resultados dos mesmos e repetir os mesmo. Em vários casos, o desempenho de um protocolo de HMM pode incluir determinar uma ou mais probabilidades de transição, conforme descrito abaixo no presente documento. Particularmente, cada mecanismo de HMM 13 pode ser configurado para realizar um trabalho, tal como que inclui um ou mais dentre a geração e/ou a avaliação de uma matriz virtual de HMM para produzir e emitir um valor de soma final em relação à mesma, em que a soma final expressa a verossimilhança provável de que a base chamada corresponda ou seja diferente de uma base correspondente em uma sequência de haplótipo hipotética, conforme descrito abaixo no presente documento.[0303] For example, in particular cases, a CPU/GPU/QPU 1000 for processing and/or transferring information and/or executing instructions is provided together with a microchip 7 that is at least partially configured as an HMM accelerator 8. The CPU/GPU/QPU 1000 communicates with the microchip 7 through an interface 5 that is adapted to facilitate communication between the CPU/GPU/QPU 1000 and the HMM accelerator 8 of the microchip 7 and therefore can communicatively connect the CPU/GPU/QPU 1000 to the HMM accelerator 8 that is part of the microchip 7. To facilitate these functions, the microchip 7 includes a distributor module 9, which may be a CentCom, that is configured to transfer data to a plurality of HMM engines 13, for example, via one or more clusters 11, wherein each engine 13 is configured to receive and process the data, such as by executing a protocol HMM therein, computing the final values, outputting the results thereof, and repeating the same. In various cases, performance of an HMM protocol may include determining one or more transition probabilities, as described below herein. In particular, each HMM engine 13 may be configured to perform work, such as that includes one or more of the generation and/or evaluation of a virtual HMM matrix to produce and output a final sum value with respect thereto, wherein the final sum expresses the probable likelihood that the called base matches or is different from a corresponding base in a hypothetical haplotype sequence, as described below herein.

[0304] A Figura 3B apresenta uma representação detalhada do agrupamento de HMM 11 da Figura 3A. Em várias modalidades, cada agrupamento de HMM 11 inclui uma ou mais instâncias de HMM 13. Um ou diversos agrupamentos podem ser fornecidos, tal como desejado em conformidade com a quantidade de recursos fornecidos, tal como no chip ou processador de computação quântica. Particularmente, um agrupamento de HMM pode ser fornecido, em que o agrupamento é configurado como um cubo de agrupamento 11. O cubo de agrupamento 11 toma os dados pertencentes a um ou mais trabalhos 20 do distribuidor 9, e está, ainda, comunicativamente conectado a um ou mais, por exemplo, uma pluralidade de, instâncias de HMM 13, tal como por meio de um ou mais barramentos de instância de HMM 12, ao quais o cubo de agrupamento 11 transmite os dados de trabalho 20.[0304] Figure 3B presents a detailed representation of the HMM cluster 11 of Figure 3A. In various embodiments, each HMM cluster 11 includes one or more HMM instances 13. One or more clusters may be provided, as desired in accordance with the amount of resources provided, such as in the quantum computing chip or processor. In particular, an HMM cluster may be provided, wherein the cluster is configured as a cluster hub 11. The cluster hub 11 takes data pertaining to one or more jobs 20 from the distributor 9, and is further communicatively connected to one or more, e.g., a plurality of, HMM instances 13, such as via one or more HMM instance buses 12, to which the cluster hub 11 transmits the job data 20.

[0305] A largura de banda para a transferência de dados por todo o sistema pode ser um processo de largura de banda relativamente baixa, e uma vez que um trabalho 20 seja recebido, o sistema 1 pode ser configurado para completar o trabalho, tal como ser ter que sair do chip 7 para a memória. Em várias modalidades, um trabalho 20a é enviado a um mecanismo de processamento 13a em qualquer dado tempo, mas diversos trabalhos 20a-n podem ser distribuídos pelo cubo de agrupamento 11 a diversos mecanismos de processamento diferentes 13a-13m+1, tal como em que cada um dos mecanismos de processamento 13 estará trabalhando em um único trabalho 20, por exemplo, uma única comparação entre uma ou mais leituras e uma ou mais sequências de haplótipo, em paralelo e em velocidades altas. Conforme descrito abaixo, o desempenho de tal trabalho 20 pode tipicamente envolver a geração de uma matriz virtual de modo que as sequências de “leituras” do sujeito possam ser comparadas a uma ou mais, por exemplo, duas, sequências de haplótipo hipotéticas, de modo a determinar as diferenças entre as mesmas. Em tais casos, um único trabalho 20 pode envolver o processamento de uma ou mais matrizes que têm uma multiplicidade de células nas mesmas que precisam ser processadas para cada comparação que é realizada, tal como de uma maneira de base por base. Como o genoma humano tem cerca de 3 bilhões de pares de bases, pode haver a ordem de 1 a 2 bilhões de diferentes trabalhos a serem realizados ao analisar uma superamostragem 30X de um genoma humano (que é equitativo a cerca de 20 trilhões de células nas matrizes de todos os trabalhos de HMM associados).[0305] The bandwidth for data transfer throughout the system may be a relatively low bandwidth process, and once a job 20 is received, the system 1 may be configured to complete the job, such as having it exit the chip 7 to memory. In various embodiments, a job 20a is sent to a processing engine 13a at any given time, but multiple jobs 20a-n may be distributed across the clustering cube 11 to multiple different processing engines 13a-13m+1, such that each of the processing engines 13 will be working on a single job 20, e.g., a single comparison between one or more reads and one or more haplotype sequences, in parallel and at high speeds. As described below, performance of such a job 20 may typically involve generating a virtual array so that the subject's “read” sequences can be compared to one or more, e.g., two, hypothetical haplotype sequences in order to determine differences between them. In such cases, a single job 20 may involve processing one or more arrays that have a multiplicity of cells therein that need to be processed for each comparison that is performed, such as in a base-by-base manner. Since the human genome has about 3 billion base pairs, there may be on the order of 1 to 2 billion different jobs to be performed when analyzing a 30X oversampling of a human genome (which is equated to about 20 trillion cells in the arrays of all associated HMM jobs).

[0306] Consequentemente, conforme descrito no presente documento, cada instância de HMM 13 pode ser adaptada de modo a realizar um protocolo de HMM, por exemplo, a geração e o processamento de uma matriz de HMM, em dados de sequência, tais como dados recebidos desse modo da CPU/GPU/QPU 1000. Por exemplo, conforme explicado acima, no sequenciamento do material genético de um sujeito, tal como DNA ou RNA, o DNA/RNA é quebrado em segmentos, tal como até cerca de 100 bases de comprimento. A identidade desses segmentos de 100 bases é, então, determinada, tal como por um sequenciador automatizado, e a "leitura" em um arquivo baseado em texto FASTQ ou outro formado que armazena cada identidade de base da leitura juntamente com uma pontuação de qualidade Phred (por exemplo, tipicamente um número entre 0 e 63 em escala logarítmica, em que uma pontuação de 0 indica o menor número de confiança de que a base chamada está correta, com pontuações entre 20 e 45, de modo geral, sendo aceitáveis como relativamente precisas).[0306] Accordingly, as described herein, each HMM instance 13 may be adapted to perform an HMM protocol, e.g., generating and processing an HMM matrix, on sequence data, such as data received thereby from the CPU/GPU/QPU 1000. For example, as explained above, in sequencing a subject's genetic material, such as DNA or RNA, the DNA/RNA is broken into segments, such as up to about 100 bases in length. The identity of these 100-base segments is then determined, such as by an automated sequencer, and the "read" is output to a FASTQ or other text-based file that stores each base identity of the read along with a Phred quality score (e.g., typically a number between 0 and 63 on a logarithmic scale, where a score of 0 indicates the least confidence that the base called is correct, with scores between 20 and 45 generally being acceptable as relatively accurate).

[0307] Particularmente, as indicado acima, uma pontuação de qualidade Phred é um indicador de qualidade que mede a qualidade da identificação das identidades de nucleobase geradas pelo processador de sequenciamento, por exemplo, pelo sequenciador de DNA/RNA automatizado. Logo, cada base de leitura incluir sua própria pontuação de qualidade, por exemplo, Phred, com base na qual o sequenciador avaliou a qualidade dessa identificação específica. O Phred representa a confiança com que o sequenciador estima que tem a identidade de base chamada correta. Essa pontuação Phred é, então, usada pelo módulo de HMM implantado 8, conforme descrito em detalhes abaixo, para determinar adicionalmente a precisão de cada base chamada na leitura em comparação com o haplótipo ao qual o mesmo foi mapeado e/ou alinhado, tal como determinando-se suas probabilidades de transição de Correspondência, Inserção e/ou Deleção, por exemplo, dentre e fora do estado de Correspondência. Deve-se perceber que, em várias modalidades, o sistema 1 pode modificar ou ajustar de outro modo a pontuação Phred inicial antes do desempenho de um protocolo de HMM no mesmo, tal como considerando-se bases/pontuações e/ou fragmentos vizinhos de DNA vizinho e permitindo-se que tais fatores influenciem a pontuação Phred da base, por exemplo, célula, sob exame.[0307] In particular, as indicated above, a Phred quality score is a quality indicator that measures the quality of the identification of nucleobase identities generated by the sequencing processor, e.g., by the automated DNA/RNA sequencer. Thus, each base in a read includes its own quality score, e.g., Phred, based on which the sequencer has assessed the quality of that particular identification. Phred represents the confidence with which the sequencer estimates that it has the correct base identity called. This Phred score is then used by the deployed HMM module 8, as described in detail below, to further determine the accuracy of each base called in the read compared to the haplotype to which it was mapped and/or aligned, such as by determining its Match, Insertion, and/or Deletion transition probabilities, e.g., into and out of the Match state. It should be appreciated that, in various embodiments, the system 1 may modify or otherwise adjust the initial Phred score prior to performance of an HMM protocol thereon, such as by considering neighboring bases/scores and/or fragments of neighboring DNA and allowing such factors to influence the Phred score of the base, e.g., cell, under examination.

[0308] Em tais casos, conforme pode ser observado em relação à Figura 4, o sistema 1, por exemplo, software de computador/quântico, pode determinar e identificar regiões ativas 500n dentro do genoma sequenciado que podem ser exploradas e/ou submetidas de outro modo a processamento adicional conforme descrito no presente documento, que podem ser quebradas em trabalhos 20n que podem ser paralelizados entre os vários núcleos e cadeias disponíveis 1007 por todo o sistema 1. Por exemplo, tais regiões ativas 500 podem ser identificadas como sendo regiões de variação entre os genomas sequenciados e de referência. Particularmente, a CPU/GPU/QPU 1000 pode ter múltiplas cadeias 1007 em execução, identificando regiões ativas 500a, 500b e 500c, compilando e agregando vários trabalhos diferentes 20n a serem executados, por exemplo, por meio de um agregador adequadamente configurado 1008, com base na região ativa (regiões ativas) 500a a c que é atualmente examinada. Qualquer número adequado de cadeias 1007 pode ser empregado de modo a permitir que o sistema 1 funcione em eficácia máxima, por exemplo, quanto mais cadeias presentes, menos tempo ativo é gasto aguardando.[0308] In such cases, as can be seen with respect to Figure 4, the system 1, e.g., computer/quantum software, can determine and identify active regions 500n within the sequenced genome that can be explored and/or otherwise subjected to further processing as described herein, which can be broken down into jobs 20n that can be parallelized across the various available cores and chains 1007 throughout the system 1. For example, such active regions 500 can be identified as being regions of variation between the sequenced and reference genomes. In particular, the CPU/GPU/QPU 1000 may have multiple threads 1007 executing, identifying active regions 500a, 500b, and 500c, compiling and aggregating multiple different jobs 20n to be executed, e.g., via a suitably configured aggregator 1008, based on the active region(s) 500a through c that are currently being examined. Any suitable number of threads 1007 may be employed so as to allow the system 1 to operate at maximum efficiency, e.g., the more threads present, the less active time is spent waiting.

[0309] Uma vez identificadas, compiladas e/ou agregadas, as cadeias 1007/1008 transferirão, então, os trabalhos ativos 20 ao distribuidor de dados 9, por exemplo, CentCom, do módulo de HMM 8, tal como por meio de interface de PCIe 4, por exemplo, de uma maneira disparar e esquecer e serão movidas, então, para um processo diferente enquanto aguardam pelo HMM 8 enviar os dados de saída de volta de modo a serem correspondentes de volta até a região ativa correspondente 500 à qual se mapeia e/ou alinha. O distribuidor de dados 9 distribuirá, então, os trabalhos 20 aos vários agrupamentos de HMM diferentes 11, tal como de uma maneira trabalho por trabalho. Se tudo estiver funcionando eficazmente, o mesmo pode estar em um formato primeiro a entrar, primeiro a sair, mas o mesmo não precisa ser o caso. Por exemplo, em várias modalidades, trabalhos e dados brutos e dados de resultados de trabalho processados podem ser enviados através e pelo sistema conforme tornam-se disponíveis.[0309] Once identified, compiled and/or aggregated, the chains 1007/1008 will then transfer the active jobs 20 to the data distributor 9, e.g., CentCom, of the HMM module 8, such as via the PCIe interface 4, for example, in a fire and forget manner and will then be moved to a different process while waiting for the HMM 8 to send the output data back so as to be matched back to the corresponding active region 500 to which it maps and/or aligns. The data distributor 9 will then distribute the jobs 20 to the various different HMM clusters 11, such as in a job-by-job manner. If everything is working effectively, this may be in a first-in, first-out format, but this need not be the case. For example, in various embodiments, jobs and raw data and processed job results data may be sent through and through the system as they become available.

[0310] Particularmente, conforme pode ser observado em relação às Figuras 2, 3 e 4, os dados de vários trabalhos 20 podem ser agregados em páginas de 4K bytes de dados, que podem ser enviadas por meio do PCIe 4 para e através do CentCom 9 e para os mecanismos de processamento 13, por exemplo, por meio dos agrupamentos 11. A quantidade de dados que são enviados pode ser maior ou menor que 4K bytes, mas incluirá tipicamente cerca de 100 trabalhos de HMM por página de 4K (por exemplo, 1.024) de dados. Particularmente, esses dados são, então, digeridos pelo distribuidor de dados 9 e são alimentados a cada agrupamento 11, tal como em que uma página de 4K é enviada a um agrupamento 11. Entretanto, o mesmo não precisa ser o caso visto que qualquer dado trabalho 20 pode ser enviado a qualquer dado agrupamento 11, com base nos agrupamentos que se tornam disponíveis e quando.[0310] In particular, as can be seen with respect to FIGS. 2, 3 and 4, data from multiple jobs 20 may be aggregated into 4K byte pages of data, which may be sent via PCIe 4 to and through CentCom 9 and processing engines 13, e.g., via clusters 11. The amount of data that is sent may be greater or less than 4K bytes, but will typically include about 100 HMM jobs per 4K page (e.g., 1,024) of data. In particular, this data is then digested by data distributor 9 and fed to each cluster 11, such as where a 4K page is sent to a cluster 11. However, this need not be the case since any given job 20 may be sent to any given cluster 11, based on which clusters become available and when.

[0311] Consequentemente, a abordagem de agrupamento 11 conforme apresentada aqui distribui eficazmente dados entrantes aos mecanismos de processamento 13 em alta velocidade. Especificamente, conforme os dados chegam à interface de PCIe 4 a partir da CPU/GPU/QPU 1000, por exemplo, através da conexão de DMA 3, os dados recebidos podem ser, então, enviados através do barramento de PCIe 5 ao distribuidor CentCom 9 do microchip chamador de variante 7. O distribuidor 9, então, envia os dados a um ou mais agrupamentos de processamento de HMM 11, tal como através de um ou mais barramentos dedicados a agrupamento 10, em que o agrupamento 11 pode, então, transmitir os dados a uma ou mais instâncias de processamento 13, por exemplo, por meio de um ou mais barramentos de instância 12, tal como para processamento. Nesse caso, a interface de PCIe 4 é adaptada para fornecer dados através do barramento de expansão periférico 5, distribuidor 9 e/ou barramentos de agrupamento 10 e/ou instância 12 a uma taxa rápida, tal como a uma taxa que pode manter uma ou mais, por exemplo, todas, das instâncias de acelerador de HMM 13a-(m+1) dentro de um ou mais, por exemplo, todos, dos agrupamentos de HMM 11a-(n+1) ocupadas, tal como durante um período de tempo prolongado, por exemplo, o tempo todo, durante o período durante o qual o sistema 1 está sendo executado, os trabalhos 20 estão sendo processados, e enquanto também acompanha a saída dos dados de HMM processados que devem ser enviados de volta para uma ou mais CPUs 1000, através da interface de PCIe 4.[0311] Accordingly, the clustering approach 11 as presented herein efficiently distributes incoming data to the processing engines 13 at high speed. Specifically, as data arrives at the PCIe interface 4 from the CPU/GPU/QPU 1000, e.g., via the DMA connection 3, the received data may then be sent via the PCIe bus 5 to the CentCom distributor 9 of the variant calling microchip 7. The distributor 9 then sends the data to one or more HMM processing clusters 11, such as via one or more cluster dedicated buses 10, wherein the cluster 11 may then transmit the data to one or more processing instances 13, e.g., via one or more instance buses 12, such as for processing. In this case, the PCIe interface 4 is adapted to deliver data over the peripheral expansion bus 5, distributor 9, and/or cluster buses 10 and/or instance 12 at a fast rate, such as at a rate that can keep one or more, e.g., all, of the HMM accelerator instances 13a-(m+1) within one or more, e.g., all, of the HMM clusters 11a-(n+1) busy, such as for an extended period of time, e.g., all the time during which the system 1 is running, the jobs 20 are being processed, and while also keeping track of the output of the processed HMM data that is to be sent back to the one or more CPUs 1000 via the PCIe interface 4.

[0312] Por exemplo, qualquer ineficácia nas interfaces 3, 5, 10 e/ou 12 que leve a tempo ocioso para um ou mais dentre as instâncias de acelerador de HMM 13 pode adicionar-se diretamente ao tempo de processamento geral do sistema 1. Particularmente, ao analisar um genoma humano, pode haver na ordem de dois ou mais bilhões de diferentes trabalhos 20 que precisam ser distribuídos ao vários agrupamentos de HMM 11 e processados ao longo do curso de um período de tempo, tal como menos de 1 hora, menos de 45 minutos, menos de 30 minutos, menos de 20 minutos, incluindo 15 minutos, 10 minutos, 5 minutos ou menos.[0312] For example, any inefficiency in interfaces 3, 5, 10, and/or 12 that leads to idle time for one or more of the HMM accelerator instances 13 may add directly to the overall processing time of system 1. In particular, when analyzing a human genome, there may be on the order of two or more billion different jobs 20 that need to be distributed to the various HMM clusters 11 and processed over the course of a period of time, such as less than 1 hour, less than 45 minutes, less than 30 minutes, less than 20 minutes, including 15 minutes, 10 minutes, 5 minutes, or less.

[0313] Consequentemente, a Figura 4 apresenta uma vista geral de um fluxo de dados exemplificativo por todo o software e/ou hardware do sistema 1, conforme descrito de modo geral acima. Conforme pode ser observado em relação à Figura 4, o sistema 1 pode ser configurado em parte para transferir dados, tal como entre a interface de PCIe 4 e o distribuidor 9, por exemplo, CentCom, tal como através do barramento de PCIe 5. Adicionalmente, o sistema 1 pode ser configurado adicionalmente em parte para transferir os dados recebidos, tal como entre o distribuidor 9 e o um ou mais agrupamentos de HMM 11, tal como através do um ou mais barramentos de agrupamento 10. Logo, em várias modalidades, o acelerador de HMM 8 pode incluir um ou mais agrupamentos 11, tal como um ou mais agrupamentos 11 configurados para realizar um ou mais processos de uma função de HMM. Em tal caso, há uma interface, tal como um barramento de agrupamento 10, que conecta o CentCom 9 ao agrupamento de HMM 11.[0313] Accordingly, Figure 4 presents an overview of an exemplary data flow throughout the software and/or hardware of system 1, as generally described above. As can be seen with respect to Figure 4, system 1 may be configured in part to transfer data, such as between PCIe interface 4 and distributor 9, e.g., CentCom, such as via PCIe bus 5. Additionally, system 1 may be further configured in part to transfer received data, such as between distributor 9 and one or more HMM clusters 11, such as via one or more cluster buses 10. Thus, in various embodiments, HMM accelerator 8 may include one or more clusters 11, such as one or more clusters 11 configured to perform one or more processes of an HMM function. In such a case, there is an interface, such as a cluster bus 10, that connects CentCom 9 to HMM cluster 11.

[0314] Por exemplo, a Figura 5 é um diagrama em alto nível que representa a interface dentro e fora do módulo de HMM 8, tal como dentro e fora de um módulo de agrupamento. Conforme pode ser observado em relação à Figura 6, cada agrupamento de HMM 11 pode ser configurado para comunicar-se com, por exemplo, receber dados de e/ou enviar dados de resultado final, por exemplo, dados de soma, para o distribuidor de dados CentCom 9 através de um barramento de agrupamento dedicado 10. Particularmente, qualquer interface ou barramento adequado 5 pode ser fornecido contanto que permite que a interface de PCIe 4 se comunique com o distribuidor de dados 9. Mais particularmente, o barramento 5 pode ser uma interconexão que inclui a lógica de interpretação útil na comunicação com o distribuidor de dados 9, em que a lógica de interpretação pode ser configurada para acomodar qualquer protocolo empregado para fornecer sua funcionalidade. Especificamente, em vários casos, a interconexão pode ser configurada como um barramento de PCIe 5.[0314] For example, Figure 5 is a high-level diagram depicting the interface into and out of the HMM module 8, such as into and out of a cluster module. As can be seen with respect to Figure 6, each HMM cluster 11 may be configured to communicate with, e.g., receive data from, and/or send final result data, e.g., sum data, to the CentCom data distributor 9 via a dedicated cluster bus 10. In particular, any suitable interface or bus 5 may be provided so long as it allows the PCIe interface 4 to communicate with the data distributor 9. More particularly, the bus 5 may be an interconnect that includes interpretation logic useful in communicating with the data distributor 9, wherein the interpretation logic may be configured to accommodate any protocol employed to provide its functionality. Specifically, in various instances, the interconnect may be configured as a PCIe bus 5.

[0315] Adicionalmente, o agrupamento 11 pode ser configurado de modo que um domínio único ou múltiplos domínios de relógio possam ser empregados no mesmo e, logo, um ou mais relógios possam estar presentes dentro do agrupamento 11. Em casos particulares, múltiplos domínios de relógio podem ser fornecidos. Por exemplo, um relógio mais lento pode ser fornecido, tal como para comunicações, por exemplo, para e do agrupamento 11. Adicionalmente, pode ser fornecido um relógio mais rápido, por exemplo, uma alta velocidade, que pode ser empregado pelas instâncias de HMM 13 para uso na realização dos vários cálculos descritos no presente documento.[0315] Additionally, cluster 11 may be configured such that a single or multiple clock domains may be employed therein, and thus one or more clocks may be present within cluster 11. In particular cases, multiple clock domains may be provided. For example, a slower clock may be provided, such as for communications, e.g., to and from cluster 11. Additionally, a faster clock, e.g., a high speed, may be provided, which may be employed by the HMM instances 13 for use in performing the various calculations described herein.

[0316] Particularmente, em diversas modalidades, conforme pode ser observado em relação à Figura 6, o sistema 1 pode ser configurado de modo que, em uma primeira instância, conforme o distribuidor de dados 9 alavanca o IP de CentCom existente, um colar, tal como uma junta, pode ser fornecido, em que a junta é configurada para traduzir sinais para e da interface de CentCom 5 de e para a interface de ou barramento de agrupamento de HMM 10. Por exemplo, um barramento de agrupamento de HMM 10 pode conectar de modo comunicativo e/ou operacional a CPU/GPU 1000 aos vários agrupamentos 11 do módulo de acelerador de HMM 8. Logo, conforme pode ser observado em relação à Figura 6, os dados de gravação e/ou leitura estruturados para cada haplótipo e/ou para cada leitura podem ser enviados por todo o sistema 1.[0316] Particularly, in various embodiments, as can be seen with respect to Figure 6, the system 1 may be configured such that, in a first instance, as the data distributor 9 leverages the existing CentCom IP, a collar, such as a joint, may be provided, wherein the joint is configured to translate signals to and from the CentCom interface 5 to and from the HMM cluster interface or bus 10. For example, an HMM cluster bus 10 may communicatively and/or operationally connect the CPU/GPU 1000 to the various clusters 11 of the HMM accelerator module 8. Thus, as can be seen with respect to Figure 6, structured read and/or write data for each haplotype and/or for each read may be sent throughout the system 1.

[0317] Após um trabalho 20 ser inserido no mecanismo de HMM, um mecanismo de HMM 13 pode tipicamente iniciar: a) imediatamente, se estivar OCIOSO, ou b) após ter concluído sua tarefa atualmente atribuída. Deve-se perceber que cada mecanismo de acelerador de HMM 13 pode manipular entradas ping e pong (por exemplo, pode estar trabalhando em um conjunto de dados enquanto o outro está sendo carregado), minimizando, assim, o tempo de inatividade entre trabalhos. Adicionalmente, o colar de agrupamento de HMM 11 pode ser configurado para tomar automaticamente o trabalho de entrada 20 enviado pelo distribuidor de dados 9 e atribuir o mesmo a uma das instâncias de mecanismo de HMM 13 no agrupamento 11 que pode receber um novo trabalho. Não precisa haver um controle no lado de software que possa selecionar uma instância de mecanismo de HMM específica 13 para um trabalho específico 20. Entretanto, em vários casos, o software pode ser configurado para controlar tais instâncias.[0317] After a job 20 is input to the HMM engine, an HMM engine 13 may typically start: a) immediately, if it is IDLE, or b) after it has completed its currently assigned task. It should be appreciated that each HMM accelerator engine 13 may handle ping and pong inputs (e.g., it may be working on one data set while another is being loaded), thereby minimizing downtime between jobs. Additionally, the HMM cluster collar 11 may be configured to automatically take the input job 20 sent by the data distributor 9 and assign it to one of the HMM engine instances 13 in the cluster 11 that can receive new work. There need not be a control on the software side that can select a specific HMM engine instance 13 for a specific job 20. However, in various cases, the software may be configured to control such instances.

[0318] Consequentemente, em vista do anterior, o sistema 1 pode ser transmitido continuamente ao transferir os dados de resultado de volta para a CPU/GPU/QPU e devido a essa eficácia, não é muitos dados que precisam voltar para a CPU/GPU/QPU para atingir a utilidade dos resultados. Isso permite que o sistema atinja uma operação de chamada de variante de cerca de 30 minutos ou menos, tal como cerca de 25 ou cerca de 20 minutos ou menos, por exemplo, cerca de 18 ou cerca de a15 minutos ou menos, incluindo cerca de 10 ou cerca de 7 minutos ou menos, ainda cerca de 5 ou cerca de 3 minutos ou menos, dependendo da configuração de sistema.[0318] Accordingly, in view of the foregoing, the system 1 can be continuously transmitted when transferring the result data back to the CPU/GPU/QPU and due to this efficiency, not much data needs to go back to the CPU/GPU/QPU to achieve the usefulness of the results. This allows the system to achieve a variant call operation of about 30 minutes or less, such as about 25 or about 20 minutes or less, for example, about 18 or about 15 minutes or less, including about 10 or about 7 minutes or less, even about 5 or about 3 minutes or less, depending on the system configuration.

[0319] A Figura 6 apresenta uma vista em alto nível de vários blocos funcionais dentro de um mecanismo de HMM exemplificativo 13 dentro de um acelerador de hardware 8, no FPGA ou ASIC 7. Especificamente, dentro do acelerador de HMM de hardware 8, há múltiplos agrupamentos 11, e dentro de cada agrupamento 11 há múltiplos mecanismos 13. A Figura 6 apresenta uma única instância de um mecanismo de HMM 13. Conforme pode ser observado em relação à Figura 6, o mecanismo 13 pode incluir uma interface de barramento de instância 12, uma pluralidade de memórias, por exemplo, uma HMEM 16 e uma RMEM 18, vários outros componentes 17, lógica de controle de HMM 15, assim como uma interface de saída de resultado 19. Particularmente, no lado do mecanismo, o barramento de instância de HMM 12 é conectado operacionalmente às memórias, HMEM 16 e RMEM 18, e pode incluir lógica de interface que se comunica com o cubo de agrupamento 11, em que o cubo está em comunicação com o distribuidor 9, que, por sua vez, está em comunicação com a interface de PCIe 4 que se comunica com o software de chamada de variante que é executado pela CPU/GPU e/ou pelo servidor 1000. O barramento de instância de HMM 12, portanto, recebe os dados da CPU 1000 e carrega os mesmos em uma ou mais das memórias, por exemplo, a HMEM e RMEM. Essa configuração pode ser também implantada em um ou mais circuitos quânticos e adaptada em conformidade.[0319] Figure 6 presents a high-level view of various functional blocks within an exemplary HMM engine 13 within a hardware accelerator 8, in the FPGA or ASIC 7. Specifically, within the hardware HMM accelerator 8, there are multiple clusters 11, and within each cluster 11 there are multiple engines 13. Figure 6 presents a single instance of an HMM engine 13. As can be seen with respect to Figure 6, the engine 13 may include an instance bus interface 12, a plurality of memories, e.g., an HMEM 16 and an RMEM 18, various other components 17, HMM control logic 15, as well as a result output interface 19. Particularly, on the engine side, the HMM instance bus 12 is operatively connected to the memories, HMEM 16 and RMEM 18, and may include interface logic that communicates with the cluster hub 11, wherein the hub is in communication with the distributor 9, which in turn is in communication with the PCIe interface 4 which communicates with the variant calling software that is executed by the CPU/GPU and/or the server 1000. The HMM instance bus 12 therefore receives the data from the CPU 1000 and loads it into one or more of the memories, e.g., the HMEM and RMEM. This configuration may also be implemented in one or more quantum circuits and adapted accordingly.

[0320] Nesses casos, espaço de memória suficiente deve ser alocado de modo que pelo menos um ou dois ou mais haplótipos, por exemplo, dois haplótipos, possam ser carregados, por exemplo, na HMEM 16, por dada sequência de leitura que é carregada, por exemplo, na RMEM 18, em que, quando múltiplos haplótipos são carregados, resulta em uma amenização da carga na largura de banda de barramento de PCIe 5. Em casos particulares, dois haplótipos e duas sequências de leitura podem ser carregadas em suas respectivas memórias, o que poderia permitir que as quatro sequências sejam processadas juntas em todas as combinações relevantes. Em outros casos, quatro, ou oito, ou dezesseis sequências, por exemplo, pares de sequências, podem ser carregadas e, de uma maneira similar, ser processadas em combinação, tal como para amenizar ainda mais a largura de banda quando desejado.[0320] In such cases, sufficient memory space should be allocated so that at least one or two or more haplotypes, e.g., two haplotypes, can be loaded into, e.g., the HMEM 16, per given read sequence that is loaded into, e.g., the RMEM 18, whereby when multiple haplotypes are loaded, it results in an alleviation of the load on the PCIe bus bandwidth 5. In particular cases, two haplotypes and two read sequences can be loaded into their respective memories, which could allow the four sequences to be processed together in all relevant combinations. In other cases, four, or eight, or sixteen sequences, e.g., pairs of sequences, can be loaded and, in a similar manner, be processed in combination, so as to further alleviate bandwidth when desired.

[0321] Adicionalmente, memória suficiente pode ser reservada de modo que uma estrutura ping-pong possa ser implantada na mesma de modo que, uma vez que as memórias sejam carregadas com um novo trabalho 20a, tal como no lado ping da memória, um novo sinal de trabalho seja indicado, e a lógica de controle 15 possa começar a processar o novo trabalho 20a, tal como gerando a matriz e realizando os cálculos de requisito, conforme descrito no presente documento e abaixo. Consequentemente, isso deixa o lado pong da memória disponível para ser carregado com outro trabalho 20b, que pode ser carregado na mesma enquanto o primeiro trabalho 20a está sendo processado, de modo que, conforme o primeiro trabalho 20a é finalizado, o segundo trabalho 20b possa começar imediatamente a ser processado pela lógica de controle 15.[0321] Additionally, sufficient memory may be reserved so that a ping-pong structure may be implemented therein so that once the memories are loaded with a new job 20a, such as on the ping side of the memory, a new job signal is indicated, and the control logic 15 may begin processing the new job 20a, such as generating the matrix and performing the requirement calculations, as described herein and below. Consequently, this leaves the pong side of the memory available to be loaded with another job 20b, which may be loaded therein while the first job 20a is being processed, so that as the first job 20a is completed, the second job 20b may immediately begin to be processed by the control logic 15.

[0322] Em tal caso, a matriz para o trabalho 20b pode ser pré-processada de modo que não haja virtualmente tempo de inatividade, por exemplo, um ou dois ciclos de relógio, do final do processamento do primeiro trabalho 20a e o início de processamento do segundo trabalho 20b. Logo, ao utilizar o lado ping e pong das estruturas de memória, a HMEM 16 pode armazenar tipicamente 4 sequências de haplótipo, por exemplo, duas por peça, e a RMEM 18 pode tipicamente armazenar 2 sequências de leitura. Essa configuração ping-pong é útil devido ao fato de que simplesmente exige um pequeno espaço extra de memória, mas permite uma duplicação do rendimento do mecanismo 13.[0322] In such a case, the matrix for job 20b may be preprocessed so that there is virtually no downtime, e.g., one or two clock cycles, from the end of processing of the first job 20a to the beginning of processing of the second job 20b. Thus, by utilizing the ping and pong side of the memory structures, the HMEM 16 can typically store 4 haplotype sequences, e.g., two per part, and the RMEM 18 can typically store 2 read sequences. This ping-pong configuration is useful in that it simply requires a little extra memory space, but allows a doubling of the throughput of the engine 13.

[0323] Durante e/ou após o processamento, as memórias 16, 18 alimentadas ao calcular de probabilidades de transição e bloco de tabela de pesquisa (LUT) 17a, que é configurado para calcular várias informações relacionadas a dados de "Prioris", conforme explicado abaixo, que, por sua vez, alimenta os dados de resultados de Priore ao bloco de calculador de estado M, I e D 17b, para uso ao calcular as probabilidades de transição. Uma ou mais RAMs de rascunho 17c podem também estar incluídas, tal como para manter os estados M, I e D no limite da faixa, por exemplo, os valores da fileira inferior da faixa de processamento, que, conforme indicado, em vários casos, pode ter qualquer quantidade adequada de células, por exemplo, cerca de 10 células, de comprimento de modo a ser proporcionar ao comprimento da faixa 35.[0323] During and/or after processing, memories 16, 18 are fed to the transition probability calculator and lookup table (LUT) block 17a, which is configured to calculate various information related to "prior" data, as explained below, which in turn feeds the prior result data to the M, I, and D state calculator block 17b for use in calculating the transition probabilities. One or more scratchpad RAMs 17c may also be included, such as to hold the M, I, and D states at the edge of the range, e.g., the values of the bottom row of the processing range, which, as indicated, in various cases may be any suitable number of cells, e.g., about 10 cells, in length so as to be proportionate to the length of the range 35.

[0324] Adicionalmente, um bloco de interface de saída de resultados separado 19 pode estar incluído de modo que, quando as somas são finalizadas, as mesmas, por exemplo, uma palavra de 4 32 bits, possam ser imediatamente transmitidas de volta ao software de chamada de variante da CPU/GPU/QPU 1000. Deve-se perceber que essa configuração pode ser adaptada de modo que o sistema 1, especificamente o calculador de M, I e D 17b, não seja mantido esperando pela interface de saída 19 ser liberada, por exemplo, contanto que não leve tanto tempo para liberar os resultados quando para realizar o trabalho 20. Logo, nessa configuração, pode haver três etapas de segmentação funcionando em conjunto para realizar uma segmentação de sistemas geral, tal como carregando a memória, realizando os cálculos de MID e emitindo os resultados. Ademais, nota-se que qualquer dado mecanismo de HMM 13 é um dentre muitos com sua própria interface de saída 19, entretanto, os mesmos podem compartilhar uma interface comum 10 de volta ao distribuidor de dados 9. Logo, o cubo de agrupamento 11 incluirá capacidades de gerenciamento para gerenciar a transferência ("xfer") de informações através do acelerador de HMM 8 de modo a evitar colisões.[0324] Additionally, a separate results output interface block 19 may be included so that when the sums are completed, the sums, e.g., a 4 32-bit word, may be immediately transmitted back to the calling software of the CPU/GPU/QPU 1000 variant. It will be appreciated that this configuration may be adapted so that the system 1, specifically the M, I, and D calculator 17b, is not kept waiting for the output interface 19 to be released, for example, so long as it does not take as long to release the results as it does to perform the work 20. Thus, in this configuration, there may be three segmentation steps working together to perform general system segmentation, such as loading memory, performing the MID calculations, and outputting the results. Furthermore, it will be noted that any given HMM engine 13 is one of many with its own output interface 19, however, they may share a common interface 10 back to the data distributor 9. Thus, the clustering cube 11 will include management capabilities to manage the transfer ("xfer") of information through the HMM accelerator 8 so as to avoid collisions.

[0325] Consequentemente, o seguinte detalha os processos que são realizados dentro de cada módulo dos mecanismos de HMM 13 conforme o mesmo recebe os dados de sequência de haplótipo e leitura, processa os mesmos e emite dados de resultados relacionados aos mesmos, conforme ilustrado de modo geral acima. Especificamente, as computações de alta largura de banda no mecanismo de HMM 13, dentro do agrupamento de HMM 11, são direcionadas a computar e/ou atualizar os valores de estado de correspondência (M), inserção (I) e deleção (D), que são empregados para determinar se a leitura particular que é examinada corresponde à referência de haplótipo assim como a extensão da mesma, conforme descrito acima. Particularmente, a leitura juntamente com a pontuação Phred e o valor GOP para cada base na leitura é transmitida ao agrupamento 11 a partir do distribuidor 9 e é, assim, atribuída a um mecanismo de processamento particular 13 para processamento. Esses dados são, então, usados pelo calculador de M, I e D 17 do mecanismo de processamento 13 para determinar se a base chamada na leitura tem probabilidade maior ou menor de estar correta e/ou ser correspondente a sua respectiva base no haplótipo, ou ser o produto de uma variação, por exemplo, uma inserção ou deleção; e/ou, se houver uma variação, se tal variação é o resultado provável de uma variabilidade verdadeira no haplótipo ou, em vez disso, um artefato de um erro nos sistemas de geração e/ou mapeamento e/ou alinhamento de sequência.[0325] Accordingly, the following details the processes that are performed within each module of the HMM engines 13 as it receives the haplotype and read sequence data, processes the same, and outputs result data related thereto, as generally illustrated above. Specifically, the high bandwidth computations in the HMM engine 13, within the HMM cluster 11, are directed to computing and/or updating the match (M), insertion (I), and deletion (D) status values, which are employed to determine whether the particular read being examined matches the haplotype reference as well as the extent thereof, as described above. In particular, the read along with the Phred score and GOP value for each base in the read is transmitted to the cluster 11 from the distributor 9 and is thereby assigned to a particular processing engine 13 for processing. This data is then used by the M, I, and D calculator 17 of the processing engine 13 to determine whether the base called in the read is more or less likely to be correct and/or to match its respective base in the haplotype, or to be the product of a variation, e.g., an insertion or deletion; and/or, if there is a variation, whether such variation is the likely result of true variability in the haplotype or, instead, an artifact of an error in the sequence generation and/or mapping and/or alignment systems.

[0326] Conforme indicado acima, uma parte de tal análise inclui o calculador de MID 17 determinar as probabilidades de transição de uma base para a outra na leitura que passa de um estado de M, I ou D para outro em comparação com a referência, tal como de um estado de correspondência para outro estado de correspondência, ou um estado de correspondência para um estado de inserção ou para um estado de deleção. Para realizar tais determinações, cada uma das probabilidades de transição associadas é determinada e considerada ao avaliar se qualquer variação observada entre a leitura e a referência é uma variação verdadeira e não apenas um erro de máquina ou processamento. Para esses propósitos, a pontuação Phred para cada base que é considerada é útil para determinar as probabilidades de transição dentro e fora do estado de correspondência, tal como passando de um estado de correspondência para um estado de inserção ou deleção, por exemplo, com lacuna, na comparação. Similarmente, as probabilidades de transição de continuar um estado com lacuna, por exemplo, um estado de inserção ou deleção, de volta para um estado de correspondência são determinadas. Em casos particulares, as probabilidades dentro ou fora do estado de deleção ou inserção, por exemplo, saindo de um estado de continuação de lacuna, podem ser um valor fixo e podem ser denominadas no presente documento como a probabilidade ou a penalidade de continuação de lacuna. No entanto, em vários casos, tais penalidades de continuação de lacuna podem ser oscilantes e, portanto, submetidas a dependência de alteração das demandas de precisão da configuração de sistema.[0326] As indicated above, a part of such an analysis includes the MID calculator 17 determining the transition probabilities from one base to another in the read that passes from one M, I, or D state to another compared to the reference, such as from a match state to another match state, or a match state to an insertion state or to a deletion state. To make such determinations, each of the associated transition probabilities is determined and considered in evaluating whether any observed variation between the read and the reference is a true variation and not merely a machine or processing error. For these purposes, the Phred score for each base that is considered is useful in determining the transition probabilities into and out of the match state, such as passing from a match state to an insertion or deletion state, e.g., gapped, in the comparison. Similarly, the transition probabilities of continuing from a gapped state, e.g., an insertion or deletion state, back to a match state are determined. In particular cases, the probabilities of entering or exiting the deletion or insertion state, e.g., exiting a gap continuation state, may be a fixed value and may be referred to herein as the gap continuation probability or penalty. However, in various cases, such gap continuation penalties may be oscillating and thus subject to changing dependence on the accuracy demands of the system configuration.

[0327] Consequentemente, conforme representado em relação às Figuras 7 e 8, cada um dos valores de estado M, I e D é computado para cada leitura e pareamento de bases de haplótipo possíveis. Em tal caso, uma matriz virtual 30 de células contendo a sequência de leitura que é avaliada em um eixo geométrico da matriz e a sequência de haplótipo associada no outro eixo geométrico pode ser formada, tal como em que cada célula na matriz representa uma posição de base na leitura e referência de haplótipo. Logo, se as sequências de leitura e haplótipo tiverem, cada uma, 100 bases de comprimento, a matriz 30 incluirá 100 por 100 células, uma dada porção das quais pode precisar ser processada a fim de determinar a verossimilhança e/ou até que ponto essa leitura particular corresponde com essa referência particular. Logo, uma vez virtualmente formada, a matriz 30 pode ser, então, usada para determinar as várias transições de estado que ocorrem ao mover de uma base na sequência de leitura para outra e comparar as mesmas àquela da sequência de haplótipo, tal como representado nas Figuras 7 e 8. Especificamente, o mecanismo de processamento 13 é configurado de modo que uma multiplicidade de células possa ser processada em paralelo e/ou de forma sequencial ao cruzar a matriz com a lógica de controle 15. Por exemplo, conforme representado na Figura 7, uma faixa de processamento virtual 35 é propagada e se move através da matriz 30, tal como da esquerda para a direita, processando células individuais da matriz 30 através da diagonal da direita para a esquerda.[0327] Accordingly, as depicted with respect to Figures 7 and 8 , each of the M, I, and D state values is computed for each possible read and haplotype base pairing. In such a case, a virtual array 30 of cells containing the read sequence that is evaluated on one axis of the array and the associated haplotype sequence on the other axis may be formed, such that each cell in the array represents a base position in the read and haplotype reference. Thus, if the read and haplotype sequences are each 100 bases in length, the array 30 will include 100 by 100 cells, a given portion of which may need to be processed in order to determine the likelihood and/or the extent to which that particular read matches that particular reference. Thus, once virtually formed, the array 30 can then be used to determine the various state transitions that occur when moving from one base in the read sequence to another and compare them to that of the haplotype sequence, as depicted in Figures 7 and 8. Specifically, the processing engine 13 is configured so that a plurality of cells can be processed in parallel and/or sequentially when traversing the array with the control logic 15. For example, as depicted in Figure 7, a virtual processing track 35 is propagated and moves across the array 30, such as from left to right, processing individual cells of the array 30 across the diagonal from right to left.

[0328] Mais especificamente, conforme pode ser observado em relação à Figura 7, cada célula virtual individual dentro da matriz 30 inclui um valor de estado de M, I e D que precisa ser calculado para avaliar a natureza da identidade da base chamada e, conforme representado na Figura 7, as dependências de dados para cada célula nesse processo podem ser claramente vistas. Logo, para determinar um dado estado de M de uma presente célula que é processada, os estados de Correspondência, Inserção e Deleção da célula diagonalmente acima da presente célula precisam ser inseridos na presente célula e usados no cálculo do estado de M da célula que é presentemente calculada (por exemplo, assim, a progressão para baixo diagonal, para frente através da matriz é indicativa de correspondência).[0328] More specifically, as can be seen with respect to Figure 7, each individual virtual cell within the matrix 30 includes a state value of M, I, and D that needs to be calculated to assess the nature of the identity of the called base, and as depicted in Figure 7, the data dependencies for each cell in this process can be clearly seen. Thus, to determine a given M state of a present cell that is processed, the Match, Insert, and Delete states of the cell diagonally above the present cell need to be inserted into the present cell and used in calculating the M state of the cell that is presently calculated (e.g., thus, progression down diagonally, forward through the matrix is indicative of matching).

[0329] Entretanto, para determinar o estado de I, apenas os estados de Correspondência e Inserto para a célula diretamente acima da presente célula precisam ser inseridos na presente célula que é processada (assim, a progressão para baixo vertical "com lacuna" ao continuar em um estado de inserção). De modo semelhante, para determinar o estado de D, apenas os estados de Correspondência e Deleção para a célula diretamente à esquerda da presente célula precisa ser inserida na presente célula (assim, a progressão para transversal horizontal "com lacuna" ao continuar em um estado de deleção). Conforme pode ser observado em relação à Figura 7, após a computação da célula 1 (a célula sombreada na fileira mais superior) começa, o processamento da célula 2 (a célula sombreada na segunda fileira) pode começar também, sem aguardar quaisquer resultados da célula 1, devido ao fato de que não há dependências de dados entre essa célula na fileira 2 e a célula da fileira 1 quando o processamento começa. Isso forma uma diagonal reversa 35 em que o processamento prossegue para baixo e para a esquerda, conforme mostrado pela seta vermelha. Essa abordagem de processa em diagonal reversa 35 aumenta a eficácia de processamento e rendimento do sistema geral. De modo semelhante, os dados gerados na célula 1 podem ser imediatamente avançadas para a célula abaixo e à frente à direita da célula mais superior 1, avançando, assim, a faixa 35 para frente.[0329] However, to determine the state of I, only the Match and Insert states for the cell directly above the present cell need to be inserted into the present cell that is processed (thus the vertical downward "gap" progression when continuing in an insert state). Similarly, to determine the state of D, only the Match and Delete states for the cell directly to the left of the present cell need to be inserted into the present cell (thus the horizontal transverse "gap" progression when continuing in a delete state). As can be seen from Figure 7, after computation of cell 1 (the shaded cell in the topmost row) begins, processing of cell 2 (the shaded cell in the second row) can begin as well, without waiting for any results from cell 1, because there are no data dependencies between that cell in row 2 and the cell in row 1 when processing begins. This forms a reverse diagonal 35 in which processing proceeds downward and to the left, as shown by the red arrow. This 35-reverse diagonal processing approach increases the processing efficiency and throughput of the overall system. Similarly, data generated in cell 1 can be immediately advanced to the cell below and ahead to the right of the topmost cell 1, thus advancing the 35-track forward.

[0330] Por exemplo, a Figura 7 representa uma estrutura de matriz de HMM exemplificativa 35 que mostra o fluxo de processamento de hardware. A matriz 35 inclui o índice de base de haplótipo, por exemplo, contendo 36 bases, posicionado para funcionar ao longo da borda superior do eixo geométrico horizontal e inclui adicionalmente o índice de leitura de base, por exemplo, 10 bases, posicionado para se estender ao longo da borda lateral do eixo geométrico vertical de tal maneira a formar uma estrutura de células, em que uma seleção das células pode ser populada com um estado de probabilidade de M, I e D, e as probabilidades de transição de transitar do presente estado para um estado vizinho. Em tal caso, conforme descrito em mais detalhes abaixo, um movimento do estado de correspondência para um estado de correspondência resulta em uma progressão diagonal para frente através da matriz 30, enquanto o movimento de um estado de correspondência para um estado de inserção resulta em uma lacuna de processamento para baixo vertical, e um movimento de um estado de correspondência para um estado de deleção resulta em uma lacuna de progressão horizontal. Logo, conforme representado na Figura 8, para uma dada célula, ao determinar os estados de correspondência, inserção e deleção para cada célula, as probabilidades de correspondência, inserção e deleção de suas três células contíguas são empregadas.[0330] For example, Figure 7 depicts an exemplary HMM matrix structure 35 that shows the hardware processing flow. The matrix 35 includes the haplotype base index, e.g., containing 36 bases, positioned to run along the upper edge of the horizontal axis, and further includes the read base index, e.g., 10 bases, positioned to extend along the lateral edge of the vertical axis in such a manner as to form a cell structure, in which a selection of the cells may be populated with a state probability of M, I, and D, and transition probabilities of transitioning from the present state to a neighboring state. In such a case, as described in more detail below, a movement from the match state to a match state results in a forward diagonal progression through the matrix 30, while a movement from a match state to an insertion state results in a vertical downward processing gap, and a movement from a match state to a deletion state results in a horizontal progression gap. Therefore, as represented in Figure 8, for a given cell, when determining the matching, insertion, and deletion states for each cell, the matching, insertion, and deletion probabilities of its three contiguous cells are employed.

[0331] A separa para baixo na Figura 7 representa a natureza paralela e sequencial do mecanismo (ou mecanismos) de processamento que é configurado de modo a produzir uma faixa ou onda de processamento 35 que se move progressivamente ao longo da matriz virtual em conformidade com as dependências de dados, configurar as Figuras 7 e 8, para determinar os estados de M, I e D para cada célula particular na estrutura 30. Consequentemente, em certos casos, pode ser desejável calcular as identidades de cada célula de uma maneira para baixo e diagonal, conforme explicado acima, em vez de simplesmente calcular cada célula ao longo de um eixo geométrico vertical ou horizontal exclusivamente, embora isso possa ser feito, se desejado. Isso se deve ao tempo de espera aumentado, por exemplo, latência, que poderia ser necessário ao processar as células virtuais da matriz 35 individual ou sequencialmente ao longo do eixo geométrico vertical ou horizontal apenas, tal como por meio da configuração de hardware.[0331] The downward split in Figure 7 represents the parallel and sequential nature of the processing engine (or engines) that is configured to produce a processing band or wave 35 that moves progressively along the virtual matrix in accordance with the data dependencies, set out in Figures 7 and 8, to determine the M, I, and D states for each particular cell in the matrix 30. Accordingly, in certain cases, it may be desirable to calculate the identities of each cell in a downward and diagonal manner, as explained above, rather than simply calculating each cell along a vertical or horizontal axis exclusively, although this may be done if desired. This is due to the increased wait time, e.g., latency, that might be required when processing the virtual cells of the matrix 35 individually or sequentially along the vertical or horizontal axis only, such as by means of the hardware configuration.

[0332] Por exemplo, em tal caso, ao se mover linear e sequencialmente através da matriz virtual 30, tal como de uma maneira fileira por fileira ou coluna por coluna, a fim de processar cada nova célula, as computações de estado de cada célula anterior poderiam ter que ser concluídas, aumentando, assim, o tempo de latência geral. Entretanto, ao propagar as probabilidades de M, I, D de cada nova célula de uma forma para baixo e diagonal, o sistema 1 não tem que aguardar pelo processamento de sua célula anterior, por exemplo, da célula um, ser concluído antes de começar o processamento de uma célula contígua na fileira dois da matriz. Isso permite que processamento em paralelo e sequencial de células em uma disposição diagonal ocorra e permite adicionalmente que os vários atrasos computacionais da segmentação associados aos cálculos de estado de M, I e D sejam ocultados. Consequentemente, conforme a faixa 35 se move através da matriz 30 da esquerda para a direita, o processamento computacional se move diagonalmente para baixo, por exemplo, em direção à esquerda (conforme mostrado pela seta na Figura 7). Essa configuração pode ser particularmente útil para implantações de hardware e/ou circuito quântico, tal como em que a memória e/ou a latência relógio por relógio são uma preocupação primária.[0332] For example, in such a case, when moving linearly and sequentially through virtual matrix 30, such as in a row-by-row or column-by-column manner, in order to process each new cell, the state computations of each previous cell would have to be completed, thus increasing the overall latency time. However, by propagating the M, I, D probabilities of each new cell in a downward and diagonal fashion, system 1 does not have to wait for the processing of its previous cell, e.g., cell one, to be completed before beginning processing of a contiguous cell in row two of the matrix. This allows parallel and sequential processing of cells in a diagonal arrangement to occur and further allows the various computational segmentation delays associated with the M, I, and D state computations to be hidden. Consequently, as track 35 moves through matrix 30 from left to right, the computational processing moves diagonally downward, e.g., toward the left (as shown by the arrow in Figure 7). This configuration can be particularly useful for quantum hardware and/or circuit deployments, such as where memory and/or clock-to-clock latency are a primary concern.

[0333] Nessas configurações, a saída de valor real de cada chamada de um mecanismo de HMM 13, por exemplo, após ter calculado a matriz inteira 30, pode ser uma fileira inferior (por exemplo, Fileira 35 da Figura 21) contendo estados de M, I e D, em que os estados de M e I podem ser somados (os estados de D podem ser ignorados nesse ponto tendo já atendido sua função no processamento dos cálculos acima), de modo a produzir um valor de soma final que pode ser uma única probabilidade que estima, para cada índice de leitura e haplótipo, a probabilidade de observar a leitura, por exemplo, assumindo que o haplótipo era o DNA original verdadeiro amostrado.[0333] In such configurations, the actual value output of each invocation of an HMM engine 13, for example after having calculated the entire matrix 30, may be a bottom row (e.g., Row 35 of Figure 21) containing M, I, and D states, wherein the M and I states may be summed (the D states may be ignored at this point having already served their function in processing the above calculations) so as to produce a final sum value which may be a single probability that estimates, for each read index and haplotype, the probability of observing the read, for example assuming that the haplotype was the true original DNA sampled.

[0334] Particularmente, o resultado do processamento da matriz 30, por exemplo, da Figura 7, pode ser um valor único que representa a probabilidade de que a leitura seja uma representação real desse haplótipo. Essa probabilidade é um valor entre 0 e 1 e é formado somando-se todos os estados de M e I da fileira inferior de células na matriz de HMM 30. Essencialmente, o que está sendo avaliado é a possibilidade de que algo poderia ser dado errado no sequenciador, ou métodos de preparação de DNA associados antes do sequenciamento, de modo a produzir incorretamente uma divergência, uma inserção ou uma deleção na leitura que não está atualmente presente dentro da sequência genética do sujeito. Em tal caso, a leitura não é uma reflexão verdadeira do DNA real do sujeito.[0334] In particular, the result of processing array 30, for example, of Figure 7, may be a single value that represents the probability that the read is a true representation of that haplotype. This probability is a value between 0 and 1 and is formed by summing all the M and I states of the bottom row of cells in HMM array 30. Essentially, what is being assessed is the possibility that something could go wrong in the sequencer, or associated DNA preparation methods prior to sequencing, so as to incorrectly produce a mismatch, insertion or deletion in the read that is not actually present within the subject's genetic sequence. In such a case, the read is not a true reflection of the subject's actual DNA.

[0335] Logo, considerando tais erros de produção, pode ser determinado o que qualquer dada leitura realmente representa em relação ao haplótipo e, assim, permitir que o sistema determine melhor como a sequência genética do sujeito, por exemplo, em massa, pode diferir daquela de uma sequência de referência. Por exemplo, muitos haplótipos podem ser executados contra muitas sequências de leitura, gerando pontuações para todos os mesmos e determinando, com base em quais correspondência têm as melhores pontuações, qual a identidade de sequência genômica real do indivíduo é e/ou como a mesma varia realmente em relação a um genoma de referência.[0335] Thus, by taking such production errors into account, it can be determined what any given read actually represents relative to the haplotype, and thus allow the system to better determine how the subject's genetic sequence, e.g., en masse, may differ from that of a reference sequence. For example, many haplotypes can be run against many read sequences, generating scores for all of them, and determining, based on which matches have the best scores, what the individual's actual genomic sequence identity is and/or how it actually varies relative to a reference genome.

[0336] Mais particularmente, a Figura 8 representa uma vista ampliada de uma porção da matriz de estado de HMM 30 da Figura 7. Conforme mostrado na Figura 8, dada a composição interna de cada célula na matriz 30, assim como a estrutura da matriz como um todo, a probabilidade de estado de M, I e D para qualquer dada "nova" célula que é calculada é dependente dos estados de M, I e D de diversos de seus vizinhos circundantes que já foram calculados. Particularmente, conforme mostrado com mais detalhes em relação às Figuras 1 e 16, em uma configuração exemplificativa, pode haver uma probabilidade de aproximadamente 0,9998 de passar de um estado de correspondência para outro estado de correspondência e há apenas uma probabilidade de0,0001 (penalidade de lacuna aberta) de passar de um estado de correspondência para um estado de inserção ou deleção, por exemplo, com lacuna. Ademais, quando em estado de inserção com lacuna ou deleção com lacuna, pode haver apenas uma probabilidade de 0,1 (penalidade de extensão ou continuação de lacuna) de permanecer no estado com lacuna, enquanto há uma probabilidade de 0,9 de retornar a um estado de correspondência. Deve-se perceber que de acordo com esse modelo, todas as probabilidades dentro ou fora de um dado estado devem somar um. Particularmente, o processamento da matriz 30 gira em torno de calcular as probabilidades de transição, considerando as várias penalidades de abertura de lacuna ou continuação de lacuna e uma soma final é calculada.[0336] More particularly, Figure 8 depicts an enlarged view of a portion of the HMM state matrix 30 of Figure 7. As shown in Figure 8, given the internal composition of each cell in the matrix 30, as well as the structure of the matrix as a whole, the probability of the M, I, and D states for any given "new" cell that is computed is dependent on the M, I, and D states of several of its surrounding neighbors that have already been computed. In particular, as shown in more detail with respect to Figures 1 and 16, in an exemplary configuration, there may be an approximately 0.9998 probability of moving from one match state to another match state, and there is only a 0.0001 probability (open gap penalty) of moving from a match state to an insertion or deletion state, e.g., with a gap. Furthermore, when in a gapped insertion or gapped deletion state, there may be only a 0.1 probability (gap extension or gap continuation penalty) of remaining in the gapped state, while there is a 0.9 probability of returning to a matching state. It should be noted that according to this model, all probabilities into or out of a given state must sum to one. In particular, the processing of matrix 30 revolves around calculating the transition probabilities given the various gap opening or gap continuation penalties, and a final sum is calculated.

[0337] Logo, essas probabilidades de transição de estado calculadas são derivadas principalmente das células diretamente contíguas na matriz 30, tal como das células que estão imediatamente à esquerda, acima ou diagonalmente acima e à esquerda daquela dada célula atualmente sendo calculada, conforme visto na Figura 16. Adicionalmente, as probabilidades de transição de estado podem em parte ser derivadas da pontuação de qualidade "Phred" que acompanha cada base de leitura. Essas probabilidades de transição, portanto, são úteis para computar os valores de estado de M, I e D para essa célula particular e, de modo semelhante, para qualquer nova célula que é calculada. Deve-se perceber que, conforme descrito no presente documento, as penalidades abertura de lacuna e continuação de lacuna podem ser valores fixos, entretanto, em vários casos, as penalidades de abertura de lacuna e continuação de lacuna podem ser variáveis e, portanto, programáveis dentro do sistema, embora empregando-se recursos de hardware adicionais dedicados a determinar tais cálculos de probabilidade de transição variável. Tais casos podem ser úteis quando maior precisão é desejada. No entanto, quando tais valores são assumidos como constantes, um menor uso de recurso e/ou tamanho de chip podem ser atingidos, levando a maior velocidade de processamento, conforme explicado abaixo.[0337] Thus, these calculated state transition probabilities are derived primarily from directly contiguous cells in the array 30, such as cells that are immediately to the left, above, or diagonally above and to the left of the given cell currently being calculated, as seen in Figure 16. Additionally, the state transition probabilities may in part be derived from the "Phred" quality score that accompanies each read base. These transition probabilities are therefore useful for computing the state values of M, I, and D for that particular cell, and similarly for any new cell that is calculated. It should be appreciated that, as described herein, the gap opening and gap continuation penalties may be fixed values, however, in many cases, the gap opening and gap continuation penalties may be variable and therefore programmable within the system, albeit employing additional hardware resources dedicated to determining such variable transition probability calculations. Such cases may be useful when greater accuracy is desired. However, when such values are assumed to be constant, lower resource usage and/or chip size can be achieved, leading to higher processing speeds, as explained below.

[0338] Consequentemente, há uma multiplicação de cálculos e/ou outras computações matemáticas, tais como multiplicações e/ou adições, que estão envolvidas na derivação de cada novo valor de estado de M, I e D. Em tal caso, tal como para calcular o rendimento máximo, as computações matemáticas primitivas envolvidas em cada cálculo de estado de transição de M, I e D podem ser segmentadas. Tal segmentação pode ser configurada de uma forma que as frequências de relógio correspondentes sejam altas, mas em que a profundidade de segmentação possa ser não trivial. Ademais, tal segmentação pode ser configurada para ter uma profundidade finita e, em tais casos, pode levar mais de um ciclo de relógio para concluir as operações.[0338] Accordingly, there are multiplication calculations and/or other mathematical computations, such as multiplications and/or additions, that are involved in deriving each new state value of M, I, and D. In such a case, such as for calculating maximum throughput, the primitive mathematical computations involved in each transition state calculation of M, I, and D may be segmented. Such segmentation may be configured in a way that the corresponding clock frequencies are high, but where the segmentation depth may be non-trivial. Furthermore, such segmentation may be configured to have a finite depth, and in such cases may take more than one clock cycle to complete the operations.

[0339] Por exemplo, essas computações podem ser executadas em altas velocidades dentro do processador 7, tal como a cerca de 300 MHz. Isso pode ser atingido tal como segmentando-se o FPGA ou ASIC pesadamente com registros de modo que computação matemática pequena ocorra entre cada flip-flop. Essa estrutura de segmentação resulta em múltiplos ciclos de latência ao passar da entrada do estado de correspondência para a saída, mas dada a estrutura de computação em diagonal reversa, apresentada na Figura 7 acima, essas latências podem ser ocultadas por toda a matriz de HMM 30, tal como em que cada célula representa um ciclo de relógio.[0339] For example, these computations may be performed at high speeds within the processor 7, such as about 300 MHz. This may be achieved such as by segmenting the FPGA or ASIC heavily with registers so that small mathematical computation occurs between each flip-flop. This segmentation structure results in multiple cycles of latency in going from the input of the matching state to the output, but given the reverse diagonal computation structure shown in Figure 7 above, these latencies may be hidden throughout the HMM array 30, such as where each cell represents a clock cycle.

[0340] Logo, o número de cálculos de estado de M, I e D pode ser limitado. Em tal caso, o mecanismo de processamento 13 pode ser configurado de tal maneira que um agrupamento, por exemplo, faixa 35, de células em diversas fileiras da matriz 30 possa ser processado como um grupo (tal como de uma forma para baixo e diagonal para esquerda conforme ilustrado pela seta na Figura 7) antes de prosseguir para o processamento de uma segunda faixa abaixo, por exemplo, em que a segunda faixa contém o mesmo número de células em fileiras a serem processadas como a primeira. De uma maneira como essa, uma implantação de hardware de um acelerador 8, conforme descrito no presente documento, pode ser adaptada de modo a tornar o sistema geral mais eficaz, conforme descrito acima.[0340] Thus, the number of M, I, and D state calculations may be limited. In such a case, the processing engine 13 may be configured such that a grouping, e.g., range 35, of cells in several rows of the matrix 30 may be processed as a group (such as in a downward and diagonally to the left fashion as illustrated by the arrow in Figure 7) before proceeding to the processing of a second range below, e.g., wherein the second range contains the same number of cells in rows to be processed as the first. In such a manner, a hardware implementation of an accelerator 8 as described herein may be adapted so as to make the overall system more efficient as described above.

[0341] Particularmente, a Figura 9 apresenta uma estrutura computacional exemplificativa para realizar vários cálculos de processamento de estado descritos no presente documento. Mais particularmente, a Figura 9 apresenta três blocos lógicos dedicados 17 do mecanismo de processamento 13 para computar as computações de estado envolvidas na geração de cada valor de estado de M, I e D para cada célula particular, ou agrupamento de células, que é processada na matriz de HMM 30. Esses blocos lógicos podem ser implantados em hardware, mas, em alguns casos, podem ser implantados em software, tal como para serem realizados por um ou mais circuitos quânticos. Conforme pode ser observado em relação à Figura 9, a computação de estado de correspondência 15a está mais envolvida que qualquer uma das computações de inserção 15b ou deleção 15c, isso se deve ao fato de que, no cálculo do estado de correspondência 15a da presente célula que é processada, todos os estados de correspondência, inserção e deleção anteriores das células contíguas juntamente com vários dados de "Prioris" estão incluídos na presente computação de correspondência (consultar as Figuras 9 e 10), enquanto apenas a correspondência e os estados de inserção e deleção estão incluídos em seus respectivos cálculos. Logo, conforme pode ser observado em relação à Figura 9, no cálculo de um estado de correspondência, três multiplicadores de estado, assim como dois adicionadores, e um multiplicador final, que consideram os dados de Priori, por exemplo, Phred, estão incluídos. Entretanto, para calcular o estado de I ou D, apenas dois multiplicadores e um adicionador estão incluídos. Percebe-se que em hardware, os multiplicadores exigem mais recursos do que os adicionadores.[0341] In particular, Figure 9 presents an exemplary computational structure for performing various state processing computations described herein. More particularly, Figure 9 presents three dedicated logic blocks 17 of the processing engine 13 for computing the state computations involved in generating each state value of M, I, and D for each particular cell, or grouping of cells, that is processed in the HMM array 30. These logic blocks may be implemented in hardware, but in some cases may be implemented in software, such as to be performed by one or more quantum circuits. As can be seen from Figure 9, the matching state computation 15a is more involved than either the insertion 15b or deletion 15c computations. This is because in the computation of the matching state 15a of the present cell being processed, all previous matching, insertion and deletion states of the contiguous cells along with various priors are included in the present matching computation (see Figures 9 and 10), while only the matching, insertion and deletion states are included in their respective computations. Therefore, as can be seen from Figure 9, in the computation of a matching state, three state multipliers, as well as two adders, and a final multiplier, which consider the priors, e.g., Phred, are included. However, to compute the I or D state, only two multipliers and one adder are included. It can be seen that in hardware, the multipliers require more resources than the adders.

[0342] Consequentemente, até vários pontos, os valores de estado de M, I e D para processar cada nova célula na matriz de HMM 30 uso o conhecimento ou a pré-computação dos seguintes valores, tais como os valores de estado de M, I e D “anteriores” da esquerda, acima e/ou diagonalmente à esquerda e acima da célula que é computada atualmente na matriz de HMM. Adicionalmente, tais valores que representam as informações anteriores, ou "Prioris", podem ser, pelo menos em parte, baseados na pontuação de qualidade "Phred” e se a base de leitura e a base de referência em uma dada célula na matriz 30 correspondem ou são diferentes. Tais informações são particularmente úteis ao determinar um estado de correspondência. Especificamente, conforme pode ser observado em relação à Figura 9, em tais casos, há basicamente sete "probabilidades de transição" (M para M, I para M, D para M, I para I, M para I, D para D e M para D) que indicam e/ou estimam a probabilidade de ver uma abertura de lacuna, por exemplo, de ver uma transição de um estado de correspondência para um estado de inserção ou deleção; ver um fechamento de lacuna; por exemplo, passando de um estado de inserção ou deleção de volta para um estado de correspondência; e ver o estado seguintes continuando no mesmo estado que o estado anterior, por exemplo, Correspondência para Correspondência, Inserto para Inserto, Deleção para Deleção.[0342] Accordingly, to various extents, the M, I, and D state values for processing each new cell in the HMM matrix 30 use knowledge or precomputation of the following values, such as the “prior” M, I, and D state values to the left, above, and/or diagonally to the left and above the cell that is currently computed in the HMM matrix. Additionally, such values representing prior information, or “prioris,” may be, at least in part, based on the “Phred” quality score and whether the read basis and reference basis in a given cell in the matrix 30 match or differ. Such information is particularly useful in determining a matching state. Specifically, as can be seen from Figure 9, in such cases, there are basically seven "transition probabilities" (M to M, I to M, D to M, I to I, M to I, D to D, and M to D) that indicate and/or estimate the probability of seeing a gap opening, e.g., seeing a transition from a match state to an insertion or deletion state; seeing a gap closing, e.g., going from an insertion or deletion state back to a match state; and seeing the next state continuing in the same state as the previous state, e.g., Match to Match, Insert to Insert, Deletion to Deletion.

[0343] Os valores de estado (por exemplo, em qualquer célula a ser processada na matriz de HMM30), Prioris, e as probabilidades de transição são todos valores na faixa de [0,1]. Adicionalmente, há também condições de partida conhecidas para células que estão na esquerda ou na borda superior da matriz de HMM 30. Conforme pode ser visto a partir da lógica 15a da Figura 9, há quatro computações de multiplicação e duas de adição que podem ser empregadas no cálculo de estado de M particular que é determinado para qualquer dada célula que é processada. De modo semelhante, conforme pode ser visto a partir da lógica de 15b e 15c, há duas multiplicações e uma adição envolvidas para cada estado de I e cada cálculo de estado de D, respectivamente. Coletivamente, juntamente com os multiplicadores de prioris, o mesmo se soma a um total de oito multiplicações e quatro operações de adição para os cálculos de estado de M, I e D associados a cada célula única na matriz de HMM 8 a ser processada.[0343] The state values (e.g., at any cell to be processed in the HMM array 30), priors, and transition probabilities are all values in the range [0,1]. Additionally, there are also known starting conditions for cells that are on the left or top edge of the HMM array 30. As can be seen from logic 15a of Figure 9, there are four multiplication and two addition computations that can be employed in the particular M state calculation that is determined for any given cell that is processed. Similarly, as can be seen from the logic of 15b and 15c, there are two multiplications and one addition involved for each I state and each D state calculation, respectively. Collectively, together with the prior multipliers, this adds up to a total of eight multiplications and four addition operations for the M, I, and D state calculations associated with each unique cell in the HMM array 8 to be processed.

[0344] A saída de soma final, por exemplo, a fileira 34 da Figura 16, da computação da matriz 30, por exemplo, para um único trabalho 20 de comparar uma leitura a um ou dois haplótipos, é a soma dos estados de M e I finais através da fileira inferior inteira 34 da matriz 30, que é o valor de soma final que é emitido do acelerador de HMM 8 e entregue à CPU/GPU/QPU 1000. Esse valor somado final representa quão bem a leitura corresponde ao haplótipo (ou haplótipos). O valor é uma probabilidade, por exemplo, menor que um, para um único trabalho 20a que pode ser, então, comparado à saída resultante de outro trabalho 20b, de modo a formar a mesma região ativa 500. Nota-se que há na ordem de 20 trilhões de células de HMM para avaliar em um genoma humano "típico" em cobertura 30X, em que esses 20 trilhões de células de HMM são espalhados através de cerca de 1 a 2 bilhões de matrizes de HMM 30 de todos os trabalhos de HMM associados 20.[0344] The final sum output, e.g., row 34 of Figure 16, of the computation of matrix 30, e.g., for a single job 20 of comparing a read to one or two haplotypes, is the sum of the final M and I states across the entire bottom row 34 of matrix 30, which is the final sum value that is output from HMM accelerator 8 and delivered to CPU/GPU/QPU 1000. This final sum value represents how well the read matches the haplotype (or haplotypes). The value is a probability, e.g. less than one, for a single job 20a that can then be compared to the resulting output of another job 20b to form the same active region 500. Note that there are on the order of 20 trillion HMM cells to evaluate on a "typical" human genome at 30X coverage, where these 20 trillion HMM cells are spread across about 1 to 2 billion HMM matrices 30 from all associated HMM jobs 20.

[0345] Os resultados de tais cálculos podem ser, então, comparados um contra o outro de modo a determinar, de uma maneira mais precisa, como a sequência genética de um sujeito difere, por exemplo, em uma comparação de base por base, daquela de um ou mais genomas de referência. Para o cálculo de soma final, os adicionadores já empregados para calcular os estados de M, I e/ou D das células individuais podem ser reimplantados de modo a computar o valor de soma final, tal como incluindo uma multiplexação em uma seleção dos adicionados reimplantados, incluindo, assim, uma última fileira adicionais, por exemplo, em relação ao tempo de cálculo, à matriz de modo a calcular essa soma final, em que, se o comprimento de leitura for de 100 bases representa cerca de uma sobrecarga de 1%. Em modalidades alternativas, os recursos de hardware dedicados podem ser usados para realizar tais cálculos. Em vários casos, a lógica dos adicionadores para os cálculos de estado de M e D pode ser implantada para calcular a soma final, em que o adicionador de estado de D pode ser eficazmente implantado visto que não está sendo usado de outro modo no processamento que leva aos valores de soma.[0345] The results of such calculations can then be compared against each other in order to determine, in a more precise manner, how the genetic sequence of a subject differs, for example, in a base-by-base comparison, from that of one or more reference genomes. For the final sum calculation, the adders already employed to calculate the M, I and/or D states of the individual cells can be redeployed in order to compute the final sum value, such as by including a multiplexing on a selection of the redeployed adders, thus adding an additional last row, for example, with respect to calculation time, to the matrix in order to calculate this final sum, where, if the read length is 100 bases represents about a 1% overhead. In alternative embodiments, dedicated hardware resources can be used to perform such calculations. In many cases, the logic of the adders for the M and D state calculations can be deployed to calculate the final sum, where the D state adder can be effectively deployed since it is not otherwise being used in the processing leading to the sum values.

[0346] Em certos casos, esses cálculos e processos relevantes podem ser configurados de modo a corresponder à saída de uma dada plataforma de sequenciamento, tal como incluindo um conjunto de sequenciadores, que, como um coletivo, podem ter capacidade para emitir (em média) um novo genoma humano em cobertura 30x a cada 28 minutos (embora resultem do conjunto de sequenciadores em grupos de cerca de 150 genomas a cada três dias). Em tal caso, quando as operações de presente mapeamento, alinhamento e chamada de variante são configuradas para ajustar-se dentro de uma plataforma de sequenciamento de tecnologias de processamento, uma porção dos 28 minutos (por exemplo, cerca de 10 minutos) que leva para o agrupamento de sequenciamento sequenciar um genoma, pode ser usada por um mapeador e/ou alinhador adequadamente configurado, conforme descrito no presente documento, de modo a tomar os resultados de arquivo de imagem/BCL/FASTQ do sequenciador e realizar as etapas de mapeamento e/ou alinhamento do genoma, por exemplo, processamento pós- sequenciador. Leva cerca de 18 minutos do período de tempo de sequenciamento para realizar a etapa de chamada de variante, dos quais a operação de HMM é o componente computacional principal, tal como antes de o sequenciador nucleotídeo sequenciar o genoma seguinte durante os 28 minutos seguintes. Consequentemente, em tais casos, 18 minutos podem ser orçados para computar os 20 trilhões de células de HMM que precisa ser processados em conformidade com o processamento de um genoma, tal como em que cada uma das células de HMM a serem processadas inclui cerca de doze operações matemáticas (por exemplo, oito multiplicações e/ou operações de adição). Tal resultado permite a seguinte dinâmica computacional (20 trilhões de células de HMM) x (12 operações matemáticas por célula) / (18 minutos x 60 segundos/minuto), que é cerca de 222 bilhões de operações por segundo de resultado sustentado.[0346] In certain cases, these relevant calculations and processes may be configured to correspond to the output of a given sequencing platform, such as including an array of sequencers, which as a collective may be capable of outputting (on average) a new human genome at 30x coverage every 28 minutes (although resulting from the array of sequencers in clusters of about 150 genomes every three days). In such a case, when the present mapping, alignment, and variant calling operations are configured to fit within a sequencing platform of throughput technologies, a portion of the 28 minutes (e.g., about 10 minutes) that it takes for the sequencing array to sequence a genome may be used by a suitably configured mapper and/or aligner, as described herein, to take the image file/BCL/FASTQ output from the sequencer and perform genome mapping and/or alignment steps, e.g., post-sequencer processing. It takes about 18 minutes of sequencing time to perform the variant calling step, of which the HMM operation is the main computational component, as before the nucleotide sequencer sequences the next genome for the next 28 minutes. Consequently, in such cases, 18 minutes can be budgeted to compute the 20 trillion HMM cells that need to be processed in order to process a genome, as each of the HMM cells to be processed includes about twelve mathematical operations (e.g., eight multiplications and/or addition operations). Such a result allows for the following computational dynamics (20 trillion HMM cells) x (12 mathematical operations per cell) / (18 minutes x 60 seconds/minute), which is about 222 billion operations per second of sustained output.

[0347] A Figura 10 apresenta os blocos lógicos 17 do mecanismo de processamento da Figura 9, incluindo circuitos de atualização de estado de M, I e D exemplificativos que apresentam uma simplificação do circuito fornecido na Figura 9, O sistema pode ser configurado de modo a não ser limitado em memória, assim uma única instância de mecanismo de HMM 13 (por exemplo, que computa todas as células únicas na matriz de HMM 30 a uma taxa de uma célula por ciclo de relógio, em média, mais sobrecargas) pode ser replicada múltiplas vezes (pelo menos 65 a 70 vezes para tornar o resultado eficaz, conforme descrito acima). No entanto, para minimizar o tamanho do hardware, por exemplo, o tamanho do chip 2 e/ou seu uso de recurso associado, e/ou em um outro esforço para incluir muitas instâncias de mecanismo de HMM 13 no chip 2 conforme desejável e/ou possível, simplificações podem ser realizadas em relação aos blocos lógicos 15a'-c' da instância de processamento 13 para computar uma ou mais das probabilidades de transição a serem calculadas.[0347] Figure 10 shows the logic blocks 17 of the processing engine of Figure 9, including exemplary M, I, and D state update circuits that present a simplification of the circuit provided in Figure 9. The system may be configured so as not to be memory constrained, so that a single instance of HMM engine 13 (e.g., which computes all unique cells in HMM array 30 at a rate of one cell per clock cycle on average, plus overheads) may be replicated multiple times (at least 65 to 70 times to make the result effective as described above). However, to minimize hardware size, e.g., the size of chip 2 and/or its associated resource usage, and/or in a further effort to include as many instances of HMM engine 13 on chip 2 as is desirable and/or possible, simplifications may be made with respect to logic blocks 15a'-c' of processing instance 13 for computing one or more of the transition probabilities to be calculated.

[0348] Em particular, pode-se assumir que a penalidade de abertura de lacuna (GOP) e penalidade de continuação de lacuna (GCP), conforme descrito acima, tal como para inserções e deleções, são as mesmas e são conhecidas antes da configuração de chip. Essa simplificação implica que as probabilidades de transição de I para M e D para M são idênticas. Em tal caso, um ou mais dos multiplicadores, por exemplo, apresentados na Figura 9, podem ser eliminados, tal como por pré- adição de estados de I e D antes de multiplicar por uma probabilidade de transição de Indel para M comum. Por exemplo, em vários casos, se os cálculos de estado de I e D forem assumidos como sendo iguais, então, os cálculos de estado por célula podem ser simplificados conforme apresentado na Figura 10. Particularmente, se os valores de estado de I e D forem iguais, então, o estado de I e o estado de D podem ser adicionados e, então, essa soma pode ser multiplicada por um único valor, economizando, assim, uma multiplicação. Isso pode ser realizado devido ao fato de que, conforme visto em relação à Figura 10, as penalidades de continuação e/ou fechamento de lacuna para os estados de I e D são iguais. Entretanto, conforme indicado acima, o sistema pode ser configurado para calcular diferentes valores para ambas as probabilidades de estado de transição de I e D e, em tal caso, essa simplificação poderia não ser empregada.[0348] In particular, it may be assumed that the gap opening penalty (GOP) and gap continuation penalty (GCP), as described above, such as for insertions and deletions, are the same and are known prior to chip configuration. This simplification implies that the I-to-M and D-to-M transition probabilities are identical. In such a case, one or more of the multipliers, e.g., shown in Figure 9, may be eliminated, such as by pre-adding the I and D states before multiplying by a common Indel-to-M transition probability. For example, in many cases, if the I and D state calculations are assumed to be equal, then the per-cell state calculations may be simplified as shown in Figure 10. In particular, if the I and D state values are equal, then the I state and the D state may be added, and then this sum may be multiplied by a single value, thus saving one multiplication. This can be accomplished because, as seen in Figure 10, the continuation and/or gap closure penalties for the I and D states are equal. However, as indicated above, the system may be configured to compute different values for both the I and D transition state probabilities, and in such a case this simplification could not be employed.

[0349] Adicionalmente, em outra simplificação, em vez de dedicar chip ou outros recursos de computação configurados especificamente para realizar a operação de soma final na parte inferior da matriz de HMM, o presente acelerador de HMM 8 pode ser configurado de modo a anexar eficazmente uma ou mais fileiras adicionais à matriz de HMM 30, em relação ao tempo computacional, por exemplo, sobrecarga, que leva para realizar o cálculo e pode também ser configurado para "emprestar" um ou mais adicionadores da lógica de computação de estado de M 15a e de estado D 15c, tal como por multiplexação nos valores de soma final aos adicionadores existentes conforme necessário, de modo a realizar o cálculo de soma final real. Em tal caso, a lógica final, incluindo os blocos de lógica de M 15a, lógica de I 15b e lógica de D 15c, em que os blocos juntos formam parte da instância de MID de HMM 17, pode incluir 7 multiplicadores e 4 adicionadores juntamente com as várias multiplexações envolvidas.[0349] Additionally, in another simplification, rather than dedicating chip or other computing resources specifically configured to perform the final sum operation at the bottom of the HMM array, the present HMM accelerator 8 may be configured to effectively append one or more additional rows to the HMM array 30, with respect to the computational time, e.g., overhead, that it takes to perform the calculation, and may also be configured to "borrow" one or more adders from the M state 15a and D state 15c computation logic, such as by multiplexing the final sum values to the existing adders as needed, in order to perform the actual final sum calculation. In such a case, the final logic, including the blocks of M logic 15a, I logic 15b, and D logic 15c, wherein the blocks together form part of the HMM MID instance 17, may include 7 multipliers and 4 adders along with the various multiplexes involved.

[0350] Consequentemente, a Figura 10 apresenta os circuitos de atualização de estado de M, I e D 15a', 15b’ e 15c', incluindo os efeitos de simplificar suposições relacionadas às probabilidades de transição, assim o efeito de compartilhar vários recursos de M, I e/ou D, por exemplo, recursos de adicionador, para as operações de soma final. Um bloco de atraso pode ser também adicionado ao caminho de estado de M no bloco de computação de estado de M, conforme mostrado na Figura 10. Esse atraso pode ser adicionado para compensar os atrasos nas implantações de hardware reais das operações de multiplicação e adição e/ou para simplificar a lógica de controle, por exemplo, 15.[0350] Accordingly, Figure 10 presents the M, I, and D state update circuits 15a', 15b', and 15c', including the effects of simplifying assumptions related to transition probabilities, as well as the effect of sharing multiple M, I, and/or D resources, e.g., adder resources, for the final addition operations. A delay block may also be added to the M state path in the M state computation block, as shown in Figure 10. This delay may be added to compensate for delays in the actual hardware implementations of the multiplication and addition operations and/or to simplify the control logic, e.g., 15.

[0351] Conforme mostrado nas Figuras 9 e 10, esses respectivos multiplicadores e/ou adicionadores podem ser multiplicadores e adicionadores de ponto oscilante. Entretanto, em diversos casos, conforme pode ser observado em relação à Figura 11, uma configuração de domínio logarítmico pode ser implantada em que, em tal configuração, todas as multiplicações tornam-se adições. A Figura 11 apresenta qual cálculo de domínio logarítmico pareceria se todos os multiplicadores se tornassem adicionadores, por exemplo, 15a", 15b” e 15c", tal como ocorre ao empregar uma configuração computacional de domínio logarítmico. Particularmente, todas as lógicas de multiplicador tornam-se um adicionador, mas o próprio adicionador torna- se ou inclui de outro modo uma função em que a função, tal como: f(a,b) = max(a,b) - log2(1+2A(-[a-b]), tal como em que a porção logarítmica da equação pode ser mantida dentro de uma LUT cuja profundidade e tamanho físico são determinado pela precisão exigida.[0351] As shown in Figures 9 and 10, these respective multipliers and/or adders may be oscillating point multipliers and adders. However, in many cases, as can be seen with respect to Figure 11, a logarithmic domain configuration may be implemented in which, in such a configuration, all multiplications become additions. Figure 11 shows what a logarithmic-domain computation would look like if all the multipliers became adders, e.g., 15a", 15b", and 15c", as occurs when employing a logarithmic-domain computational setup. In particular, all the multiplier logic becomes an adder, but the adder itself becomes or otherwise includes a function such as: f(a,b) = max(a,b) - log2(1+2A(-[a-b]), such that the logarithmic portion of the equation can be held within a LUT whose depth and physical size are determined by the required accuracy.

[0352] Dados comprimentos de sequência de leitura e haplótipo típicos assim como os valores tipicamente visto para pontuação de qualidade de leitura (Phred) e para as probabilidades de transição relacionadas, as exigências de faixa dinâmica sobre os valores de estado de HMM internos podem ser vem graves. Por exemplo, ao implantar o módulo de HMM em software, vários trabalhos de HMM 20 podem resultar em interrupções, tal como quando implantado em valores de estado de ponto oscilante de precisão única (32 bits). Isso implica uma faixa dinâmica que é maior que 80 potências de 10, exigindo, assim, que o software de chamada de variante aumente até valores de estado de ponto oscilante de precisão dupla (64 bits). Entretanto, a representação de ponto oscilante de precisão dupla de 64 bits completa, em vários casos, tem algumas implicações negativas, sal como, se compacta, hardware de alta velocidade deve ser implantado, ambas as exigências de segmentação de computação de armazenamento precisam ser aumentadas, ocupando maior espaço de chip e/ou temporização lenta. Em tais casos, uma representação de número de domínio linear de ponto fixo único pode ser implantada. No entanto, as demandas de faixa dinâmica sobre os valores de estado, nessa modalidade, tornam as larguras de bit envolvidas em certas circunstâncias menores que o desejável. Consequentemente, em tais casos, a representação de número de domínio logarítmico de ponto fixo único pode ser implantada, conforme descrito no presente documento.[0352] Given typical read and haplotype sequence lengths as well as the values typically seen for read quality score (Phred) and related transition probabilities, the dynamic range demands on the internal HMM state values can be quite severe. For example, when implementing the HMM module in software, multiple HMM jobs 20 may result in stalls, such as when implementing single-precision (32-bit) swing point state values. This implies a dynamic range that is greater than 80 powers of 10, thus requiring the variant calling software to scale up to double-precision (64-bit) swing point state values. However, the full 64-bit double-precision swing point representation in many cases has some negative implications, such as if compact, high-speed hardware is to be implemented, both compute and storage segmentation demands need to be increased, taking up more chip space and/or slow timing. In such cases, a single fixed-point linear domain number representation can be implemented. However, the dynamic range demands on the state values in this embodiment make the bit widths involved in certain circumstances smaller than desirable. Consequently, in such cases, the single fixed-point logarithmic domain number representation can be implemented as described herein.

[0353] Em tal esquema, conforme pode ser observado em relação à Figura 11, em vez de representar o valor de estado atual em memória e computações, a base logarítmica 2 do número pode ser representada. Isso pode ser ter diversas vantagens, incluindo empregar operações de multiplicação em espaço linear que se traduzem em operações de adição em espaço logarítmico; e/ou essa representação de domínio logarítmico de números suporta inerentemente uma faixa dinâmica mais ampla com apenas aumentos pequenos no número de bits de número inteiro. Esses cálculos de atualização de estado de M, I, D de domínio logarítmica são apresentados nas Figuras 11 e 12.[0353] In such a scheme, as can be seen with respect to Figure 11, instead of representing the current state value in memory and computations, the logarithmic base 2 of the number may be represented. This may have several advantages, including employing multiplication operations in linear space that translate to addition operations in logarithmic space; and/or such a logarithmic domain representation of numbers inherently supports a wider dynamic range with only small increases in the number of integer bits. Such logarithmic domain M, I, D state update computations are shown in Figures 11 and 12.

[0354] Conforme pode ser visto ao comparar a configuração de lógica 17 da Figura 11 com aquela da Figura 9, as operações de multiplicação somem no domínio logarítmico. Em vez disso, são substituídas por operações de adição, e as operações de adição são transformadas em uma função que pode ser expressam como uma operação máxima seguida por uma adição de fator de correção, por exemplo, por meio de uma LUT, em que o fator de correção é uma função da diferença entre os dois valores que são somados no domínio logarítmico. Tal fato de correção pode ser computado ou gerado a partir de uma tabela de pesquisa. Se uma computação de fator de correção ou uma implantação de tabela de pesquisa é mais eficaz para ser usada depende da precisão exigida (largura de bit) na diferença entre os valores de soma. Em casos particulares, portanto, o número de bits de domínio logarítmico para representação de estado pode estar na proximidade de 8 a 12 bits de número inteiro mais 6 a 24 bits fracionários, dependendo do nível de qualidade desejado para qualquer dada implantação. Isso implica em algo entre 14 e 36 bits totais para representação de valor de estado de domínio logarítmico. Ademais, foi determinado que há representações de ponto fixo de domínio logarítmico que podem fornecer qualidade aceitável e tamanho e velocidade de hardware aceitáveis.[0354] As can be seen by comparing the logic configuration 17 of Figure 11 with that of Figure 9, multiplication operations sum in the logarithmic domain. Instead, they are replaced by addition operations, and the addition operations are transformed into a function that can be expressed as a maximum operation followed by a correction factor addition, e.g., by means of a LUT, where the correction factor is a function of the difference between the two values that are summed in the logarithmic domain. Such a correction factor can be computed or generated from a lookup table. Whether a correction factor computation or a lookup table implementation is more efficient to use depends on the required precision (bit width) in the difference between the sum values. In particular cases, therefore, the number of logarithmic domain bits for state representation can be in the vicinity of 8 to 12 integer bits plus 6 to 24 fractional bits, depending on the level of quality desired for any given implementation. This implies somewhere between 14 and 36 total bits for logarithmic domain state value representation. Furthermore, it has been determined that there are logarithmic domain fixed-point representations that can provide acceptable quality and acceptable hardware size and speed.

[0355] Em vários casos, uma sequência de leitura é tipicamente processada para cada trabalho de HMM 20, que, conforme indicado, pode incluir uma comparação contra duas sequências de haplótipo. E como acima para a memória de haplótipo, uma estrutura de ping-pong pode ser também usada na memória de sequência de leitura 18 para permitir a várias funções implantadas por software a capacidade de gravar novas informações de trabalho de HMM 20b enquanto um trabalho atual 20a está ainda sendo processado pela instância de mecanismo de HMM 13. Logo, um requisito de armazenamento de sequência de leitura pode ser para uma única memória de duas portas de 1.024 x 32 (tal como uma porta para gravação, uma porta para leitura e/ou relógios separados para as portas de gravação e leitura).[0355] In various cases, a read sequence is typically processed for each HMM job 20, which, as indicated, may include a comparison against two haplotype sequences. And as above for the haplotype memory, a ping-pong structure may also be used in the read sequence memory 18 to allow various software-implemented functions the ability to write new HMM job information 20b while a current job 20a is still being processed by the HMM engine instance 13. Thus, a read sequence storage requirement may be for a single 1,024 x 32 dual-port memory (such as one port for writing, one port for reading, and/or separate clocks for the write and read ports).

[0356] Particularmente, conforme descrito acima, em vários casos, a arquitetura empregada pelo sistema 1 é configurada de modo a determinar se uma dada base em um genoma de amostra sequenciado corresponde àquela de uma base correspondente em um ou mais genomas de referência, uma matriz virtual 30 é formada, em que o genoma de referência é teoricamente ajustado através de um eixo geométrico horizontal, enquanto as leituras sequenciadas, que representam o genoma de amostra, são teoricamente ajustadas de forma decrescente abaixo do eixo geométrico vertical. Consequentemente, para realizar um cálculo de HMM, o mecanismo de processamento de HMM 13, conforme descrito no presente documento, é configurado para cruzar essa matriz virtual de HMM 30. Tal processamento pode ser representado como na Figura 7, conforme uma faixa 35 se move diagonalmente para baixo e através do arranjo virtual que realiza os vários cálculos de HMM para cada célula do arranjo virtual, conforme visto na Figura 8.[0356] Particularly, as described above, in various instances, the architecture employed by system 1 is configured such that to determine whether a given base in a sequenced sample genome matches that of a corresponding base in one or more reference genomes, a virtual array 30 is formed in which the reference genome is theoretically arrayed across a horizontal axis while the sequenced reads representing the sample genome are theoretically arrayed in a decreasing order down the vertical axis. Accordingly, to perform an HMM calculation, the HMM processing engine 13 as described herein is configured to traverse this virtual HMM array 30. Such processing may be depicted as in Figure 7 as a track 35 moves diagonally down and across the virtual array performing the various HMM calculations for each cell of the virtual array as seen in Figure 8.

[0357] Mais particularmente, essa transversal teórica envolve processar um primeiro agrupamento de fileiras de células 35a da matriz 30 em sua totalidade, tal como para todas as bases de haplótipo e leitura dentro do agrupamento, antes de prosseguir para o agrupamento seguinte de fileiras 35b (por exemplo, o grupo seguinte de bases de leitura). Em tal caso, os valores de estado de M, I e D para o primeiro agrupamento são armazenados na borda inferior desse agrupamento inicial de fileiras de modo que esses valores de estado de M, I e D possam ser, então, usados para alimentar a fileira superior do agrupamento seguinte (faixa) para baixo na matriz 30. Em vários casos, o sistema 1 pode ser configurado para permitir até 1.008 haplótipos e/ou leituras de comprimento no acelerador de HMM 8 e, visto que a representação numérica emprega W bits para cada estado, isso implica uma memória de 1.008 palavras x W bits para armazenamento de estado de M, I e D.[0357] More particularly, this theoretical traversal involves processing a first cluster of cell rows 35a of array 30 in its entirety, such as for all haplotype and read bases within the cluster, before proceeding to the next cluster of rows 35b (e.g., the next group of read bases). In such a case, the M, I, and D state values for the first cluster are stored at the lower edge of this initial cluster of rows so that these M, I, and D state values can then be used to feed the top row of the next cluster (range) down in array 30. In various cases, system 1 may be configured to allow up to 1,008 haplotypes and/or reads in length in HMM accelerator 8, and since the numerical representation employs W bits for each state, this implies a memory of 1,008 words x W bits for M, I, and D state storage.

[0358] Consequentemente, conforme indicado, tal memória poderia ser uma memória de porta única ou porta dupla. Adicionalmente, uma memória de bloco de rascunho de nível de agrupamento, por exemplo, para armazenar os resultados do limite de faixa, pode ser também fornecida. Por exemplo, em conformidade com a revelação acima, as memórias discutidas já são configuradas para uma base de instância por mecanismo 13. Em implantações de HMM particulares, múltiplas instâncias de mecanismo 13a-(n+1) podem ser agrupadas em um agrupamento 11 que é servido por uma única conexão, por exemplo, barramento de PCIe 5, à interface de PCIe 4 e DMA 3 por meio de CentCom 9. Múltiplos agrupamentos 11a- (n+1) podem ser instanciados de modo a utilizar mais eficazmente a largura de banda de PCIe com o uso da funcionalidade de CentCom 9 existente.[0358] Accordingly, as indicated, such memory could be a single-port or dual-port memory. Additionally, a cluster-level scratchpad memory, e.g., for storing range limit results, may also be provided. For example, in accordance with the above disclosure, the memories discussed are already configured on a per-engine 13 instance basis. In particular HMM implementations, multiple engine instances 13a-(n+1) may be grouped into a cluster 11 that is served by a single connection, e.g., PCIe bus 5, to PCIe interface 4 and DMA 3 via CentCom 9. Multiple clusters 11a-(n+1) may be instantiated so as to more effectively utilize PCIe bandwidth using existing CentCom 9 functionality.

[0359] Logo, em uma configuração típica, algo entre 16 e 64 mecanismos 13m são instanciados dentro de um agrupamento 11n, e um a quatro agrupamentos podem ser instanciados em uma implantação de FPGA/ASIC típica do HMM 8 (por exemplo, dependendo de se é uma imagem FPGA de HMM dedicada ou se o HMM tem que compartilhar estado real de FPGA com o sequenciador/mapeador/alinhador e/ou outros módulos, conforme revelado presente documento). Em casos particulares, pode haver uma quantidade pequena de memória usada no nível de agrupamento 11 no hardware de HMM. Essa memória pode ser usada como um Primeira a entrar, Primeiro a Sair ("FIFO") elástico para capturar dados de saída das instâncias de mecanismo de HMM 13 no agrupamento e passar o mesmo no CentCom 9 para transmissão adicional de volta para o software da CPU 1000 por meio do DMA 3 e PCIe 4. Em teoria, esse FIFO poderia ser bem pequeno (na ordem de duas palavras de 32 bits), conforme os dados tipicamente são passados no CentCom 9 quase imediatamente após chegar no FIFO. Entretanto, para absorver rupturas potenciais no caminho de dados de saída, o tamanho desse FIFO pode ser parametrizável. Em casos particulares, o FIFO pode ser usado com uma profundidade de 512 palavras. Assim, os requisitos de armazenamento de nível de agrupamento podem ser uma única memória de duas portas de 512 x 32 (portas de leitura e gravação separadas, mesmo domínio de relógio).[0359] Thus, in a typical configuration, somewhere between 16 and 64 13m engines are instantiated within a cluster 11n, and one to four clusters may be instantiated in a typical HMM FPGA/ASIC implementation 8 (e.g., depending on whether it is a dedicated HMM FPGA image or whether the HMM has to share FPGA real state with the sequencer/mapper/aligner and/or other modules, as disclosed herein). In particular cases, there may be a small amount of memory used at the cluster level 11 in the HMM hardware. This memory can be used as an elastic First In First Out ("FIFO") to capture output data from the HMM engine instances 13 in the cluster and pass it to CentCom 9 for further transmission back to the CPU 1000 software via DMA 3 and PCIe 4. In theory, this FIFO could be quite small (on the order of two 32-bit words), as data is typically passed to CentCom 9 almost immediately after arriving at the FIFO. However, to absorb potential disruptions in the output data path, the size of this FIFO can be parameterizable. In particular cases, the FIFO can be used with a depth of 512 words. Thus, the cluster-level storage requirements could be a single 512 x 32 dual-port memory (separate read and write ports, same clock domain).

[0360] A Figura 12 apresenta várias transições de estado de HMM 17b que representam a relação entre Penalidades de Abertura de Lacuna (GOP), Penalidades de Fechamento de Lacuna (GCP) e probabilidades de transição envolvidas na determinação de se e quão bem uma dada sequência de leitura corresponde a uma sequência de haplótipo particular. Na realização de tal análise, o mecanismo de HMM 13 inclui pelo menos três blocos lógicos 17b, tal como um bloco lógico para determinar um estado de correspondência 15a, um bloco lógico para determinar um estágio de inserção 15b e um bloco lógico para determinar um estado de deleção 15c. Essa lógica de cálculo de estado de M, I e D 17, quando configurada adequadamente, funciona eficazmente para evitar gargalos de alta largura de banda, tal como do fluxo computacional de HMM. Entretanto, uma vez que a arquitetura de computação de núcleo de M, I, D seja determinada, outras intensificações de sistema podem ser também configuradas e implantadas de modo a evitar o desenvolvimento de outros gargalos dentro do sistema.[0360] Figure 12 presents various HMM state transitions 17b that represent the relationship between Gap Opening Penalties (GOP), Gap Closing Penalties (GCP), and transition probabilities involved in determining whether and how well a given read sequence matches a particular haplotype sequence. In performing such an analysis, the HMM engine 13 includes at least three logical blocks 17b, such as a logical block for determining a matching state 15a, a logical block for determining an insertion stage 15b, and a logical block for determining a deletion state 15c. This M, I, and D state calculation logic 17, when properly configured, functions effectively to avoid high-bandwidth bottlenecks, such as from the HMM computational throughput. However, once the core computing architecture of M, I, D is determined, other system enhancements can also be configured and deployed in order to avoid the development of other bottlenecks within the system.

[0361] Particularmente, o sistema 1 pode ser configurado de modo a maximizar o processo de alimentar eficazmente informações do núcleo de computação 1000 para o módulo de chamador de variante 2 e novamente de volta, de modo a não produzir outros gargalos que poderiam limitar o rendimento geral. Tal bloco que alimenta a lógica de computação de estado de M, I, D de núcleo de HMM 17 é o bloco de cálculo de prioris e probabilidades de transição. Por exemplo, conforme pode ser observado em relação à Figura 9, cada ciclo de bloco emprega a apresentação de sete probabilidades de transição e um Priori na entrada para o bloco de computação de estado de M, I, D 15a. Entretanto, após simplificações que resultam na arquitetura da Figura 10, apenas quatro probabilidades de transição exclusivas e um Priori são empregados para cada ciclo de relógio na entrada do bloco de computação de estado de M, I, D. Consequentemente, em vários casos, esses cálculos podem ser simplificados e os valores resultantes gerados. Assim, aumentado o rendimento, eficácia e reduzindo a possibilidade de um gargalo se formar nesse estágio do processo.[0361] In particular, system 1 may be configured to maximize the process of efficiently feeding information from computation core 1000 to variant caller module 2 and back again, so as not to produce other bottlenecks that could limit overall throughput. Such a block that feeds the M, I, D state computation logic of HMM core 17 is the transition probabilities and priors computation block. For example, as can be seen with respect to Figure 9, each block cycle employs the presentation of seven transition probabilities and one Priori at the input to the M, I, D state computation block 15a. However, after simplifications that result in the architecture of Figure 10, only four unique transition probabilities and one Priori are employed for each clock cycle at the input to the M, I, D state computation block. Accordingly, in many cases, these computations can be simplified and the resulting values generated. Thus, increasing yield, efficiency and reducing the possibility of a bottleneck forming at this stage of the process.

[0362] Adicionalmente, conforme descrito acima, os Prioris são valores gerados por meio da qualidade de leitura, por exemplo, pontuação Phred, da base particular que é investigada e se, ou não, essa base corresponde à base de haplótipo hipotética para a célula atual que é avaliada na matriz virtual de HMM 30. A relação pode ser descrita por meio das equações abaixo: Em primeiro lugar, o Phred de leitura em questão pode ser expresso como uma probabilidade = 10A(-(Phred de leitura/10)). Então, o Priori pode ser computado com base em se a base de leitura corresponde à base de haplótipo hipotética: Se a base de leitura e a base de haplótipo hipotética corresponderem: Priori = 1 - Phred de leitura expressa como uma probabilidade. De outro modo: Priori = (Phred de leitura expresso como probabilidade)/3. A operação de divisão por três nessa última equação reflete o fato de que há apenas quatro bases possíveis (A, C, G, T). Logo, se a base de leitura e haplótipo não corresponderem, então, a mesma precisa ser uma das três bases possíveis remanescentes que correspondem, e cada uma das três possibilidades é modelada como sendo igualmente possível.[0362] Additionally, as described above, the Priors are values generated by the read quality, e.g., Phred score, of the particular base being investigated and whether or not that base matches the hypothetical haplotype base for the current cell that is evaluated in the virtual HMM matrix 30. The relationship can be described by the equations below: First, the Phred of the read in question can be expressed as a probability = 10A(-(Phred of read/10)). Then, the Priori can be computed based on whether the read base matches the hypothetical haplotype base: If the read base and the hypothetical haplotype base match: Priori = 1 - Phred of read expressed as a probability. Otherwise: Priori = (Phred of read expressed as probability)/3. The division by three operation in this last equation reflects the fact that there are only four possible bases (A, C, G, T). Therefore, if the read base and haplotype do not match, then it must be one of the three remaining possible bases that do match, and each of the three possibilities is modeled as being equally possible.

[0363] As pontuações Phred por base de leitura são entregues ao acelerador de hardware de HMM 8 como valores de 6 bits. As equações para derivar os Prioris, então, têm 64 resultados possíveis para o caso de "correspondência" e 64 resultados possíveis adicionais para o caso de "sem correspondência". Isso pode ser eficazmente implantado no hardware como uma tabela de pesquisa de 128 palavras, em que o endereço na tabela de pesquisa é uma quantidade de 7 bits formada concatenando-se o valor de Phred com um único bit que indica se, ou não, a base de leitura corresponde à base de haplótipo hipotética.[0363] The Phred scores per read base are delivered to the HMM 8 hardware accelerator as 6-bit values. The equations for deriving the Priors then have 64 possible outcomes for the "match" case, and an additional 64 possible outcomes for the "no match" case. This can be effectively implemented in hardware as a 128-word lookup table, where the address in the lookup table is a 7-bit quantity formed by concatenating the Phred value with a single bit indicating whether or not the read base matches the hypothesized haplotype base.

[0364] Ademais, em relação a determinar as probabilidades de correspondência para inserção e/ou correspondência para deleção, em várias implantações da arquitetura para o acelerador de hardware de HMM 8, penalidades de abertura de lacuna (GOP) separadas podem ser especificadas para a transição de estado de Correspondência para inserção e na transição de estado de Correspondência para Deleção, conforme indicado acima. Isso é igual aos valores de M2I e M2D no diagrama de transição de estado da Figura 12 que é diferente. Conforme os valores de GOP são entregues para o acelerador de hardware de HMM 8 como valores semelhantes a Phred de 6 bits, as probabilidades de transição de abertura de lacuna podem ser computadas em conformidade com as seguintes equações: probabilidade de transição M2I = 10A(-(GOP de leitura(I)/10)) e probabilidade de transição M2D = 10A(-(GOP de leitura(D)/10)). Similarmente à derivação de Prioris em hardware, uma tabela de pesquisa de 64 palavras simples pode ser usada para derivar os valores de M2I e M2D. Se GOP(I) e GOP(D) forem inseridos no hardware de HMM 8 como valores potencialmente diferentes, então, duas tais tabelas de pesquisa (ou uma tabela de pesquisa compartilhada por recurso, potencialmente cronometrada em duas vezes a frequência do resto do circuito) podem ser utilizadas.[0364] Further, with respect to determining the match-to-insert and/or match-to-delete probabilities, in various implementations of the architecture for the HMM hardware accelerator 8, separate gap opening (GOP) penalties may be specified for the Match-to-insert state transition and the Match-to-delete state transition, as indicated above. This is the same as the M2I and M2D values in the state transition diagram of Figure 12 which are different. As the GOP values are delivered to the HMM hardware accelerator 8 as 6-bit Phred-like values, the gap opening transition probabilities may be computed in accordance with the following equations: transition probability M2I = 10A(-(Read GOP(I)/10)) and transition probability M2D = 10A(-(Read GOP(D)/10)). Similar to the derivation of priors in hardware, a simple 64-word lookup table can be used to derive the values of M2I and M2D. If GOP(I) and GOP(D) are entered into the HMM 8 hardware as potentially different values, then two such lookup tables (or one shared lookup table per resource, potentially clocked at twice the frequency of the rest of the circuit) can be used.

[0365] Além disso, em relação a determinar as probabilidades de transição de correspondência para correspondência, em vários casos, a probabilidade de transição de correspondência para correspondência pode ser calculada como: probabilidade de transição M2M = 1 - (probabilidade de transição M2I + probabilidade de transição M2D). Se as probabilidades de transição M2I e M2D puderem ser configuradas para serem menores ou iguais a um valor de 1/2, então, em várias modalidades, a equação acima pode ser implantada em hardware de uma maneira a aumentar a eficácia e rendimento gerais, tal como refazendo-se a equação para ser: probabilidade de transição M2M = (0,5 - probabilidade de transição M2I )+ (0,05 - probabilidade de transição M2D). Essa reescrição da equação permite que M2M seja derivado com o uso de duas tabelas de pesquisa de 64 elementos seguidas por um adicionador, em que as tabelas de pesquisa armazenam os resultados.[0365] Further, with respect to determining the match-to-match transition probabilities, in various cases, the match-to-match transition probability may be calculated as: M2M transition probability = 1 - (M2I transition probability + M2D transition probability). If the M2I and M2D transition probabilities can be configured to be less than or equal to a value of 1/2, then in various embodiments, the above equation may be implemented in hardware in a manner that increases overall efficiency and throughput, such as by rewriting the equation to be: M2M transition probability = (0.5 - M2I transition probability) + (0.05 - M2D transition probability). This rewriting of the equation allows M2M to be derived using two 64-element lookup tables followed by an adder, where the lookup tables store the results.

[0366] Além disso, em relação a determinar as probabilidades de transição de Inserção para Inserção e/ou Deleção para Deleção, as probabilidades de transição I2I e D2D são funções dos valores de probabilidade de continuação de lacuna (GCP) inseridos no acelerador de hardware de HMM 8. Em vários casos, esses valores de GCP podem ser valores semelhantes a Phred de 6 bits dados de uma maneira base por leitura. Os valores de I2I e D2D podem ser, então, derivados conforme mostrado: probabilidade de transição I2I = 10A(-(GCP de leitura(I)/10)) e probabilidade de transição D2D = 10A(-(GCP de leitura(D)/10)). Similarmente a algumas das outras probabilidades de transição discutidas acima, os valores de I2I e D2D podem ser eficazmente implantados em hardware e podem incluir duas tabelas de pesquisa (ou uma tabela de pesquisa compartilhada por recurso), tal como tendo a mesma forma e conteúdo que as tabelas de pesquisa de Correspondência para Indel discutidas anteriormente. Ou seja, cada tabela de pesquisa pode ter 64 palavras.[0366] Further, with respect to determining the Insertion-to-Insertion and/or Deletion-to-Deletion transition probabilities, the I2I and D2D transition probabilities are functions of the gap continuation probability (GCP) values input to the HMM hardware accelerator 8. In various cases, these GCP values may be 6-bit Phred-like values given on a per-read basis. The I2I and D2D values may then be derived as shown: I2I transition probability = 10A(-(Read GCP(I)/10)) and D2D transition probability = 10A(-(Read GCP(D)/10)). Similar to some of the other transition probabilities discussed above, I2I and D2D values can be effectively implemented in hardware and can include two lookup tables (or one shared lookup table per resource), such as having the same form and content as the Indel Match lookup tables discussed earlier. That is, each lookup table can have 64 words.

[0367] Adicionalmente, em relação a determinar as probabilidades de Inserção e/ou Deleção para Correspondência, as probabilidades de transição I2M e D2M são funções dos valores de probabilidade de continuação de lacuna (GCP) e podem ser computados como: probabilidade de transição I2M = 1 - probabilidade de transição I2I e probabilidade de transição D2M = 1 - probabilidade de transição D2D, em que as probabilidades de transição I2I e D2D podem ser derivadas conforme discutido acima. Uma operação de subtração simples para implantar as equações acima pode ser mais dispendiosa em recursos de hardware do que simplesmente implantar outra tabela de pesquisa de 64 palavras e usar duas cópias da mesma para implantar as derivações de I2M e D2M. Em tais casos, cada tabela de pesquisa pode ter 64 palavras. Obviamente, em todas as modalidades relevantes, operações de subtração simples ou complexas podem ser formadas com o hardware adequadamente configurado.[0367] Additionally, with respect to determining the Insertion and/or Deletion probabilities for Matching, the I2M and D2M transition probabilities are functions of the gap continuation probability (GCP) values and can be computed as: I2M transition probability = 1 - I2I transition probability and D2M transition probability = 1 - D2D transition probability, where the I2I and D2D transition probabilities can be derived as discussed above. A simple subtraction operation to implement the above equations may be more expensive in hardware resources than simply implementing another 64-word lookup table and using two copies of it to implement the I2M and D2M derivations. In such cases, each lookup table may be 64 words long. Of course, in all relevant embodiments, simple or complex subtraction operations can be formed with appropriately configured hardware.

[0368] A Figura 13 fornece o conjunto de circuitos 17a para um cálculo simples para probabilidades de transição HMM e Prioris, conforme descrito acima, que suporta o diagrama de transição de estado geral da Figura 12. Conforme pode ser observado em relação à Figura 13, em vários casos, uma arquitetura de acelerador de hardware de HMM simples 17a é apresentada, em que o acelerador pode ser configurado para incluir valores de GOP separados para transições de Inserção e Deleção e/ou pode haver valores de GCP separados para transição de Inserção e Deleção. Em tal caso, o custo de gerar sete probabilidades de transição exclusivas e um Priori a cada ciclo de relógio pode ser configurado conforme apresentado abaixo: oito tabelas de pesquisa de 64 palavras, uma tabela de pesquisa de 128 palavras e um adicionador.[0368] Figure 13 provides circuitry 17a for a simple computation for HMM transition probabilities and Priors as described above that supports the general state transition diagram of Figure 12. As can be seen with respect to Figure 13, in various cases, a simple HMM hardware accelerator architecture 17a is presented, wherein the accelerator may be configured to include separate GOP values for Insertion and Deletion transitions and/or there may be separate GCP values for Insertion and Deletion transitions. In such a case, the cost of generating seven unique transition probabilities and a Priori each clock cycle may be configured as follows: eight 64-word lookup tables, one 128-word lookup table, and an adder.

[0369] Ademais, em vários casos, o hardware 2, conforme apresentado no presente documento, pode ser configurado de modo a se ajustar ao máximo de instâncias de mecanismo de HMM 13 possível no dado alvo de chip (tal como em um FPGA, sASIC ou ASIC). Em tal caso, o custo de implantar as probabilidades de transição e lógica de geração de prioris 17a pode ser substancialmente reduzido em relação aos custos conforme fornecidos pelas configurações abaixo. Em primeiro lugar, em vez de suportar uma versão mais geral das transições de estado, tal como apresentado na Figura 13, por exemplo, em que pode haver valores separados para GOP(I) e GOP(D), em vez disso, em vários casos, pode ser assumido que os valores de GOP para transições de inserção e deleção são os mesmos para uma dada base. Isso resulta em diversas simplificações para o hardware, conforme indicado acima.[0369] Furthermore, in various cases, the hardware 2 as disclosed herein may be configured to fit as many instances of HMM engine 13 as possible on the given target chip (such as in an FPGA, sASIC, or ASIC). In such a case, the cost of implementing the transition probabilities and prior generation logic 17a may be substantially reduced relative to the costs as provided by the configurations below. First, rather than supporting a more general version of state transitions as disclosed in Figure 13, for example, where there may be separate values for GOP(I) and GOP(D), it may instead, in various cases, be assumed that the GOP values for insertion and deletion transitions are the same for a given basis. This results in several simplifications for the hardware, as noted above.

[0370] Em tais casos, apenas uma tabela de pesquisa de 64 palavras pode ser empregada de modo a gerar um único valor de M2Indel, substituindo ambos os valores de probabilidade de transição M2I e M2D, enquanto duas tabelas são tipicamente empregadas no caso mais geral. De modo semelhante, apenas uma tabela de pesquisa de 64 palavras pode ser usada para gerar o valor de probabilidade de transição M2M, enquanto as duas tabelas e uma adição podem tipicamente ser empregadas no caso geral, visto que M2M pode ser agora calculado como l-2xM2Indel.[0370] In such cases, only one 64-word lookup table can be employed to generate a single M2Indel value, replacing both the M2I and M2D transition probability values, while two tables are typically employed in the more general case. Similarly, only one 64-word lookup table can be used to generate the M2M transition probability value, while both tables and one addition can typically be employed in the general case, since M2M can now be calculated as l-2xM2Indel.

[0371] Em segundo lugar, pode ser realizada a suposição de que o valor de GCP dependente de sequenciador tanto para inserção quanto para deleção são iguais e que esse valor não muda ao longo do curso de um trabalho de HMM 20. Isso significa que: uma única probabilidade de transição Indel2Indel pode ser calculada em vez de valores de I2I e D2D separados, com o uso de uma tabela de pesquisa de 64 palavras em vez de duas tabelas; e a probabilidade de transição Indel2Correspondência única pode ser calculada em vez de valores de I2M e D2M separados, com o uso de uma tabela de pesquisa de 64 palavras em vez de duas tabelas.[0371] Second, the assumption can be made that the sequencer-dependent GCP value for both insertion and deletion are equal and that this value does not change over the course of an HMM 20 job. This means that: a single Indel2Indel transition probability can be calculated instead of separate I2I and D2D values, using a 64-word lookup table instead of two tables; and a single Indel2Match transition probability can be calculated instead of separate I2M and D2M values, using a 64-word lookup table instead of two tables.

[0372] Adicionalmente, pode ser realizada outra suposição simplificante que assume que os valores de Inserção2Inserção e Deleção2Deleção (I2I e D2D) e Inserto2Correspondência e Deleção2Correspondência (I2M e D2M) não são idênticos entre transições de inserção e deleção, mas podem ser estáticos para p trabalho de HMM particular 20. Assim, as quatro tabelas de pesquisa associadas na arquitetura mais geral com probabilidades de transição I2I, D2D, I2M e D2M podem ser eliminadas completamente. Em vários desses casos, as probabilidades de Indel2Indel e Indel2Correspondência estáticas poderiam ser feitas entrar por meio de software ou por meio de um parâmetro de RTL (e assim poderiam ser programáveis por corrente de bits em um FPGA). Em certos casos, esses valores podem ser tornados programáveis por correste de bits e, em certos casos, um modo de treinamento pode ser implantado empregando uma sequência de treinamento de modo a refinar ainda mais a precisão de probabilidade de transição para uma dada rodada de sequenciador ou análise de genoma.[0372] Additionally, another simplifying assumption can be made that assumes that the Insert2Insert and Delete2Delete (I2I and D2D) and Insert2Match and Delete2Match (I2M and D2M) values are not identical between insert and delete transitions, but may be static for the particular HMM job 20. Thus, the four associated lookup tables in the more general architecture with I2I, D2D, I2M, and D2M transition probabilities can be eliminated altogether. In many such cases, the static Indel2Indel and Indel2Match probabilities could be entered via software or via an RTL parameter (and thus could be bitstream programmable in an FPGA). In certain cases, these values may be made bitwise programmable, and in certain cases, a training mode may be implemented employing a training sequence in order to further refine the transition probability accuracy for a given run of sequencing or genome analysis.

[0373] A Figura 14 apresenta como o novo diagrama de transição de estado 17b pode parecer ao implantar essas várias hipóteses simplificantes. Especificamente, a Figura 14 apresenta o diagrama de transição de estado de HMM simplificado que representa a relação entre GOP, GCP e probabilidades de transição com as simplificações apresentadas acima.[0373] Figure 14 presents what the new state transition diagram 17b might look like when deploying these various simplifying assumptions. Specifically, Figure 14 presents the simplified HMM state transition diagram that represents the relationship between GOP, GCP, and transition probabilities with the simplifications presented above.

[0374] De modo semelhante, a Figura 15 apresenta o conjunto de circuitos 17a,b para as probabilidades de transição de HMM e geração de priores, que suporta o diagrama de transição de estado simplificado da Figura 14. Conforme observado em relação à Figura 15, uma realização de circuito desse diagrama de transição de estado é fornecida. Assim, em vários casos, para o acelerador de hardware de HMM 8, o custo de gerar as probabilidades de transição e um Prior a cada ciclo de relógio reduz para: Duas tabelas de pesquisa de 64 palavras e uma tabela de pesquisa de 128 palavras.[0374] Similarly, Figure 15 presents the circuitry 17a,b for HMM transition probabilities and prior generation, which supports the simplified state transition diagram of Figure 14. As noted with respect to Figure 15, a circuit realization of this state transition diagram is provided. Thus, in various cases, for the HMM hardware accelerator 8, the cost of generating the transition probabilities and a Prior each clock cycle reduces to: Two 64-word lookup tables and one 128-word lookup table.

[0375] Conforme apresentado acima, a lógica de controle de mecanismo 15 é configurada para gerar a matriz virtual e/ou cruzar a matriz de modo a atingir a borda da faixa, por exemplo, por meio de mecanismos de estado de mecanismo de alto nível, em que os dados de resultado podem ser finalmente somados, por exemplo, por meio da lógica de controle de soma final 19, e armazenados, por exemplo, por meio de lógica de colocar/obter.[0375] As set forth above, engine control logic 15 is configured to generate the virtual array and/or traverse the array so as to reach the range edge, e.g., via high-level engine state mechanisms, wherein the result data may be finally summed, e.g., via final sum control logic 19, and stored, e.g., via put/get logic.

[0376] Consequentemente, conforme pode ser observado em relação à Figura 16, em várias modalidades, um método para produzir e/ou cruzar uma matriz de células de HMM 30 é fornecido. Especificamente, a Figura 16 apresenta um exemplo de como a lógica de controle de acelerador de HMM 15 cruza as células virtuais na matriz de HMM. Por exemplo, assumindo-se para propósitos exemplificativos uma latência de 5 ciclos de relógio para cada operação de multiplicação e adição, a latência de pior caso através dos cálculos de atualização de estado de M, I, D poderia ser os 20 ciclos de relógio que seriam levados para propagação através do cálculo de atualização de M. Há metade das operações nos cálculos de estado de I e D, implicando uma latência de 10 ciclos de relógio para essas operações.[0376] Accordingly, as can be seen with respect to Figure 16, in various embodiments, a method for producing and/or traversing an array of HMM cells 30 is provided. Specifically, Figure 16 presents an example of how the HMM accelerator control logic 15 traverses the virtual cells in the HMM array. For example, assuming for exemplary purposes a latency of 5 clock cycles for each multiplication and addition operation, the worst-case latency through the M, I, D state update calculations could be the 20 clock cycles that would be taken to propagate through the M update calculation. There are half as many operations in the I and D state calculations, implying a latency of 10 clock cycles for these operations.

[0377] Essas implicações de latência das operações de computação de M, I e D podem ser entendidas em relação à Figura 16, que apresenta vários exemplos das dependências de dados de célula a célula. Em tais casos, as informações de estado de M e D de uma dada célula alimentam as computações de estado de D da célula na matriz de HMM que está imediatamente à direita (por exemplo, que tem a mesma base de leitura que a dada célula, mas que tem a próxima base de haplótipo). De modo semelhante, as informações de estado de M e I para a dada célula alimentam as computações de estado de I da célula na matriz de HMM que está imediatamente abaixo (por exemplo, que tem a mesma base de leitura que a dada célula, mas que tem a próxima base de leitura). Assim, em casos particulares, os estados de M, I e D de uma dada célula alimentam as computações de estado de D e I de células na próxima diagonal da matriz de células de HMM.[0377] These latency implications of M, I, and D computation operations can be understood with respect to Figure 16, which presents several examples of cell-to-cell data dependencies. In such cases, the M and D state information for a given cell feeds the D state computations of the cell in the HMM matrix that is immediately to the right (e.g., that has the same read base as the given cell, but that has the next haplotype base). Similarly, the M and I state information for the given cell feeds the I state computations of the cell in the HMM matrix that is immediately below (e.g., that has the same read base as the given cell, but that has the next read base). Thus, in particular cases, the M, I, and D states of a given cell feed the D and I state computations of cells on the next diagonal of the HMM cell matrix.

[0378] De modo similar, os estados de M, I e D de uma dada célula alimentam a computação de estado de M da célula que está à direita e abaixo (por exemplo, que tem tanto a base de haplótipo seguinte quanto a base de leitura seguinte). Essa célula está realmente a duas diagonais de distância da célula que alimenta a mesma (enquanto os cálculos de estado de I e D baseiam-se em estados de uma célula que está a uma diagonal de distância). Essa qualidade dos cálculos de estado de I e D que se baseiam em célula a uma diagonal de distância, embora os cálculos de estado de M se baseiam em células a dias diagonais de distância tem um resultado benéfico para projeto de hardware.[0378] Similarly, the M, I, and D states of a given cell feed the M state computation of the cell that is to the right and below it (e.g., that has both the next haplotype base and the next read base). This cell is actually two diagonals away from the cell that feeds it (whereas the I and D state computations are based on states of a cell that is one diagonal away). This quality of the I and D state computations being based on cells one diagonal away even though the M state computations are based on cells two diagonals away has a beneficial result for hardware design.

[0379] Particularmente, dadas essas configurações, os cálculos de estado de I e D podem ser adaptados para levar metade do tempo (por exemplo, 10 ciclos) dos cálculos de estado de M (por exemplo, 20 ciclos). Logo, se os cálculos de estado de M forem iniciados 10 ciclos antes dos cálculos de estado de I e D para a mesma célula, então, as computações de estado de M, I e D para uma célula na matriz de HMM 30 serão todas concluídas ao mesmo tempo. Adicionalmente, se a matriz 30 for cruzada de uma forma diagonal, tal como tendo uma faixa 35 de cerca de 10 células cada dentro da mesma (por exemplo, que abrange dez bases de leitura), então: Os estados de M e D produzidos por uma dada célula nas coordenadas (hap, rd) (i, j) podem ser usados pelos cálculos de estado D de célula (i+1, j) assim que estiverem a caminho da segmentação de computação da célula em (i, j).[0379] In particular, given these configurations, the I and D state computations can be tailored to take half the time (e.g., 10 cycles) of the M state computations (e.g., 20 cycles). Thus, if the M state computations are initiated 10 cycles before the I and D state computations for the same cell, then the M, I, and D state computations for a cell in the HMM array 30 will all complete at the same time. Additionally, if the array 30 is traversed in a diagonal fashion, such as having a range 35 of about 10 cells each within it (e.g., spanning ten read bases), then: The M and D states produced by a given cell at coordinates (hap, rd) (i, j) can be used by the D state computations of cell (i+1, j) once they are on their way to the computation segment of the cell at (i, j).

[0380] Os estados de M e D produzidos por uma dada célula nas coordenadas (hap, rd) (i, j) podem ser usados pelos cálculos de estado I de célula (i, j+1) um ciclo de relógio depois que estiverem a caminho da segmentação de computação da célula em (i, j). De modo semelhante, os estados de M, I e D produzidos por uma dada célula nas coordenadas (hap, rd) (i, j) podem ser usados pelos cálculos de estado M de célula (i+1, j+1) um ciclo de relógio depois que estiverem a caminho da segmentação de computação da célula em (i, j). Considerados juntos, os pontos acima estabelecem que pouquíssimo armazenamento dedicado é necessário para os estados de M, I e D ao longo da diagonal do caminho de faixa que abrange o comprimento de faixa, por exemplo, de dez leituras. Em tal caso, apenas os registros necessários para atrasar os valores de estado de M, I e D de célula (i, j) M, I, e D um ciclo de relógio para uso em cálculos de M de célula (i+1, j+1) e cálculos de I de célula (i, j+1) por um ciclo de relógio). Além disso, há um ciclo um tanto virtuoso aqui conforme as computações de estado de M para uma dada célula são iniciadas 10 ciclos de relógio antes dos cálculos de estado de I e D para essa mesma célula, emitindo nativamente os novos estados de M, I e D para qualquer dada célula simultaneamente.[0380] The M and D states produced by a given cell at coordinates (hap, rd)(i, j) may be used by the I state computations of cell (i, j+1) one clock cycle after they are en route to the cell's computation segment at (i, j). Similarly, the M, I, and D states produced by a given cell at coordinates (hap, rd)(i, j) may be used by the M state computations of cell (i+1, j+1) one clock cycle after they are en route to the cell's computation segment at (i, j). Taken together, the above points establish that very little dedicated storage is required for the M, I, and D states along the diagonal of the stripe path that spans the stripe length of, say, ten reads. In such a case, only the registers needed to delay the M, I, and D state values of cell (i, j) M, I, and D by one clock cycle for use in M-cell (i+1, j+1) computations and I-cell (i, j+1) computations by one clock cycle). Furthermore, there is a somewhat virtuous cycle here as the M-state computations for a given cell are started 10 clock cycles before the I and D state computations for that same cell, natively emitting the new M, I, and D states for any given cell simultaneously.

[0381] Em vista do anterior e conforme pode ser observado em relação à Figura 16, a lógica de controle de acelerador de HMM 15 pode ser configurada para avaliar os dados dentro de cada uma das células da matriz virtual 30 de uma maneira que atravesse a matriz. Particularmente, em várias modalidades, as operações se inicial na célula (0,0), com os cálculos de estado de M iniciando 10 ciclos de relógio antes que os cálculos de estado de I e D se iniciem. A célula seguinte a atravessar deve ser a célula (1,0). Entretanto, há uma latência de dez ciclos após o início de cálculos de I e D antes que os resultados da célula (0,0) estejam disponíveis. O hardware, portanto, insere nove ciclos "mortos" na segmentação de computação. Os mesmos são mostrados como as células com índice de haplótipo menor que zero na Figura 16.[0381] In view of the foregoing and as can be seen with respect to Figure 16, the HMM accelerator control logic 15 may be configured to evaluate the data within each of the cells of the virtual matrix 30 in a manner that traverses the matrix. In particular, in various embodiments, operations begin at cell (0,0), with the M state calculations beginning 10 clock cycles before the I and D state calculations begin. The next cell to traverse should be cell (1,0). However, there is a latency of ten cycles after the start of I and D calculations before the results from cell (0,0) are available. The hardware therefore inserts nine "dead" cycles into the computation bucket. These are shown as the cells with haplotype index less than zero in Figure 16.

[0382] Após completar o ciclo morto que tem uma posição de célula eficaz na matriz de (-9,-9), os valores de estado deM, I eD para a célula (0,0) estão disponíveis. Os mesmos (por exemplo, as saídas de estado de M e D da célula (0,0)) podem ser usados agora diretamente para iniciar as computações de estado de D da célula (0,1). Um ciclo depois, os valores de estado de M, I e D da célula (0,0) podem ser usados para iniciar as computações de estado de I da célula (0,1) e as computações de estado de M da célula (1,1).[0382] After completing the dead cycle that has an effective cell position in the array of (-9,-9), the M, I, and D state values for cell (0,0) are available. They (e.g., the M and D state outputs of cell (0,0)) can now be used directly to initiate the D state computations of cell (0,1). One cycle later, the M, I, and D state values of cell (0,0) can be used to initiate the I state computations of cell (0,1) and the M state computations of cell (1,1).

[0383] A célula seguinte a ser atravessada pode ser a célula (2,0). Entretanto, há uma latência de dez ciclos após o início de cálculos de I e D antes que os resultados da célula (1,0) estejam disponíveis. O hardware, portanto, insere oito ciclos mortos na segmentação de computação. Os mesmos são mostrados como as células com índice de haplótipo menor que zero, como na Figura 16 ao longo da mesma diagonal que as células (1,0) e (0,1). Após completar o ciclo morto que tem uma posição de célula eficaz na matriz de (-8, -9), os valores de estado de M, I e D para a célula (1,0) estão disponíveis. Os mesmos (por exemplo, as saídas de estado de M e D da célula (1,0)) são usados agora diretamente para iniciar as computações de estado de D da célula (2,0).[0383] The next cell to be traversed may be cell (2,0). However, there is a latency of ten cycles after the start of I and D computations before the results of cell (1,0) are available. The hardware therefore inserts eight dead cycles into the computation segment. These are shown as the cells with haplotype index less than zero, as in Figure 16 along the same diagonal as cells (1,0) and (0,1). After completing the dead cycle that has an effective cell position in the matrix of (-8, -9), the M, I, and D state values for cell (1,0) are available. These (i.e., the M and D state outputs of cell (1,0)) are now used directly to start the D state computations of cell (2,0).

[0384] Um ciclo depois, os valores de estado de M, I e D da célula (1,0) podem ser usados para iniciar as computações de estado de I da célula (1,1) e as computações de estado de M da célula (2,1). Os valores de estado de M e D da célula (0,1) podem ser, então, usados ao mesmo tempo para iniciar os cálculos de estado de D da célula (1,1). Um ciclo depois, os valores de estado de M, I e D da célula (0,1) são usados para iniciar as computações de estado de I da célula (0,2) e as computações de estado de M da célula (1,2).[0384] One cycle later, the M, I, and D state values of cell (1,0) may be used to initiate the I state computations of cell (1,1) and the M state computations of cell (2,1). The M and D state values of cell (0,1) may then be used at the same time to initiate the D state computations of cell (1,1). One cycle later, the M, I, and D state values of cell (0,1) are used to initiate the I state computations of cell (0,2) and the M state computations of cell (1,2).

[0385] Agora, a célula seguinte a atravessar pode ser a célula (3,0). Entretanto, há uma latência de dez ciclos após o início de cálculos deI e D antes que os resultados da célula (2,0) estejam disponíveis. O hardware, portanto, insere sete ciclos mortos na segmentação de computação. Os mesmos são novamente mostrados como as células com índice de haplótipo menor que zero na Figura 16 ao longo da mesma diagonal que as células (2,0), (1,1) e (0,2). Após completar o ciclo morto que tem uma posição de célula eficaz na matriz de (-7,-9), os valores de estado de M, I e D para a célula (2,0) estão disponíveis. Os mesmos (por exemplo, as saídas de estado de M e D da célula (2,0)) são usados agora diretamente para iniciar as computações de estado de D da célula (3,0). E, assim, a computação para outras dez células na diagonal se inicia.[0385] Now the next cell to traverse may be cell (3,0). However, there is a latency of ten cycles after the start of I and D computations before the results of cell (2,0) are available. The hardware therefore inserts seven dead cycles into the computation segment. These are again shown as the cells with haplotype index less than zero in Figure 16 along the same diagonal as cells (2,0), (1,1) and (0,2). After completing the dead cycle that has an effective cell position in the matrix of (-7,-9), the M, I and D state values for cell (2,0) are available. These (i.e. the M and D state outputs of cell (2,0)) are now used directly to start the D state computations of cell (3,0). And so the computation for another ten cells on the diagonal begins.

[0386] Tal processamento pode continuar até o final da última diagonal completa na faixa 35a, que, nesse exemplo (que tem um com de leitura de 35 e comprimento de haplótipo de 14), ocorrerá após a diagonal que se inicia com a célula nas coordenadas (hap, rd) de (13,0) ser concluído. Após a célula (4,9) na Figura 16 ser atravessada, a célula seguinte a atravessar poderia ser a célula (13,1). Entretanto, há uma latência de dez ciclos após o início dos cálculos de I e D antes que os resultados da célula (12,1) estejam disponíveis.[0386] Such processing may continue until the end of the last complete diagonal in strip 35a, which in this example (which has a read com of 35 and haplotype length of 14) will occur after the diagonal starting with the cell at coordinates (hap, rd) of (13,0) is completed. After cell (4,9) in Figure 16 is traversed, the next cell to traverse could be cell (13,1). However, there is a latency of ten cycles after the start of the I and D calculations before the results from cell (12,1) are available.

[0387] O hardware pode ser configurado, portanto, para iniciar as operações associadas à primeira célula na faixa seguinte 35b, tal como nas coordenadas (0, 10). Após o processamento da célula (0, 10), então, a célula (13, 1) pode ser atravessada. A diagonal inteira de células que se inicia com a célula (13, 1) é, então, atravessada até a célula (5, 9) ser atingida. De modo semelhante, após a célula (5, 9) ser atravessada, a célula seguinte a atravessar poderia ser a célula (13,2). Entretanto, como anteriormente, pode haver uma latência de dez ciclos após o início de cálculos de I e D antes que os resultados da célula (12, 2) estejam disponíveis. Logo, o hardware pode ser configurado para iniciar as operações associadas à primeira célula na segunda diagonal da faixa seguinte 35b, tal como nas coordenadas (1, 10), seguido pela célula (0, 11).[0387] The hardware may therefore be configured to begin operations associated with the first cell in the next strip 35b, such as at coordinates (0, 10). After processing cell (0, 10), then cell (13, 1) may be traversed. The entire diagonal of cells starting with cell (13, 1) is then traversed until cell (5, 9) is reached. Similarly, after cell (5, 9) is traversed, the next cell to traverse could be cell (13,2). However, as before, there may be a latency of ten cycles after the start of I and D calculations before the results of cell (12, 2) are available. Therefore, the hardware may be configured to begin operations associated with the first cell in the second diagonal of the next strip 35b, such as at coordinates (1, 10), followed by cell (0, 11).

[0388] Após o processamento da célula (0, 11), a célula (13, 2) pode ser atravessada, em conformidade com os métodos revelados acima. A diagonal inteira 35 de células que se inicia com a célula (13, 2) é, então, atravessada até a célula (6, 9) ser atingida. Adicionalmente, após a célula (6, 9) ser atravessada, a célula seguinte a ser atravessada poderia ser a célula (13, 3). Entretanto, aqui, novamente, pode haver um período de latência de dez ciclos após o início dos cálculos de I e D antes que os resultados da célula (12, 3) estejam disponíveis. O hardware, portanto, pode ser configurado para iniciar as operações associadas à primeira célula na terceira diagonal da faixa seguinte 35 c, tal como nas coordenadas (2, 10), seguido pela célula (1, 11) e (0, 12), e similares.[0388] After processing cell (0, 11), cell (13, 2) may be traversed in accordance with the methods disclosed above. The entire diagonal 35 of cells beginning with cell (13, 2) is then traversed until cell (6, 9) is reached. Additionally, after cell (6, 9) is traversed, the next cell to be traversed could be cell (13, 3). However, here again, there may be a latency period of ten cycles after the start of the I and D calculations before the results of cell (12, 3) are available. The hardware may therefore be configured to begin operations associated with the first cell on the third diagonal of the next range 35c, such as at coordinates (2, 10), followed by cell (1, 11) and (0, 12), and the like.

[0389] Isso continua conforme indicado, em conformidade com o anterior, até a última célula na primeira faixa 35a (a célula nas coordenadas (hap, rd) (13, 9)) ser atravessada, em cujo ponto a lógica pode ser completamente dedicada a atravessar as diagonais na segunda faixa 35b, iniciando com a célula em (9, 10). O padrão representado acima repete-se por quantas faixas de 10 leituras forem necessárias, até a faixa inferior 35c (em que aquelas células nesse exemplo que estão associadas às bases de leitura têm um índice 30 ou maior) ser atingida.[0389] This continues as indicated, in accordance with the above, until the last cell in the first strip 35a (the cell at coordinates (hap, rd) (13, 9)) is traversed, at which point the logic can be completely devoted to traversing the diagonals in the second strip 35b, starting with the cell at (9, 10). The pattern depicted above repeats for as many strips of 10 reads as necessary, until the bottom strip 35c (where those cells in this example that are associated with read bases have an index of 30 or greater) is reached.

[0390] Na faixa inferior 35, mais células mortas podem ser inseridas, conforme mostrado na Figura 16 como células com índices de leitura maiores que 35 e com índices de haplótipo maiores que 13. Adicionalmente, na faixa final 35c, uma fileira adicional de células pode ser eficazmente adicionada. Essas células são indicadas na linha 35 na Figura 16 e referem-se a um ciclo de relógio dedicado em cada diagonal da faixa final em que as operações de soma final estão ocorrendo. Nesses ciclos, os estados de M e I da célula imediatamente acima são adicionados juntos, e o esse próprio resultado é somado com uma soma final em andamento (que é iniciada em zero na borda esquerda da matriz de HMM 30).[0390] In the bottom lane 35, more dead cells may be inserted, as shown in Figure 16 as cells with read indices greater than 35 and with haplotype indices greater than 13. Additionally, in the final lane 35c, an additional row of cells may be effectively added. These cells are indicated in row 35 in Figure 16 and refer to a dedicated clock cycle on each diagonal of the final lane in which the final sum operations are occurring. In these cycles, the M and I states of the cell immediately above are added together, and the result itself is summed with a running final sum (which is started at zero on the left edge of the HMM array 30).

[0391] Tomando-se a discussão acima como contexto e, em vista da Figura 16, é possível ver que, para esse exemplo de comprimento de leitura de 35 e comprimento de haplótipo de 14, há 102 ciclos mortos, 14 ciclos associados às operações de soma final, e 20 ciclos de latência de segmentação, para um total de 102+14+20 = 146 ciclos de sobrecarga. Pode ser visto também que, para qualquer trabalho de HMM 20 com um comprimento de leitura maior que 10, os ciclos mortos no canto esquerdo superior da Figura 16 são independentes de comprimento de leitura. Pode ser também visto que os ciclos mortos na parte inferior e na porção direita inferior da Figura 16 são dependentes do comprimento de leitura, com menos ciclos mortos para leituras que têm mod(comprimento de leitura, 10) = 9 e mais ciclos mortos para mod(comprimento de leitura, 10) = 0. Pode ser visto adicionalmente que os ciclos de sobrecarga tornam-se menores que uma porcentagem total de ciclos de avaliação de matriz de HMM 30 conforme os comprimentos de haplótipo aumentam (matriz maior, número parcialmente fixo de ciclos de sobrecarga) ou conforme os comprimentos de leitura aumentam (observação: a mesma refere-se à porcentagem de sobrecarga associada à fileira de soma final na matriz que é reduzida conforme comprimento de leitura -fileira- contagem— aumenta). Com o uso de tais dados de histograma de rodadas de genoma humano inteiro representativas, foi determinado que atravessar a matriz de HMM da maneira descrita acima resulta em menos de 10% de sobrecarga para todo o processamento de genoma.[0391] Taking the above discussion as context, and in view of Figure 16, it can be seen that for this example of read length 35 and haplotype length 14, there are 102 dead cycles, 14 cycles associated with final sum operations, and 20 cycles of segmentation latency, for a total of 102+14+20 = 146 cycles of overhead. It can also be seen that for any HMM 20 job with a read length greater than 10, the dead cycles in the upper left corner of Figure 16 are independent of read length. It can also be seen that the dead cycles in the bottom and lower right portions of Figure 16 are dependent on read length, with fewer dead cycles for reads that have mod(read length, 10) = 9 and more dead cycles for mod(read length, 10) = 0. It can further be seen that the overhead cycles become less than a total percentage of HMM matrix evaluation cycles 30 as haplotype lengths increase (larger matrix, partially fixed number of overhead cycles) or as read lengths increase (note: this refers to the overhead percentage associated with the final sum row in the matrix that decreases as read length—row—count—increases). Using such histogram data from representative whole-genome human run-throughs, it was determined that traversing the HMM matrix in the manner described above results in less than 10% overhead for the entire genome processing.

[0392] Outros métodos podem ser empregados para reduzir a quantidade de ciclos de sobrecarga, incluindo: Tendo-se lógica dedicada para as operações de soma final em vez de adicionadores de compartilhamento com a lógica de cálculo de estado M e D. Isso elimina uma fileira da matriz de HMM 30. Com o uso de ciclos mortos para iniciar as operações de matriz de HMM para o trabalho de HMM seguinte na fila.[0392] Other methods may be employed to reduce the amount of overhead cycles, including: Having dedicated logic for the final sum operations instead of sharing adders with the M and D state calculation logic. This eliminates a row of the HMM array 30. Using dead cycles to start the HMM array operations for the next HMM job in the queue.

[0393] Cada agrupamento de dez fileiras da matriz de HMM 30 constitui uma "faixa" 35 na função de acelerador de HMM. Nota-se que o comprimento da faixa pode ser aumentado ou diminuído de modo a atender as demandas de eficácia e/ou rendimento do sistema. Logo, o comprimento de faixa pode ser cerca de cinco fileiras a cerca de cinquenta fileiras ou mais, tal como cerca de dez fileiras a cerca de quarenta e cinco fileiras, por exemplo, cerca de quinze ou cerca de vinte fileiras a cerca de quarenta fileira ou cerca de trinta e cinco fileiras, incluindo cerca de vinte e cinco fileiras a cerca de trinta fileiras de células de comprimento.[0393] Each grouping of ten rows of the HMM array 30 constitutes a "strip" 35 in the HMM accelerator function. It will be noted that the length of the strip can be increased or decreased to meet the efficiency and/or throughput demands of the system. Thus, the strip length can be about five rows to about fifty rows or more, such as about ten rows to about forty-five rows, for example, about fifteen or about twenty rows to about forty rows, or about thirty-five rows, including about twenty-five rows to about thirty rows of cells in length.

[0394] Com as exceções indicadas na seção acima, relacionadas a ciclos de coleta que poderiam ser de outro modo ciclos mortos na borda direta da matriz da Figura 16, a matriz de HMM pode ser processada uma faixa por vez. Conforme pode ser observado em relação à Figura 16, os estados das células na fileira inferior de cada faixa 35a alimentam a lógica de computação de estado na fileira superior da faixa seguinte 35b. Consequentemente, pode haver uma necessidade de armazenar (colocar) e recuperar (obter) as informações de estado para essas células na fileira inferior, ou borda, de cada faixa.[0394] With the exceptions noted in the above section relating to collect cycles that might otherwise be dead cycles on the forward edge of the array of Figure 16, the HMM array may be processed one lane at a time. As can be seen with respect to Figure 16, the states of the cells in the bottom row of each lane 35a feed the state computation logic in the top row of the following lane 35b. Accordingly, there may be a need to store (put) and retrieve (get) the state information for these cells in the bottom row, or edge, of each lane.

[0395] A lógica para fazer isso pode incluir um ou mais dos seguintes: quando as computações de estado de M, I e D para uma célula na matriz de HMM 30 são concluídas para uma célula com mod(índice de leitura, 10) = 9, guardar o resultado para a memória de armazenamento de estado de M, I, D. Quando computações de estado de M e I (por exemplo, em que as computações de estado de D não exigem informações de células acima das mesmas na matriz) para uma célula na matriz de HMM 30 começam para uma célula com mod(índice de leitura, 10) = 0, recuperar as informações de estado de M, I e D anteriormente guardadas na memória de armazenamento de estado de M, I, D. Nota-se, nesses casos, que os valores de estado de M, I e D que alimentam os cálculos de estado de M e I da fileira 0 (a fileira superior) na matriz de HMM 30 são simplesmente um valor constante predeterminado e não precisam ser chamados novamente da memória, como é verdadeiro para os valores de estado de M e D que alimentam os cálculos de estado de D da coluna 0 (a coluna esquerda).[0395] The logic for doing so may include one or more of the following: when M, I, and D state computations for a cell in HMM array 30 are completed for a cell with mod(read index, 10) = 9, saving the result to M, I, D state storage memory. When M, I state computations (e.g., where D state computations do not require information from cells above them in the array) for a cell in HMM array 30 begin for a cell with mod(read index, 10) = 0, retrieving the M, I, and D state information previously stored in M, I, D state storage memory. It will be noted in these cases that the M, I, and D state values that feed the M, I state computations of row 0 (the top row) in HMM array 30 are simply a predetermined constant value and do not need to be recalled from memory, as is true for the M, I, and D state values that are stored in the M, I, D state storage memory. of M and D that feed the D state calculations from column 0 (the left column).

[0396] Conforme indicado acima, o acelerador de HMM pode ou não incluir um recurso de soma dedicado no acelerador de hardware de HMM de tal forma que exista simplesmente para o propósito das operações de soma final. Entretanto, em casos particulares, conforme descrito no presente documento, uma fileira adicional pode ser adicionada à parte inferior da matriz de HMM 30, e os ciclos de relógio associados a essa fileira extra podem ser usados para operações de soma finais. Por exemplo, a própria soma pode ser atingida emprestando-se (por exemplo, de acordo com a Figura 13) um adicionador da lógica de computação de estado de M à operação de M+I e, ainda, emprestando-se um adicionador da lógica de computação de estado de D para adicionar a soma de M+I recém-formada ao valor de acúmulo de soma final em andamento. Em tal caso, a lógica de controle para ativar a operação de soma final pode começar sempre que o índice de leitura que guia a operação de atravessamento de HMM for igual ao comprimento da sequência de leitura inserida para o trabalho. Essas operações podem ser vistas na linha 34 em direção à parte inferior da matriz de HMM de amostra 30 da Figura 16.[0396] As indicated above, the HMM accelerator may or may not include a dedicated summation resource in the HMM hardware accelerator such that it exists simply for the purpose of final summation operations. However, in particular cases, as described herein, an additional row may be added to the bottom of the HMM array 30, and the clock cycles associated with that extra row may be used for final summation operations. For example, the summation itself may be achieved by borrowing (e.g., in accordance with Figure 13) an adder from the M state computation logic for the M+I operation, and further borrowing an adder from the D state computation logic to add the newly formed M+I sum to the ongoing final sum accumulation value. In such a case, the control logic for activating the final summation operation may begin whenever the read index driving the HMM traversal operation equals the length of the read sequence input for the job. These operations can be seen in line 34 toward the bottom of the 30-sample HMM matrix of Figure 16.

[0397] Logo, conforme pode ser visto acima, em uma implantação, o chamador de variante pode fazer uso dos mecanismos de mapeador e/ou alinhador para determinar a probabilidade quanto a quando várias leituras originadas, tal como em relação a um dado local, por exemplo, local cromossômico. Em tais casos, o chamador de variante pode ser configurado para detectar a sequência subjacente nesse local, tal como independentemente de outras regiões não imediatamente adjacentes ao mesmo. Isso é particularmente útil e funciona bem quando a região de interesse não se assemelha a qualquer outra região do genoma pela amplitude de uma única leitura (ou um par de leituras para sequenciamento de extremidade pareada). Entretanto, uma fração significativa do genoma humano não atende esse critério, que pode tornar a chamada de variante, por exemplo, o processo de reconstruir um genoma do sujeito a partir das leituras que um NGS produz, desafiadora.[0397] Thus, as can be seen above, in one implementation, the variant caller may make use of the mapper and/or aligner mechanisms to determine the likelihood as to when multiple reads originated, such as relative to a given location, e.g., chromosomal location. In such cases, the variant caller may be configured to detect the underlying sequence at that location, such as independently of other regions not immediately adjacent to it. This is particularly useful and works well when the region of interest does not resemble any other region of the genome by the breadth of a single read (or a pair of reads for paired-end sequencing). However, a significant fraction of the human genome does not meet this criterion, which can make variant calling, e.g., the process of reconstructing a subject's genome from the reads that an NGS produces, challenging.

[0398] Particularmente, embora o sequenciamento de DNA tenha melhorado drasticamente, a chamada de variante permanece um problema difícil devido à estrutura redundante do genoma. Conforme revelado no presente documento, entretanto, as complexidades apresentadas pela redundância do genoma podem ser superadas, pelo menos em parte, a partir de uma perspectiva direcionada pelos dados de leitura curta. Mais particularmente, os dispositivos, os sistemas e os métodos para empregar os mesmos conforme revelados no presente documento podem ser configurados de tal maneira a focar em regiões homólogas ou similares que podem, de outro modo, ter sido caracterizadas por baixa precisão de chamada de variante. Em certos casos, tal baixa precisão de chamada de variante pode originar-se de dificuldades observadas em mapeamento e alinhamentos de leitura em relação às regiões homólogas que tipicamente resultam em MAPQs de leitura muito baixos. Consequentemente, são apresentadas no presente documento implantações estratégicas que chamam com precisão variantes (SNPs, Indels e similares) em regiões homólogas, tal como considerando-se conjuntamente as informações presentes nessas regiões homólogas.[0398] In particular, although DNA sequencing has improved dramatically, variant calling remains a difficult problem due to the redundant structure of the genome. As disclosed herein, however, the complexities presented by genome redundancy can be overcome, at least in part, from a short-read data-driven perspective. More particularly, the devices, systems, and methods for employing the same as disclosed herein can be configured in such a manner as to target homologous or similar regions that may otherwise have been characterized by low variant calling accuracy. In certain cases, such low variant calling accuracy may arise from difficulties observed in mapping and read alignments to homologous regions that typically result in very low read MAPQs. Accordingly, strategic implementations that accurately call variants (SNPs, Indels, and the like) in homologous regions, such as by jointly considering the information present in those homologous regions, are disclosed herein.

[0399] Por exemplo, muitas regiões do genoma são homólogas, por exemplo, têm cópias não idênticas localizadas em outra parte no genoma, por exemplo, em múltiplos locais, e, como resultado, o local de fonte verdadeiro de uma leitura pode ser submetido a incerteza considerável. Especificamente, se um grupo de leituras for mapeado com baixa confiança, por exemplo, devido à homologia aparente, um chamador de variante típico pode ignorar e não processar as leituras, embora possam conter informações úteis. Em outros casos, se uma leitura for mapeada erroneamente (por exemplo, o alinhamento primário não é a fonte verdadeira da leitura), erros de detecção podem resultar. Mais especificamente, as tecnologias de sequenciamento de leitura curta anteriormente implantadas foram suscetíveis a esses problemas e métodos de detecção convencionais frequentemente deixam grandes regiões do genoma no escuro.[0399] For example, many regions of the genome are homologous, e.g., they have non-identical copies located elsewhere in the genome, e.g., at multiple sites, and as a result, the true source site of a read may be subject to considerable uncertainty. Specifically, if a group of reads map with low confidence, e.g., due to apparent homology, a typical variant caller may ignore and not process the reads, even though they may contain useful information. In other cases, if a read maps erroneously (e.g., the primary alignment is not the true source of the read), detection errors may result. More specifically, previously deployed short-read sequencing technologies have been susceptible to these issues, and conventional detection methods often leave large regions of the genome in the dark.

[0400] Em alguns casos, sequenciamento de leitura longa pode ser empregado para mitigar esses problemas, mas tipicamente tem custo muito mais alto e/ou taxas de erro mais altas, leva mais tempo e/ou sofre de outras desvantagens. Portanto, em vários casos, pode ser benéfico realizar uma operação conjunta de múltiplas regiões conforme descrito no presente documento. Por exemplo, em vez de considerar cada região em isolamento e/ou em vez de realizar e analisar sequenciamento de leitura longa, metodologias de detecção conjunta de múltiplas regiões (MRJD) podem ser empregadas, tal como em que o protocolo de MRJD considera múltiplos, por exemplo, todos, locais dos quais um grupo de leituras pode ser originado, e tenta detectar as sequências subjacentes juntas, por exemplo, em conjunto, com o uso de todas as informações disponíveis, que podem ser relacionadas a pontuações de confiança e/ou certeza baixas ou anormais.[0400] In some cases, long-read sequencing can be employed to mitigate these issues, but typically has much higher cost and/or higher error rates, takes longer, and/or suffers from other drawbacks. Therefore, in many cases, it may be beneficial to perform a multi-region joint operation as described herein. For example, rather than considering each region in isolation and/or rather than performing and analyzing long-read sequencing, multi-region joint detection (MRJD) methodologies may be employed, such as where the MRJD protocol considers multiple, e.g., all, sites from which a group of reads may originate, and attempts to detect the underlying sequences together, e.g., in aggregate, using all available information, which may be related to low or abnormal confidence and/or certainty scores.

[0401] Por exemplo, para um organismo diploide com cobertura estatisticamente uniforme, um cálculo bayesiano de força bruta, conforme descrito acima, pode ser realizado em uma análise de chamada de variante. Entretanto, em uma computação de MLRD de força bruta, a complexidade do cálculo cresce rapidamente com o número de regiões N e o número de haplótipos candidatos K a serem considerados. Particularmente, para considerar todas as combinações de haplótipos candidatos, o número de soluções candidatas para as quais calcular probabilidade pode ser frequentemente exponencial. Por exemplo, conforme descrito em mais detalhes abaixo, em uma implantação de força bruta, o número de haplótipos candidatos inclui o número de posições ativas, em que, se uma técnica de montagem de gráfico for usada para gerar a lista de haplótipos candidatos em uma operação de chamada de variante, tal como na construção de um gráfico de De Brujin, conforme revelado no presente documento, então, o número de posições ativas é o número de "bolhas" independentes no gráfico. Logo, tal cálculo de força bruta pode ser proibitivamente dispendioso de implantar e, como tais cálculos bayesianos podem ser proibitivamente complexos.[0401] For example, for a diploid organism with statistically uniform coverage, a brute-force Bayesian computation as described above can be performed in a variant calling analysis. However, in a brute-force MLRD computation, the complexity of the computation grows rapidly with the number of regions N and the number of candidate haplotypes K to be considered. In particular, to consider all combinations of candidate haplotypes, the number of candidate solutions for which to compute probability can often be exponential. For example, as described in more detail below, in a brute-force implementation, the number of candidate haplotypes includes the number of active positions, where if a graph fitting technique is used to generate the list of candidate haplotypes in a variant calling operation, such as in the construction of a De Brujin graph as disclosed herein, then the number of active positions is the number of independent "blobs" in the graph. Hence, such a brute force calculation may be prohibitively expensive to implement, and like such Bayesian calculations may be prohibitively complex.

[0402] Consequentemente, em um aspecto, conforme apresentado na Figura 17A, um método para reduzir a complexidade de tais cálculos de força bruta é fornecido no presente documento. Por exemplo, conforme revelado acima, embora a velocidade e a precisão de sequenciamento de DNA/RNA tenha sido drasticamente aprimorada, especialmente em relação aos métodos revelados no presente documento, chamada de variante, por exemplo, o processo de reconstruir um genoma do sujeito a partir das leituras que um sequenciador produz, permanece um problema difícil, amplamente devido à estrutura redundante do genoma. Os dispositivos, os sistemas e os métodos revelados no presente documento, portanto, são configurados para reduzir as complexidades apresentadas pela redundância do genoma de uma perspectiva conduzida por dados de leitura curta em contraste com sequenciamento de leitura longa. Em particular, são fornecidos no presente documento métodos para realizar detecção de leitura muito longa que representa regiões homólogas e/ou similares do genoma que são usualmente caracterizadas por baixa precisão de chamada de variante sem ter necessariamente que realizar sequenciamento de leitura longa.[0402] Accordingly, in one aspect, as set forth in Figure 17A, a method for reducing the complexity of such brute force calculations is provided herein. For example, as disclosed above, although the speed and accuracy of DNA/RNA sequencing has been dramatically improved, especially relative to the methods disclosed herein, variant calling, e.g., the process of reconstructing a subject's genome from the reads that a sequencer produces, remains a difficult problem, largely due to the redundant structure of the genome. The devices, systems, and methods disclosed herein are therefore configured to reduce the complexities presented by genome redundancy from a perspective driven by short-read data as opposed to long-read sequencing. In particular, methods for performing very long-read detection representing homologous and/or similar regions of the genome that are typically characterized by low variant calling accuracy without necessarily having to perform long-read sequencing are provided herein.

[0403] Por exemplo, em uma modalidade, um sistema e um método para realizar detecção conjunta de múltiplas regiões são fornecidos. Especificamente, em um primeiro caso, uma operação de chamada de variante geral pode ser realizada tal como empregando-se os métodos revelados no presente documento. Particularmente, um chamador de variante geral pode empregar uma sequência de genoma de referência, em que o genoma de referência apresenta todas as bases em um genoma de modelo. Essa referência forma a cadeia principal de uma análise pela qual um genoma do sujeito é comparado ao genoma de referência. Por exemplo, conforme discutido acima, empregar um sequenciador de próxima geração, o genoma de um sujeito pode ser rompido em subsequências, por exemplo, leituras, tipicamente cerca de 100 a 1.000 bases cada, em que as leituras podem ser mapeadas e alinhadas à referência, muito similar a montar um quebra- cabeça.[0403] For example, in one embodiment, a system and method for performing joint detection of multiple regions are provided. Specifically, in a first case, a general variant calling operation may be performed such as employing the methods disclosed herein. In particular, a general variant caller may employ a reference genome sequence, wherein the reference genome presents all of the bases in a template genome. This reference forms the backbone of an analysis by which a subject's genome is compared to the reference genome. For example, as discussed above, employing a next-generation sequencer, a subject's genome may be broken down into subsequences, e.g., reads, typically about 100 to 1,000 bases each, wherein the reads may be mapped and aligned to the reference, much like assembling a jigsaw puzzle.

[0404] Uma vez que o genoma do sujeito tenha sido mapeado e/ou alinhado, com o uso desse genoma de referência em comparação ao genoma real do sujeito, pode ser determinado até que ponto e como o genoma do sujeito difere do genoma de referência, por exemplo, de uma maneira base por base. Particularmente, na comparação do genoma do sujeito a um ou mais genomas de referência, tal como de uma maneira base por base, a análise se move iterativamente ao longo das sequências, comparando uma com a outra (ou outras) para determinar se estão de acordo ou divergem. Consequentemente, cada base dentro das sequências representa uma posição a ser chamada, tal como representado pela posição A na Figura 18 A[0404] Once the subject's genome has been mapped and/or aligned, using this reference genome in comparison to the subject's actual genome, it can be determined to what extent and how the subject's genome differs from the reference genome, e.g., in a base-by-base manner. In particular, when comparing the subject's genome to one or more reference genomes, such as in a base-by-base manner, the analysis moves iteratively through the sequences, comparing one to the other (or others) to determine whether they agree or diverge. Accordingly, each base within the sequences represents a position to be called, as represented by position A in Figure 18A

[0405] Especificamente, para cada posição A da referência a ser chamada em relação ao genoma do sujeito, um acúmulo de sequências, por exemplo, leituras, será mapeado e alinhado de tal maneira que um grande conjunto de amostra de leituras possa sobrepor-se totalmente um ao outro em qualquer dada posição A. Particularmente, essa superamostragem pode incluir diversas leituras, por exemplo, de um a uma centena ou mais, em que cada uma das leituras no acúmulo tem nucleotídeos que sobrepõem a região que é chamada. A chamada dessas leituras de base para base, portanto, envolve a formação de uma janela de processamento que desliza ao longo das sequências que fazem as chamadas, em que o comprimento da janela, por exemplo, o número de bases sob exame a qualquer dado tempo, forma a região ativa de determinação. Logo, a janela representa a região ativa de bases na amostra que é chamada, em que a chamada envolve comparar cada base em uma dada posição, por exemplo, A, em todas as leituras do acúmulo dentro da região ativa, em que a identidade da base nessa posição no número de acúmulo de leituras fornece evidência da verdadeira identidade da base na posição que é chamada.[0405] Specifically, for each position A of the reference to be called relative to the subject genome, an oversampling of sequences, e.g., reads, will be mapped and aligned in such a way that a large sample set of reads can fully overlap each other at any given position A. In particular, such oversampling may include a number of reads, e.g., from one to a hundred or more, where each of the reads in the oversampling has nucleotides that overlap the region being called. The calling of these reads base by base therefore involves the formation of a processing window that slides along the calling sequences, where the length of the window, e.g., the number of bases under examination at any given time, forms the active region of determination. Thus, the window represents the active region of bases in the sample that is called, where calling involves comparing each base at a given position, e.g., A, across all reads in the stack within the active region, where the identity of the base at that position in the stack number of reads provides evidence of the true identity of the base at the position that is called.

[0406] Para esse propósito, com base na pontuação de confiança de MAPQ relevante derivada para cada segmento de leitura, pode ser determinado de modo geral, dentro de uma certa pontuação de confiança, que o mapeamento e o alinhamento foram realizados com precisão. Entretanto, a questão ainda permanece, não importa quão sutil, quanto a se ou não o mapeamento e o alinhamento das leituras são precisos, ou se uma ou mais das leituras realmente pertencem a outro lugar. Consequentemente, em um aspecto, são fornecidos no presente documento dispositivos e métodos para aprimorar a confiança no desempenho de chamada de variante.[0406] For this purpose, based on the relevant MAPQ confidence score derived for each read segment, it can be generally determined, within a certain confidence score, that the mapping and alignment were performed accurately. However, the question still remains, no matter how subtle, as to whether or not the mapping and alignment of the reads are accurate, or whether one or more of the reads actually belong elsewhere. Accordingly, in one aspect, devices and methods for improving confidence in variant calling performance are provided herein.

[0407] Particularmente, em vários casos, o chamador de variante pode ser configurado para realizar uma ou mais operações de detecção conjunta de múltiplas regiões, conforme descrito no presente documento, que podem ser empregadas para gerar maior confiança nos resultados atingíveis. Por exemplo, em tal caso, o chamador de variante pode ser configurado para analisar as várias regiões no genoma de modo a determinar regiões particulares que parecem ser similares. Por exemplo, conforme pode ser observado em relação à Figura 18A, pode haver uma região de referência A, e uma região de referência B, em que as sequências referidas são muito similares uma à outra, por exemplo, mas com poucas regiões de correspondência de par de bases dissimilar, tal como em que o exemplo Ref A tem um "A", o exemplo Ref B tem um "T", mas fora desses pequenos dissimilares, todos os outros locais dentro da região em questão podem parecer corresponder. Devido à extensão das similaridades, essas duas regiões, por exemplo, Ref A e Ref B, serão tipicamente consideradas regiões homólogas ou parálogas.[0407] In particular, in various cases, the variant caller may be configured to perform one or more joint multi-region detection operations as described herein, which may be employed to generate greater confidence in the achievable results. For example, in such a case, the variant caller may be configured to analyze the various regions in the genome in order to determine particular regions that appear to be similar. For example, as can be seen with respect to Figure 18A, there may be a reference region A, and a reference region B, where the referenced sequences are very similar to each other, for example, but with a few regions of dissimilar base pair matching, such as where example Ref A has an "A", example Ref B has a "T", but outside of these small dissimilarities, all other locations within the region in question may appear to match. Due to the extent of the similarities, these two regions, e.g., Ref A and Ref B, will typically be considered homologous or paralogous regions.

[0408] Conforme representado, as duas regiões de referência A e B são 99% similares. Pode haver outras regiões, por exemplo, Refs C e D, que são relativamente similares, por exemplo, cerca de 93% similares, mas, em comparação com a similaridade de 99% entre as regiões de referência A e B, as regiões de referência C e D poderiam não ser consideradas homólogas ou pelo menos poderiam ser uma chance menor de realmente serem homólogas. Em tal caso, os procedimentos de chamada de variante podem ter capacidade para chamar adequadamente as diferenças entre regiões de referência C e D, mas podem, em certos casos, ter dificuldades para chamar as diferenças entre as regiões altamente homólogas de regiões de referência A e B, por exemplo, devido a sua alta homologia. Particularmente, devido à extensão da dissimilaridade entre as sequências de referência A e B e as sequências de referência C e D, não seria esperado que as leituras que mapeiam e alinham-se à Ref Seq A ou B, poderiam erroneamente ser mapeadas a Ref Seq C ou D. Entretanto, pode ser esperado que as leituras que mapeiam e alinham-se a Ref Seq A possam ser mapeadas erroneamente a Ref Seq B.[0408] As depicted, the two reference regions A and B are 99% similar. There may be other regions, e.g., Refs C and D, that are relatively similar, e.g., about 93% similar, but compared to the 99% similarity between reference regions A and B, reference regions C and D might not be considered homologous or at least might have a lower chance of actually being homologous. In such a case, variant calling procedures might be able to adequately call differences between reference regions C and D, but might in certain cases have difficulty calling differences between the highly homologous regions of reference regions A and B, e.g., due to their high homology. In particular, due to the extent of dissimilarity between reference sequences A and B and reference sequences C and D, it would not be expected that reads that map and align to Ref Seq A or B would erroneously map to Ref Seq C or D. However, it would be expected that reads that map and align to Ref Seq A would erroneously map to Ref Seq B.

[0409] Dada a extensão da homologia, o mapeamento errôneo entre as regiões A e B pode ser bem provável. Consequentemente, para aumentar a precisão, pode ser desejável que o sistema possa distinguir e/ou considerar a diferença entre regiões homólogas, tal como ao realizar um procedimento de mapeamento, alinhamento e/ou chamada de variante. Especificamente, ao gerar um acúmulo de leituras que mapeiam e alinham-se a uma região dentro da Ref A e gerar um acúmulo de leituras que mapeiam e alinham-se a uma região dentro da Ref B, qualquer uma das leituras pode, de fato, ser mapeada erroneamente ao local errado, e, como tal, para efetuar melhor precisão, ao realizar as operações de chamada de variante reveladas no presente documento, essas regiões homólogas, e as leituras mapeadas e alinhadas às mesmas, devem ser consideradas juntas, tal como em um protocolo de detecção conjunta, por exemplo, um protocolo de detecção conjunta de múltiplas regiões, conforme descrito no presente documento.[0409] Given the extent of homology, erroneous mapping between regions A and B may be quite likely. Accordingly, to increase accuracy, it may be desirable for the system to be able to distinguish and/or account for the difference between homologous regions, such as when performing a mapping, alignment, and/or variant calling procedure. Specifically, when generating a backlog of reads that map and align to a region within Ref A and generating a backlog of reads that map and align to a region within Ref B, any of the reads may in fact be erroneously mapped to the wrong location, and as such, to effect improved accuracy, when performing the variant calling operations disclosed herein, these homologous regions, and the reads mapped and aligned to them, should be considered together, such as in a joint detection protocol, e.g., a multi-region joint detection protocol as described herein.

[0410] Consequentemente, são apresentados no presente documento, dispositivos, sistemas, assim como os métodos de seu uso, que são direcionados à detecção conjunta de múltiplas regiões (MRJD), tal como em que uma pluralidade, por exemplo, todas, das leituras doa vários acúmulos das várias regiões homólogas identificadas são considerados juntos, tal como em que, em vez de realizar uma única chamada para cada local, uma chamada conjunta é realizada para todos os locais que parecem ser homólogos. Realizar tais chamadas conjuntas é vantajoso devido ao fato de que, antes de tentar realizar uma chamada para cada referência individualmente, teria que ser primeiramente determinado para qual região, de qual referência, as várias leituras em questão realmente se mapeiam e se alinham e isso é inerentemente incerto, e esse mesmo problema é solucionado pela detecção conjunta proposta. Logo, devido ao fato de que as regiões das duas referências são tão similares, é muito difícil determinar quais leituras mapeiam-se a quais regiões. Entretanto, se essas regiões forem chamadas juntamente, não é necessário realizar uma decisão antecipada sobre quais leituras homólogas mapear a qual região de referência. Por isso, ao realizar uma chamada conjunta, pode ser realizada a suposição de que quaisquer leituras em um acúmulo de uma região em uma referência, por exemplo, A, que é homóloga a outra região em uma segunda região, por exemplo, B, poderia pertencer a Ref. A ou Ref. B.[0410] Accordingly, presented herein are devices, systems, as well as methods of their use, which are directed to multiple region joint detection (MRJD), such as where a plurality, e.g., all, of the reads from various clusters of the various identified homologous regions are considered together, such as where, instead of making a single call for each site, a joint call is made for all sites that appear to be homologous. Making such joint calls is advantageous due to the fact that, before attempting to make a call for each reference individually, it would first have to be determined to which region, of which reference, the various reads in question actually map and align and this is inherently uncertain, and this very problem is solved by the proposed joint detection. Thus, due to the fact that the regions of the two references are so similar, it is very difficult to determine which reads map to which regions. However, if these regions are called together, there is no need to make an advance decision about which homologous reads map to which reference region. Therefore, when performing joint calling, the assumption can be made that any reads in a cluster from a region in one reference, e.g. A, that are homologous to another region in a second region, e.g. B, could belong to either Ref. A or Ref. B.

[0411] Consequentemente, quando desejado, um protocolo de MRJD pode ser implantado adicionalmente ao algoritmo de chamada de variante implantado nos dispositivos, sistemas e métodos no presente documento. Por exemplo, em uma iteração, um algoritmo de chamada de variante toma a evidência apresentada nas leituras mapeadas e/ou alinhadas para uma dada região nos genomas de amostra e de referência, analisa a possibilidade do que parece estar no genoma de amostra está de fato presente, com base em uma comparação com o genoma de referência e toma a decisão dada a evidência quanto a como a amostra realmente difere da referência, por exemplo, dada essa evidência, o algoritmo de chamador de variante determina a resposta mais provável do que é diferente entre a leitura e a referência. Entretanto, MRJD é outro algoritmo que pode ser implantado juntamente com o algoritmo VC, em que a MRJD é configurada para ajudar o chamador de variante a determinar mais precisamente se uma diferença observada, por exemplo, na leitura do sujeito, é de fato um desvio verdadeiro da referência.[0411] Accordingly, when desired, an MRJD protocol may be deployed in addition to the variant calling algorithm deployed in the devices, systems, and methods herein. For example, in one iteration, a variant calling algorithm takes the evidence presented in the reads mapped and/or aligned to a given region in the sample and reference genomes, analyzes the likelihood that what appears to be in the sample genome is in fact present, based on a comparison to the reference genome, and makes a decision given the evidence as to how the sample actually differs from the reference, e.g., given this evidence, the variant caller algorithm determines the most likely answer of what is different between the read and the reference. However, MRJD is another algorithm that may be deployed in conjunction with the VC algorithm, wherein MRJD is configured to help the variant caller more accurately determine whether an observed difference, e.g., in the subject's read, is in fact a true deviation from the reference.

[0412] Consequentemente, a primeira etapa em uma análise de MJRD envolve a identificação de regiões homólogas, com base em uma porcentagem de correspondência entre a sequência em uma pluralidade de regiões de uma ou mais referências, por exemplo, Ref. A e Ref. B, e as sequências acumuladas em uma ou mais regiões das leituras do sujeito. Particularmente, Ref. A e Ref. B podem realmente ser formas diploides do mesmo material genético, tal como em que há duas cópias de uma dada região do cromossomo. Logo, quando referências diploides estão sendo analisadas, em várias posições, a Ref A pode ter um nucleotídeo particular, e, na mesma posição em Ref. B, outro nucleotídeo pode estar presente. Nesse exemplo, a Ref. A e a Ref. B são homozigotas na posição A para "A". Entretanto, conforme pode ser observado na Figura 18A, o DNA do sujeito é heterozigoto nessa posição A, tal como em que, em relação às leituras do acúmulo da Ref. A, um alelo do cromossomo do sujeito tem um "A", mas o outro alelo tem um "C", ainda em relação a Ref. B, outra cópia do cromossomo do sujeito tem um "A" para ambos os alelos na posição A. Isso também se torna mais complicado quando a amostra que é analisada contém uma mutação, por exemplo, em uma dessas posições variáveis de ocorrência natural, tal como um SNP heterozigoto na posição A (não mostrado).[0412] Accordingly, the first step in an MJRD analysis involves identifying homologous regions, based on a percentage match between the sequence in a plurality of regions from one or more references, e.g., Ref. A and Ref. B, and the sequences accumulated in one or more regions from the subject reads. In particular, Ref. A and Ref. B may actually be diploid forms of the same genetic material, such as where there are two copies of a given region of the chromosome. Thus, when diploid references are being analyzed, at various positions, Ref. A may have a particular nucleotide, and at the same position in Ref. B, another nucleotide may be present. In this example, Ref. A and Ref. B are homozygous at position A for "A". However, as can be seen in Figure 18A, the subject's DNA is heterozygous at this A position, such that, relative to the reads from the accumulation of Ref. A, one allele of the subject's chromosome has an "A" but the other allele has a "C", yet relative to Ref. B, another copy of the subject's chromosome has an "A" for both alleles at the A position. This also becomes more complicated when the sample being analyzed contains a mutation, for example, at one of these naturally occurring variable positions, such as a heterozygous SNP at the A position (not shown).

[0413] Conforme pode ser observado em relação à Referência A da Figura 18B, na posição A, a amostra do sujeito pode incluir leituras que indica que há heterozigosidade na posição A, tal como em que algumas das leituras incluem em "C" nessa posição, e algumas das leituras indicam um "A" nessa posição (por exemplo, haplótipoa1 = "A", Ha2= "C"); enquanto, em relação a Ref. B, as leituras na posição A indicam homozigosidade, tal como quanto todas as leituras no acúmulo têm um "A" nessa posição (por exemplo, HBI = "A", HB2 = "A"). Entretanto, MRJD supera essas dificuldades realizando uma chamada conjunta simultaneamente, analisando todas as leituras que são mapeadas a ambas as regiões da referência, enquanto é considerada a possibilidade de que qualquer uma das leituras possa estar no local errado. Após as várias regiões homólogas serem identificadas, a etapa seguinte é determinar a correspondência entre as regiões de referência homólogas e, então, em relação a MRJD, a determinação de mapeador e/ou alinhadores quanto a onde as várias leituras aplicáveis devem ser mapeadas" entre as duas regiões homólogas que podem ser descartadas e, em vez disso, todas as leituras em qualquer um dos acúmulos nessas regiões homólogas pode ser considerado coletivamente, sabendo-se que qualquer uma dessas leituras podem pertencer a qualquer uma das regiões homólogas que são comparadas. Logo, os cálculos para determinar essas chamadas conjuntas, conforme apresentado em detalhes abaixo, consideram a possibilidade de que qualquer uma dessas leituras tenha vindo de qualquer uma das regiões de referência homólogas, e, quando aplicável, de qualquer haplótipo de qualquer uma das regiões de referência.[0413] As can be seen with respect to Reference A of Figure 18B, at position A, the subject sample may include reads that indicate heterozygosity at position A, such as where some of the reads include a "C" at that position, and some of the reads indicate an "A" at that position (e.g., haplotype a1 = "A", Ha2 = "C"); whereas, with respect to Ref. B, the reads at position A indicate homozygosity, such as where all of the reads in the pool have an "A" at that position (e.g., HBI = "A", HB2 = "A"). However, MRJD overcomes these difficulties by performing joint calling simultaneously, analyzing all reads that map to both regions of the reference, while considering the possibility that any of the reads may be in the wrong location. Once the various homologous regions have been identified, the next step is to determine the correspondence between the homologous reference regions, and then, relative to MRJD, the mapper and/or aligners' determination as to where the various applicable reads should "map" between the two homologous regions can be discarded and instead all reads in any of the clusters in these homologous regions can be considered collectively, knowing that any of these reads could belong to any of the homologous regions being compared. Therefore, the calculations to determine these joint calls, as detailed below, consider the possibility that any of these reads came from any of the homologous reference regions, and, where applicable, from any haplotype in either reference region.

[0414] Deve-se perceber que, embora o anterior tenha sido com referência a múltiplas regiões de homologia dentro de uma referência, a mesma análise pode ser aplicada para detecção de região única também. Por exemplo, conforme pode ser observado em relação à Figura 18B, mesmo para uma única região, para qualquer dada região, pode haver dois haplótipos separados presentes, por exemplo, HI e H2, que a amostra genética do sujeito pode ter para uma região particular, e devido ao fato de que são haplótipos, provavelmente serão muito similares um ao outro. Consequentemente, se essas posições forem analisadas uma isoladamente da outra, pode ser difícil determinar se há variações verdadeiras sendo consideradas. Assim, os cálculos que são realizados tem relação às regiões homólogas são úteis para regiões não homólogas também, devido ao fato de que qualquer região específica é provavelmente diploide, por exemplo, tendo tanto um primeiro haplótipo (H1 ) quanto um segundo haplótipo (H2) e, assim senso, analisar as regiões juntamente aumentará a precisão do sistema. De modo semelhante, para uma região de dias referências, por exemplo, uma região homóloga, conforme descrito acima, o que está sendo chamado é um HAI e HA2 para a primeira região, e um HAI e HA2 para a segunda região (que é equivalente a dois filamentos para cada cromossomo e duas regiões para cada filamento = 4 tipos diploides, de modo geral.[0414] It should be realized that although the foregoing has been with reference to multiple regions of homology within a reference, the same analysis can be applied to single region detection as well. For example, as can be seen with respect to Figure 18B, even for a single region, for any given region, there may be two separate haplotypes present, e.g., HI and H2, that the subject's genetic sample may have for a particular region, and because they are haplotypes, they will likely be very similar to each other. Consequently, if these positions are analyzed in isolation from each other, it may be difficult to determine whether there are true variations being considered. Thus, the calculations that are performed with respect to homologous regions are useful for non-homologous regions as well, because any given region is likely to be diploid, e.g., having both a first haplotype (H1) and a second haplotype (H2), and thus, analyzing the regions together will increase the accuracy of the system. Similarly, for a region of reference days, for example a homologous region as described above, what is being called is an HAI and HA2 for the first region, and an HAI and HA2 for the second region (which is equivalent to two strands for each chromosome and two regions for each strand = 4 diploid types, overall.

[0415] Consequentemente, MRJD pode ser empregada para determinar uma resposta inicial, em relação a uma ou mais, por exemplo, todas, das regiões homólogas, e, então, a detecção de região única pode ser aplicada de volta a uma ou mais, por exemplo, todas, das regiões únicas ou não homólogas, por exemplo, empregando a mesma análise básica e, assim, melhor precisão pode ser atingida. Logo, uma detecção não conjunta de região única pode ser também realizada. Por exemplo, em relação à detecção de região única, para os haplótipos candidatos, HAI, em iterações atuais, a região de referência pode ter cerca de 300 a 500 pares de bases de comprimento e, sobre a referência, um gráfico, por exemplo, um gráfico de De Bruijn, conforme apresentado na Figura 18C, é construído, tal como de K-mers a partir das leituras, em que qualquer local que difira da referência forma uma trajetória divergente ou "bolha" no gráfico, a partir da qual os haplótipos são extraídos, em que cada haplótipo extraído, por exemplo, trajetória divergente, forma uma hipótese potencial para qual pode estar em um dos dois filamentos dos cromossomos em um local particular da região ativa sob exame.[0415] Accordingly, MRJD can be employed to determine an initial response, with respect to one or more, e.g., all, of the homologous regions, and then single region detection can be applied back to one or more, e.g., all, of the unique or non-homologous regions, e.g., employing the same basic analysis, and thus better accuracy can be achieved. Thus, non-joint single region detection can also be performed. For example, with respect to single region detection, for candidate haplotypes, HAI, in current iterations, the reference region may be about 300 to 500 base pairs long, and over the reference, a graph, e.g., a De Bruijn graph as shown in Figure 18C, is constructed, such as of K-mers from the reads, where any site that differs from the reference forms a divergent trajectory or "bubble" in the graph, from which haplotypes are extracted, where each extracted haplotype, e.g., divergent trajectory, forms a potential hypothesis for which may lie on one of the two strands of the chromosomes at a particular site in the active region under examination.

[0416] Entretanto, se houver muitas trajetórias divergentes, por exemplo, muitas bolhas através do gráfico são formadas, conforme visto em relação à Figura 18C, e um grande número de haplótipos foi extraído, então, um corte máximo pode ser introduzido para manter os cálculos gerenciáveis. O corte pode ser em qualquer número estatisticamente significativo, tal como 35, 50, 100, 125 a 128, 150, 175, 200 ou mais, etc. No entanto, em certos casos, um número substancialmente maior, por exemplo, todos, dos haplótipos pode ser considerado.[0416] However, if there are many divergent trajectories, for example many bubbles across the graph are formed, as seen with respect to Figure 18C, and a large number of haplotypes have been extracted, then a maximum cutoff may be introduced to keep the calculations manageable. The cutoff may be at any statistically significant number, such as 35, 50, 100, 125 to 128, 150, 175, 200 or more, etc. However, in certain cases, a substantially larger number, for example all, of the haplotypes may be considered.

[0417] Em tal caso, em vez de extrair a fonte completa para diminuir haplótipos do início ao final, por exemplo, do começo da sequência ao fim, apenas as sequências associadas às bolhas individuais precisam ser extraídas, por exemplo, apenas as bolhas precisam ser alinhadas à referência. Consequentemente, as bolhas são extraídas do DBG, as sequências alinhadas à referência, e a partir desses alinhamentos, SNPs específicos, inserções, deleções e similares podem ser determinados, em relação à razão de as sequências das várias bolhas diferirem da referência. Logo, nesse sentido, todos os haplótipos hipotéticos diferentes para análise podem ser derivados da mistura e correspondência das sequências pertencentes a todas as várias bolhas em diferentes combinações. De uma maneira como essa, todos os haplótipos a serem extraídos não precisam ser enumerados. Esses métodos para realizar detecção conjunta de múltiplas regiões são descritos em mais detalhes abaixo no presente documento.[0417] In such a case, instead of extracting the entire source to narrow down haplotypes from start to finish, e.g. from the beginning of the sequence to the end, only the sequences associated with the individual bubbles need to be extracted, e.g. only the bubbles need to be aligned to the reference. Accordingly, the bubbles are extracted from the DBG, the sequences aligned to the reference, and from these alignments, specific SNPs, insertions, deletions and the like can be determined, as to why the sequences of the various bubbles differ from the reference. Hence, in this sense, all the different hypothetical haplotypes for analysis can be derived by mixing and matching the sequences belonging to all the various bubbles in different combinations. In such a manner, all the haplotypes to be extracted do not need to be enumerated. Such methods for performing joint detection of multiple regions are described in more detail below in this document.

[0418] Ademais, abstratamente, embora todos esses haplótipos candidatos podem ser testados, um crescimento do algoritmo de árvore pode ser realizado quando o gráfico que é produzido começa a parecer uma árvore em crescimento. Por exemplo, um gráfico de árvore ramificada de haplótipos/diplótipos conjuntos pode ser construído de tal maneira que a árvore cresça, o algoritmo subjacente funciona tanto para o crescimento quanto poda da árvore ao mesmo tempo em que mais e mais cálculos são realizados, e se torna evidente que várias hipóteses candidatas diferentes são simplesmente muito improváveis. Logo, conforme a árvore cresce e é podada, nem todo os haplótipos hipotetizados precisam ser calculados.[0418] Furthermore, abstractly, although all of these candidate haplotypes can be tested, a tree growth algorithm can be performed when the graph that is produced begins to look like a growing tree. For example, a branching tree graph of joint haplotypes/diplotypes can be constructed in such a way that as the tree grows, the underlying algorithm works to both grow and prune the tree as more and more calculations are performed, and it becomes apparent that several different candidate hypotheses are simply too unlikely. Thus, as the tree grows and is pruned, not all of the hypothesized haplotypes need to be calculated.

[0419] Especificamente, em relação ao crescimento da função de árvore, quando há uma discrepância entre duas referências, ou entre as referências e as leituras, quanto a qual base está presente em dadas posições que são separadas, deve ser determinado que a base realmente pertence àquela posição, e em vista de tais discrepâncias, precisa ser determinado quais diferenças podem ser causadas por SNPs, Indels ou similares, versus quais são erros de máquina. Consequentemente, ao causar o crescimento da árvore, por exemplo, extraindo bolhas do gráfico de De Bruijn, tal como por meio de alinhamento de SW ou NW, e posicionando os mesmos dentro do gráfico de árvore emergente, cada bolha a ser extraída torna-se um evento no gráfico de árvore, que representa possíveis SNPs, Indels e/ou outras diferenças da referência. Consultar a Figura 18C.[0419] Specifically, with respect to growing the tree function, when there is a discrepancy between two references, or between references and reads, as to which base is present at given positions that are separated, it must be determined that the base actually belongs at that position, and in view of such discrepancies, it needs to be determined which differences may be caused by SNPs, Indels, or the like, versus which are machine errors. Consequently, when causing tree growth, for example by extracting bubbles from the De Bruijn graph, such as through SW or NW alignment, and positioning them within the emerging tree graph, each bubble to be extracted becomes an event in the tree graph, which represents possible SNPs, Indels, and/or other differences from the reference. See Figure 18C.

[0420] Particularmente, em um DBG, as bolhas representam divergências da referência, por exemplo, representativas de Indels (que bases foram adicionadas ou deletadas), SNPs (que bases são diferentes) e similares. Consequentemente, conforme as bolhas são alinhadas à referência (ou referências), as várias diferenças entre as duas são categorizadas como eventos, e uma lista dos vários eventos, por exemplo, bolhas, é gerada. Portanto, a determinação, então, se torna: qual combinação dos possíveis eventos, por exemplo, de possíveis SNPs e Indels, levou às variações reais na sequência genética do sujeito, por exemplo, é a verdadeira em cada um dos vários haplótipos reais, por exemplo, 4, com base na probabilidade. Mais particularmente, qualquer candidato, por exemplo, candidato diplótipo conjunto, formando uma raiz GO (que representa eventos para um dado segmento) pode ter 4 haplótipos, e cada um dos quatro haplótipos formará um subconjunto identificado dos eventos.[0420] In particular, in a DBG, the bubbles represent divergences from the reference, e.g., representative of Indels (which bases were added or deleted), SNPs (which bases are different), and the like. Consequently, as the bubbles are aligned to the reference (or references), the various differences between the two are categorized as events, and a list of the various events, e.g., bubbles, is generated. Therefore, the determination then becomes: which combination of the possible events, e.g., possible SNPs and Indels, led to the actual variations in the subject's genetic sequence, e.g., is the true one in each of the various actual haplotypes, e.g., 4, based on probability. More particularly, any candidate, e.g., joint diplotype candidate, forming a GO root (which represents events for a given segment) may have 4 haplotypes, and each of the four haplotypes will form an identified subset of the events.

[0421] Entretanto, conforme pode ser observado em relação à Figura 18D, ao realizar um crescimento e/ou poda da função de árvore, uma lista completa do subconjunto inteiro de todas as combinações de eventos pode ser, mas não precisa ser, determinada toda de uma vez. Em vez disso, a determinação começa em uma única posição GO, por exemplo, um evento, e a árvore cresce a partir do mesmo, um evento por vez, o que, através da função de poda, pode deixar vários eventos de probabilidade não solucionados. Logo, em relação a um crescimento da função de árvore, conforme pode ser visto em relação à Figura 18D, o cálculo começa com a determinação dos haplótipos, por exemplo, HAI, HA2, HBI, HB2 (para um organismo diploide), em que os haplótipos iniciais são considerados como sendo todos não resolvidos em relação a suas respectivas referências, por exemplo, Ref. A e Ref. B, basicamente sem nenhum dos eventos presentes.[0421] However, as can be seen with respect to Figure 18D, when performing a tree function growth and/or pruning, a complete list of the entire subset of all event combinations can be, but need not be, determined all at once. Instead, the determination starts at a single GO position, e.g., an event, and the tree grows from there one event at a time, which, through the pruning function, can leave multiple probability events unresolved. Thus, with respect to a tree function growth, as can be seen with respect to Figure 18D, the computation starts with the determination of haplotypes, e.g., HAI, HA2, HBI, HB2 (for a diploid organism), where the initial haplotypes are assumed to be all unresolved with respect to their respective references, e.g., Ref. A and Ref. B, with essentially none of the events present.

[0422] Consequentemente, o ponto de partida inicial é com a raiz da árvore sendo GO, e o diplótipo conjunto que tem todos os eventos não resolvidos. Então, um evento particular, por exemplo, uma bolha inicial, é selecionado como a origem para a determinação, de modo que o evento inicial deve ser resolvido para todos os haplótipos, em que o evento pode ser um primeiro ponto de divergência da referência, tal como em relação à presença potencial de um SNP ou Indel na posição um. Conforme exemplificado na Figura 18E, na posição um, há um evento ou bolha, tal como um SNP, em que um "C" foi substituído por um "A", de modo que a referência tenha um "A" na posição um, mas a leitura em questão tenha um "C". Em tal caso, visto que, para essa posição no acúmulo, há 4 haplótipos, e cada um pode ter um "A", como na referência, ou o evento "C", há potencialmente 24= 16 possibilidades para resolver essa posição. Logo, o cálculo se move imediatamente da raiz para 16 ramificações, representando as resoluções potenciais para o evento na posição um.[0422] Accordingly, the initial starting point is with the root of the tree being GO, and the diplotype set that has all unresolved events. Then, a particular event, e.g. an initial bubble, is selected as the origin for determination, such that the initial event must be resolved for all haplotypes, where the event may be a first point of divergence from the reference, such as with respect to the potential presence of a SNP or Indel at position one. As exemplified in Figure 18E, at position one, there is an event or bubble, such as a SNP, where a "C" has been replaced by an "A", such that the reference has an "A" at position one, but the read in question has a "C". In such a case, since for that position in the stack there are 4 haplotypes, and each may have an "A", as in the reference, or the "C" event, there are potentially 24=16 possibilities to resolve that position. Therefore, the calculation immediately moves from the root to 16 branches, representing the potential resolutions to the event at position one.

[0423] Portanto, conforme pode ser observado em relação à Figura 18D, todas as sequências potenciais para todos os quatro haplótipos podem ser apresentadas, por exemplo, HAI, HA2, HBI, HB2, em que, na posição um, há o "A", como em conformidade com a referência, ou evento "C", indicando a presença de um SNP, para esse evento um, em que o evento "C” é determinado examinando-se as várias trajetórias de bolha através do gráfico. Assim, para cada ramificação ou nó-filho, cada ramificação pode diferir com base na verossimilhança da base na posição um de acordo com ou divergente da referência, enquanto o restante dos eventos permanece não resolvido. Esse processo, então, será repetido para cada nó de ramificação e para cada base dentro das bolhas de variação, de modo a resolver todos os eventos para todos os haplótipos. Logo, as probabilidades podem ser recalculadas para observar qualquer leitura particular dados os vários haplótipos potenciais.[0423] Thus, as can be seen from Figure 18D, all potential sequences for all four haplotypes can be presented, e.g., HAI, HA2, HBI, HB2, where at position one there is either an "A" as in agreement with the reference, or event "C" indicating the presence of a SNP, for that event one, where event "C" is determined by examining the various bubble trajectories through the graph. Thus, for each branch or child node, each branch may differ based on the likelihood of the base at position one agreeing with or deviating from the reference, while the remainder of the events remain unresolved. This process will then be repeated for each branch node and for each base within the variation bubbles, so as to resolve all events for all haplotypes. The probabilities can then be recalculated for observing any particular readout given the various potential haplotypes.

[0424] Particularmente, para cada nó, pode haver quatro haplótipos, e cada haplótipo pode ser comparado contra cada leitura no acúmulo. Por exemplo, em uma modalidade, o mecanismo de SW, NW e/ou HMM, analisa cada nó e considerada cada um dos quatro haplótipos para cada nó. Consequentemente, gerar cada nó ativa o mecanismo de SW e/ou HMM para analisar esse nó considerando todos os haplótipos, por exemplo, 4, para esse nó em comparação para cada um das leituras, em que o mecanismo de SW e/ou HMM considera um haplótipo para uma leitura para cada um dos haplótipos e cada uma das leituras para todos os nós viáveis.[0424] In particular, for each node, there may be four haplotypes, and each haplotype may be compared against each read in the backlog. For example, in one embodiment, the SW, NW, and/or HMM engine analyzes each node and considers each of the four haplotypes for each node. Accordingly, generating each node triggers the SW and/or HMM engine to analyze that node considering all haplotypes, e.g., 4, for that node compared to each of the reads, wherein the SW and/or HMM engine considers one haplotype for one read for each of the haplotypes and each of the reads for all viable nodes.

[0425] Logo, se, para propósitos exemplificativos desse exemplo, for o caso em que há um SNP heterozigoto "C" para uma região de um haplótipo, por exemplo, um filamento de um cromossomo tem um "C", mas todas as outras bases nessa posição para os outros filamentos não têm, por exemplo, todas correspondem à referência "A", então, poderia ser esperado que todas as leituras no acúmulo suportes essa conclusão, tal como tendo uma maioria de "A"s na posição um, e uma minoria, por exemplo, cerca de 1/4, das leituras tendo um "C" na posição um, para o nó verdadeiro. Assim, se quaisquer leituras observáveis posteriores em um nó diferente mostrarem uma multiplicidade de "Cs" na posição um, então, esse nó não será provavelmente o nó verdadeiro, por exemplo, terá uma baixa probabilidade, devido ao fato de que não há leituras suficientes com Cs nessa posição no acúmulo para tornar sua ocorrência provável. Especificamente, será mais provável que a existência de um "C" nessa posição nas leituras em questão é evidência de um sequenciamento ou outro erro científico, em vez de ser um candidato de haplótipo verdadeiro. Consequentemente, se certos nós terminarem tendo probabilidades pequenas, em comparação ao nó verdadeiro, isso ocorre devido ao fato de que não são suportados por uma maioria das leituras, por exemplo, no acúmulo e, assim, esses nós podem ser podados, descartando, assim, os nós de baixas probabilidades, mas de uma maneira que preserva o nó (ou nós) verdadeiro.[0425] Thus, if, for the exemplary purposes of this example, it is the case that there is a heterozygous "C" SNP for a region of a haplotype, e.g., one strand of a chromosome has a "C", but all the other bases at that position for the other strands do not, e.g., all match the reference "A", then all of the reads in the cluster would be expected to support that conclusion, such as having a majority of "A"s at position one, and a minority, e.g., about 1/4, of the reads having a "C" at position one, for the true node. Thus, if any subsequent observable reads at a different node show a multiplicity of "Cs" at position one, then that node is unlikely to be the true node, e.g., it will have a low probability, due to the fact that there are not enough reads with Cs at that position in the cluster to make its occurrence likely. Specifically, it is more likely that the existence of a "C" at that position in the reads in question is evidence of a sequencing or other scientific error, rather than being a true haplotype candidate. Consequently, if certain nodes end up having low probabilities compared to the true node, this is because they are not supported by a majority of the reads, e.g. in the backlog, and so these nodes can be pruned, thereby discarding the low-probability nodes but in a way that preserves the true node (or nodes).

[0426] Consequentemente, uma vez que a posição um do evento tenha sido determinada, a posição de evento seguinte pode ser determinada, e os processos descritos no presente documento podem ser, então, repetidos para essa nova posição em relação a qualquer um dos nós sobreviventes que não foram anteriormente podados. Particularmente, o evento dois pode ser selecionado a partir dos nós disponíveis existentes, e esse evento pode servir como a raiz GI para determinar a identidade provável da base na posição dois, tal como definindo-se mais uma vez os novos haplótipos, por exemplo, 4, assim como suas várias ramificações, por exemplo, 16, explicando as possíveis variações em relação à posição 2. Logo, através da repetição desse mesmo processo, o evento 2 pode ser agora resolvido. Portanto, conforme pode ser observado em relação à Figura 18D, uma vez que a posição 1 tenha sido determinada, um novo nó para a posição 2 pode ser selecionado, e seus 16 candidatos de haplótipo potenciais podem ser considerados. Em tal caso, os candidatos para cada um dentre HAI, HA2, HBI, HB2 podem ser determinados, mas, nesse caso, visto que a posição 1 já foi resolvida, em relação a determinar a identidade de nucleotídeo para cada um dos haplótipos na posição 1, é a posição 2 que será agora resolvida, para cada um dos haplótipos na posição 2, conforme apresentado na Figura 18D, que mostra a resolução da posição 2.[0426] Accordingly, once event position one has been determined, the next event position can be determined, and the processes described herein can then be repeated for that new position relative to any of the surviving nodes that were not previously pruned. In particular, event two can be selected from the existing available nodes, and that event can serve as the GI root to determine the likely identity of the base at position two, such as by once again defining new haplotypes, e.g., 4, as well as their various branches, e.g., 16, accounting for possible variations relative to position 2. Thus, by repeating this same process, event 2 can now be resolved. Therefore, as can be seen with respect to Figure 18D, once position 1 has been determined, a new node for position 2 can be selected, and its 16 potential haplotype candidates can be considered. In such a case, candidates for each of HAI, HA2, HBI, HB2 can be determined, but in this case, since position 1 has already been resolved, in terms of determining the nucleotide identity for each of the haplotypes at position 1, it is position 2 that will now be resolved, for each of the haplotypes at position 2, as shown in Figure 18D, which shows the resolution of position 2.

[0427] Uma vez que esse processo seja finalizado, uma vez que todos os eventos tenham sido processados e resolvidos, por exemplo, incluindo todos os nós- filhos e filhos de nós-filhos que não foram podados, então, os nós da árvore que não foram podados podem ser examinados, e podem ser determinados com base nas pontuações de probabilidade, em que a árvore representa o diplótipo conjunto, por exemplo, em que a sequência tem a probabilidade mais alta de ser verdadeira. Portanto, dessa maneira, devido à função de poda, a árvore inteira não precisa ser construída, por exemplo, a maior parte da árvore terminará sendo podada conforme a análise continua, assim a quantidade geral de cálculos é grandemente reduzida em relação a funções de não poda, embora substancialmente mais do que realizar chamada de diplótipo não conjunta, por exemplo, chamada de região única. Consequentemente, os presentes módulos analíticos podem determinar e resolver duas ou mais regiões de alta homologia com um alto grau de precisão, por exemplo, empregando análise de diplótipo conjunta, em que os métodos tradicionais simplesmente não podem resolver tais regiões, por exemplo, devido a falsos positivos e irresoluções.[0427] Once this process is complete, once all events have been processed and resolved, e.g. including all child nodes and children of child nodes that were not pruned, then the nodes in the tree that were not pruned can be examined, and it can be determined based on the probability scores, that the tree represents the joint diplotype, e.g. where the sequence has the highest probability of being true. So in this way, because of the pruning function, the entire tree does not need to be constructed, e.g. most of the tree will end up being pruned as the analysis continues, so the overall amount of computation is greatly reduced relative to non-pruning functions, although substantially more than performing non-joint diplotype calling, e.g. single region calling. Consequently, the present analytical modules can determine and resolve two or more regions of high homology with a high degree of accuracy, e.g., employing joint diplotype analysis, where traditional methods simply cannot resolve such regions, e.g., due to false positives and irresolutions.

[0428] Particularmente, várias implantações de chamador de variante podem ser configuradas para não realizar simplesmente uma análise nas regiões de alta homologia. As presentes iterações superam esses e outros tais problemas no campo. Mais particularmente, os presentes dispositivos, sistemas e seus métodos de uso podem ser configurados de modo a considerar uma proporção maior, por exemplo, todos os haplótipos, a despeito da ocorrência de regiões de alta homologia. Obviamente, a velocidade desses cálculos pode ser adicionalmente aumentada, não se realizando certos cálculos em que pode ser determinado que os resultados de tais cálculos têm uma baixa probabilidade de serem verdadeiros, tal como implantando-se uma função de poda, conforme descrito no presente documento.[0428] In particular, various variant caller implementations may be configured to simply not perform an analysis on regions of high homology. The present iterations overcome these and other such problems in the field. More particularly, the present devices, systems, and methods of use thereof may be configured to consider a larger proportion, e.g., all haplotypes, despite the occurrence of regions of high homology. Of course, the speed of such calculations may be further increased by not performing certain calculations where it may be determined that the results of such calculations have a low probability of being true, such as by implementing a pruning function as described herein.

[0429] Um benefício dessas configurações, por exemplo, resolução de diplótipo conjunto e poda, é que agora o tamanho da janela de região ativa, por exemplo, de bases que são analisadas, pode ser aumentado de cerca de algumas centenas de bases sendo processadas a algumas milhares, ou mesmo dezenas ou centenas de milhares de bases podem ser processadas juntas, tal como em uma região ativa contígua. Esse aumento em tamanho da janela ativa de análise permite que mais evidência seja considerada ao determinar a identidade de qualquer nucleotídeo particular em qualquer dada posição, permitindo, assim, que um contexto maior dentro do qual uma determinação mais precisa da identidade do nucleotídeo possa ser realizado. De modo semelhante, um contexto maior permite que a evidência de suporte seja melhor encadeada juntamente ao comparar uma ou mais leituras que cobrem uma ou mais regiões que têm um ou mais desvios da referência. Logo, de tal maneira, um evento pode ser conectado a outro evento, em que o próprio pode ser conectado a outro evento, etc., e a partir dessas conexões uma chamada mais precisa em relação a um dado evento particular atualmente em consideração pode ser realizada, permitindo, assim, que evidência mais distante, por exemplo, centenas a milhares de bases ou mais de distância, seja informativa para produzir uma presente chamada de variante (a despeito do fato de que qualquer dada leitura tem apenas tipicamente centenas de bases de comprimento), tornando, assim, os processos no presente documento muito mais precisos.[0429] A benefit of these configurations, e.g., joint diplotype resolution and pruning, is that now the size of the active region window, e.g., of bases that are analyzed, can be increased from about a few hundred bases being processed to a few thousand, or even tens or hundreds of thousands of bases can be processed together, such as in a contiguous active region. This increase in size of the active window of analysis allows more evidence to be considered when determining the identity of any particular nucleotide at any given position, thus allowing a larger context within which a more accurate determination of nucleotide identity can be made. Similarly, a larger context allows supporting evidence to be better chained together when comparing one or more reads that cover one or more regions that have one or more deviations from the reference. Thus, in such a manner, an event can be connected to another event, which itself can be connected to another event, etc., and from these connections a more precise call regarding a particular event currently under consideration can be made, thus allowing more distant evidence, e.g. hundreds to thousands of bases or more away, to be informative in producing a given variant call (despite the fact that any given read is typically only hundreds of bases long), thus making the processes herein much more precise.

[0430] Particularmente, de uma maneira tal como essa, a região ativa pode adicionalmente ser produzida para incluir milhares, até dezenas de milhares, até mesmo centenas de milhares de bases ou mais, e, consequentemente, o método para formar um gráfico de De Bruijn extraindo-se todos os haplótipos pode ser evitado, visto que apenas um número limitado de haplótipos, aqueles com bolhas que podem ser viáveis, precisam ser explorados e, mesmo aqueles que são viáveis, uma vez que se torne claro que não são mais viáveis, podem ser podados, e para aqueles que permanecem viáveis, encadeamento pode ser empregado de modo a aprimorar a precisão das chamadas de variante eventuais que são realizadas. Tudo isso é tornado possível por computação quântica e/ou de hardware. O mesmo pode ser também realizado em software por uma CPU ou uma GPU, mas será mais lento.[0430] Particularly, in such a manner, the active region can further be produced to include thousands, even tens of thousands, even hundreds of thousands of bases or more, and consequently the method for forming a De Bruijn graph by extracting all haplotypes can be avoided, since only a limited number of haplotypes, those with bubbles that may be viable, need to be explored, and even those that are viable, once it becomes clear that they are no longer viable, can be pruned, and for those that remain viable, chaining can be employed in order to improve the accuracy of the eventual variant calls that are made. All of this is made possible by quantum and/or hardware computing. The same can also be done in software by a CPU or a GPU, but it will be slower.

[0431] Deve-se perceber que, em relação aos exemplos acima, são as probabilidades dos dados de entrada, por exemplo, as leituras, que estão sendo determinadas, dadas essas teorias de haplótipo produzidas pelo gráfico de De Bruijn. Entretanto, pode ser também útil empregar o teorema de Bayes, tal como para determinar a probabilidade de leituras dado um diplótipo conjunto, até a probabilidade oposta de determinar a partir da teoria de um diplótipo conjunto um melhor ajuste dadas as leituras e a evidência avaliada. Consequentemente, conforme pode ser observado em relação à Figura 18C, a partir do gráfico de De Bruijn gerado, uma vez que a detecção conjunta de múltiplas regiões e/ou a poda tenham ocorrido, um conjunto de haplótipos potenciais resultará e, então, esses haplótipos serão testados contra as leituras reais do sujeito. Especificamente, cada corte transversal horizontal representa um haplótipo, por exemplo, B1, que pode ser, então, submetido a outro protocolo de HMM de modo a testar novamente as leituras de modo a determinar a probabilidade de uma leitura particular dado o haplótipo B1.[0431] It should be appreciated that with respect to the above examples, it is the probabilities of the input data, e.g. the reads, that are being determined, given these haplotype theories produced by the De Bruijn plot. However, it may also be useful to employ Bayes' theorem, such as to determine the probability of reads given a joint diplotype, to the converse probability of determining from the joint diplotype theory a best fit given the reads and the evidence evaluated. Consequently, as can be seen with respect to Figure 18C, from the generated De Bruijn plot, once joint detection of multiple regions and/or pruning has occurred, a set of potential haplotypes will result, and these haplotypes will then be tested against the subject's actual reads. Specifically, each horizontal cross-section represents a haplotype, e.g. B1, which can then be subjected to another HMM protocol to retest the reads to determine the probability of a particular read given the B1 haplotype.

[0432] Entretanto, em certos casos, o haplótipo, por exemplo, B1, pode não ser ainda completamente determinado, mas HMM pode ser ainda útil para ser realizado, e, em tal caso, um cálculo de HMM modificado, por exemplo, uma operação de HMM parcialmente determinada (PD), discutida abaixo, pode ser realizada quando se permite que o haplótipo tenha variantes indeterminadas, por exemplo, SNPs e/ou indels, em que as mesmas não foram ainda determinadas, e, como tal, o cálculo é similar a calcular a melhor probabilidade possível para uma resposta atingível dada qualquer combinação de variantes nas posições não resolvidas. Portanto, isso facilita adicionalmente o crescimento iterativo da função de árvore, em que o crescimento real da árvore, por exemplo, a realização de operação de HMM PD, não precisa ser restringido a apenas aqueles cálculos em que todas as variantes possíveis são conhecidas. Logo, dessa maneira, diversos cálculos de HMM PD podem ser realizados, de uma forma iterativa, para fazer crescer a árvore de nós, a despeito do fato de que há ainda regiões não determinadas de eventos possíveis desconhecidos em haplótipos candidatos particulares, e quando se torna possível cortar a árvore, recursos de HMM PD podem ser deslocados, fluidamente, de cálculo de nós podados de modo a processar apenas aquelas possibilidades que têm a maior probabilidade de caracterizar com sucesso o genótipo verdadeiro.[0432] However, in certain cases, the haplotype, e.g., B1, may not yet be completely determined, but HMM may still be useful to perform, and in such a case, a modified HMM calculation, e.g., a partially determined (PD) HMM operation, discussed below, may be performed where the haplotype is allowed to have undetermined variants, e.g., SNPs and/or indels, where the same have not yet been determined, and as such the calculation is similar to calculating the best possible probability for an achievable answer given any combination of variants at the unresolved positions. This therefore further facilitates iterative growth of the tree function, where the actual growth of the tree, e.g., performing the PD HMM operation, need not be restricted to only those calculations where all possible variants are known. Thus, in this way, several HMM PD calculations can be performed, in an iterative manner, to grow the node tree, despite the fact that there are still undetermined regions of unknown possible events in particular candidate haplotypes, and when it becomes possible to prune the tree, HMM PD resources can be fluidly shifted from calculating pruned nodes to processing only those possibilities that have the highest probability of successfully characterizing the true genotype.

[0433] Consequentemente, ao determinar a probabilidade de uma base específica realmente estar presente em qualquer uma posição, a identidade da base nessa posição pode ser determinada com base na identidade nessa posição em cada região de cada cromossomo, por exemplo, cada haplótipo, que representa um candidato viável. Logo, para qualquer candidato, o que está sendo determinado é a identidade da dada base na posição em questão em cada um dos quatro haplótipos simultaneamente. Particularmente, o que está sendo determinado é a probabilidade de observar as leituras de cada um dos acúmulos dada a verossimilhança determinada. Especificamente, cada candidato representa um diplótipo conjunto, e, sendo assim, cada candidato inclui cerca de quatro haplótipos, que podem ser apresentados nas equações a seguir como G = genótipo, em que G = os quatro haplótipos de uma única região diploide de um cromossomo do genoma, por exemplo, um diplótipo conjunto. Em tal caso, o que deve ser calculado é a probabilidade de realmente observar cada uma das bases de leitura candidatas identificadas das sequências nos acúmulos que assumem que são de fato a verdade. Essa determinação inicial pode ser realizada por um cálculo de haplótipo de HMM, conforme apresentado acima no presente documento.[0433] Accordingly, in determining the probability that a particular base is actually present at any one position, the identity of the base at that position can be determined based on the identity at that position in each region of each chromosome, e.g., each haplotype, which represents a viable candidate. Thus, for any given candidate, what is being determined is the identity of the given base at the position in question in each of the four haplotypes simultaneously. In particular, what is being determined is the probability of observing the reads from each of the stacks given the given likelihood. Specifically, each candidate represents a joint diplotype, and so each candidate includes about four haplotypes, which can be presented in the following equations as G = genotype, where G = the four haplotypes of a single diploid region of a chromosome of the genome, e.g., a joint diplotype. In such a case, what must be calculated is the probability of actually observing each of the candidate read bases identified from the sequences in the stacks that are assumed to be in fact the truth. This initial determination can be accomplished by an HMM haplotype calculation as presented above in this document.

[0434] Por exemplo, para um "Diplótipo Conjunto" = 4 Haplótipos: (Região A: HAIHA2, e Região B: HBIHB2 ) = G - P(R/G) conforme determinado por um HMM (Modelo de Erro) = n P(r/G) =[0434] For example, for a "Diplotype Set" = 4 Haplotypes: (Region A: HAIHA2, and Region B: HBIHB2 ) = G - P(R/G) as determined by an HMM (Error Model) = n P(r/G) =

[0435] Logo, se for assumido que o haplótipo específico Ha1 é a sequência verdadeira nessa região, e a leitura vier do mesmo, então, qual a chance de essa sequência de leitura Ha1 ter sido realmente observada. Consequentemente, o calculador de HMM funciona para determinar, assumindo-se que o haplótipo Ha1 seja o verdadeiro, qual é a probabilidade de realmente observar a dada sequência de leitura em questão.[0435] Therefore, if it is assumed that the specific haplotype Ha1 is the true sequence in that region, and the read comes from it, then what is the chance that this Ha1 read sequence was actually observed. Consequently, the HMM calculator works to determine, assuming that the Ha1 haplotype is the true one, what is the probability of actually observing the given read sequence in question.

[0436] Especificamente, se a leitura realmente corresponder ao haplótipo, a mesma será uma probabilidade muito alta, obviamente. Entretanto, se a leitura particular em questão não corresponder ao haplótipo, então, qualquer desvio do mesmo deve ser explicável por um erro científico, tal como um erro de sequenciamento ou mecanismo de sequenciamento e não uma variação real. Logo, o cálculo de HMM é uma função dos modelos de erro. Especificamente, o mesmo indaga qual é a probabilidade da combinação necessária de erros que poderia ter ocorrido de modo a observar as leituras particulares que são analisadas. Consequentemente, nesse modelo não apenas uma região está sendo considerada, mas uma multiplicidade de posições em uma multiplicidade de regiões em uma multiplicidade de filamentos está sendo considerada simultaneamente (por exemplo, em vez de considerar no máximo possivelmente dois haplótipos em uma região, agora o que está sendo considerado é simultaneamente a possibilidade de quatro haplótipos para qualquer dada posição em qualquer dada região, simultaneamente, com o uso de todos dados de leituras de todas as regiões em questão. Esses processos, por exemplo, podar a árvore, a detecção conjunta de múltiplas regiões e HMM PD, serão agora descritos em mais detalhes.[0436] Specifically, if the read does match the haplotype, then this is obviously a very high probability. However, if the particular read in question does not match the haplotype, then any deviation from it must be explainable by a scientific error, such as a sequencing error or sequencing mechanism, and not by actual variation. Thus, the calculation of HMM is a function of error patterns. Specifically, it asks what is the probability of the necessary combination of errors that could have occurred in order to observe the particular reads being analyzed. Consequently, in this model not just one region is being considered, but a multiplicity of positions in a multiplicity of regions in a multiplicity of strands are being considered simultaneously (e.g., instead of considering at most possibly two haplotypes in a region, now what is being considered is simultaneously the possibility of four haplotypes for any given position in any given region, simultaneously, using all the read data from all the regions in question. These processes, e.g., tree pruning, joint detection of multiple regions, and HMM PD, will now be described in more detail.

[0437] Especificamente, conforme pode ser observado em relação às Figuras 17 e 18, uma cadeia de processamento de alto nível é fornecida, tal como em que a cadeia de processamento pode incluir uma ou mais das seguintes etapas: Identificar e inserir regiões homólogas, realizar processamento das regiões homólogas inseridas, realizar uma leitura muito longa podada (VLRD) ou uma detecção conjunta de múltiplas regiões (MJRD),S e emitir um arquivo de chamada de variante. Particularmente, em relação a identificar regiões homólogas, um arquivo SAM e/ou BAM mapeado, alinhado e/ou classificado, por exemplo, um CRAM, pode ser usado como a entrada primária para um mecanismo de processamento de detecção conjunta de múltiplas regiões que implanta um algoritmo de MRJD, conforme descrito no presente documento. O mecanismo de processamento de MJRD pode ser parte de um circuito integrado, tal como uma CPU e/ou GPU e/ou plataforma de computação quântica, executando software, por exemplo, um algoritmo quântico, ou implantado dentro de um FPGA, ASIC ou similares. Por exemplo, o mapeador e/ou alinhador revelado acima pode ser usado para gerar um arquivo CRAM, por exemplo, com definições para emitir N alinhamentos secundários para cada leitura juntamente com os alinhamentos primários. Essas leituras primárias e secundárias podem ser, então, usadas para identificar uma lista de regiões homólogas, em que as regiões homólogas podem ser computadas com base em um limite de similaridade definido por usuário entre as N regiões do genoma de referência. Essa lista de regiões homólogas identificadas pode ser então alimentada ao estágio de pré-processamento de um módulo de MRJD adequadamente configurado.[0437] Specifically, as can be seen with respect to Figures 17 and 18 , a high-level processing chain is provided, such as wherein the processing chain may include one or more of the following steps: Identifying and inserting homologous regions, performing processing of the inserted homologous regions, performing a very long read pruning (VLRD) or a multiple region joint detection (MJRD), and outputting a variant call file. Particularly, with respect to identifying homologous regions, a mapped, aligned, and/or classified SAM and/or BAM file, e.g., a CRAM, may be used as the primary input to a multiple region joint detection processing engine that implements an MRJD algorithm as described herein. The MJRD processing engine may be part of an integrated circuit, such as a CPU and/or GPU and/or quantum computing platform, executing software, e.g., a quantum algorithm, or deployed within an FPGA, ASIC, or the like. For example, the mapper and/or aligner disclosed above can be used to generate a CRAM file, e.g., with settings to output N secondary alignments for each read along with the primary alignments. These primary and secondary reads can then be used to identify a list of homologous regions, where homologous regions can be computed based on a user-defined similarity threshold between the N regions of the reference genome. This list of identified homologous regions can then be fed to the preprocessing stage of an appropriately configured MRJD module.

[0438] Consequentemente, no estágio de pré-processamento, para cada conjunto de regiões homólogas, um acúmulo conjunto pode ser primeiramente gerado tal como com o uso dos alinhamentos primários a partir de um ou mais, por exemplo, cada uma, região no conjunto. Consultar, por exemplo, a Figura 19. Com o uso desse acúmulo conjunto, uma lista de posições variantes ativas/candidatas (SNPS/INDELs) pode ser, então, gerada de modo que cada uma dessas variantes candidatas possa ser processada e avaliada pelo mecanismo (ou mecanismos) de pré-processamento de MRJD. Para reduzir a complexidade computacional, pode ser computada uma matriz de conexão que pode ser usada para definir a ordem de processamento das variantes candidatas.[0438] Accordingly, in the preprocessing stage, for each set of homologous regions, a joint accumulation may first be generated such as using primary alignments from one or more, e.g., each, region in the set. See, e.g., Figure 19. Using this joint accumulation, a list of active/candidate variant positions (SNPS/INDELs) may then be generated such that each of these candidate variants may be processed and evaluated by the MRJD preprocessing engine(s). To reduce computational complexity, a connection matrix may be computed that may be used to define the order of processing of the candidate variants.

[0439] Em tais implantações, o algoritmo de detecção conjunta de múltiplas regiões avalia cada variante candidata identificada com base na ordem de processamento definida na matriz de conexão gerada. Primeiramente, um ou mais diplótipos conjuntos candidatos (Gi) podem ser gerados e dada uma variante candidata. Em seguida, as probabilidades a posteriori de cada um dos diplótipos conjuntos (P(Gi|R)) podem ser calculadas. A partir dessas probabilidades a posteriori, uma matriz de genótipo pode ser computada. Em seguida, N diplótipos com as probabilidades a posteriori mais baixas podem ser podados de modo a reduzir a complexidade computacional dos cálculos. Então, a variante candidata seguinte que fornece evidência para a variante candidata atual que é avaliada pode ser incluída no processo acima repetido. Tendo-se incluído informações tais como de uma ou mais, por exemplo, todas, as variantes candidatas de uma ou mais, por exemplo, todas, as regiões na região homóloga definida para a variante atual, uma chamada de variante pode ser realizada a partir da matriz de genotipagem final. Cada uma das posições ativas, portanto, pode ser avaliada da maneira acima, resultando, assim, em um arquivo VCF final.[0439] In such implementations, the multiple region joint detection algorithm evaluates each identified candidate variant based on the processing order defined in the generated connection matrix. First, one or more candidate joint diplotypes (Gi) may be generated and given a candidate variant. Then, the posterior probabilities of each of the joint diplotypes (P(Gi|R)) may be calculated. From these posterior probabilities, a genotype matrix may be computed. Then, N diplotypes with the lowest posterior probabilities may be pruned so as to reduce the computational complexity of the calculations. Then, the next candidate variant that provides evidence for the current candidate variant being evaluated may be included in the above repeated process. Having included information such as from one or more, e.g., all, candidate variants from one or more, e.g., all, regions in the homologous region defined for the current variant, a variant call may be performed from the final genotyping matrix. Each of the active positions can therefore be evaluated in the above manner, thus resulting in a final VCF file.

[0440] Particularmente, conforme pode ser observado em relação à Figura 17B, uma etapa de processamento de MJRD pode ser implantada, tal como incluindo uma ou mais das seguintes etapas e blocos: O acúmulo conjunto identificado e montado é carregado, uma lista de variantes candidatas é, então, criada a partir do acúmulo conjunto montado, e uma matriz de conexão é computada. Particularmente, em vários casos, uma metodologia de pré-processamento pode ser realizada, tal como antes de realizar uma ou mais operações de chamada de variante, tal como uma operação de detecção conjunta de múltiplas leituras. Tais operações podem incluir um ou mais blocos de pré-processamento, incluindo: as etapas pertencentes ao carregamento de acúmulos conjuntos, gerando uma lista de candidatos de variante a partir dos acúmulos conjuntos e computando a matriz de conexão. Cada um dos blocos e etapas potenciais associadas aos mesmos será agora discutido em mais detalhes.[0440] In particular, as can be seen with respect to Figure 17B, an MJRD processing step may be implemented, such as including one or more of the following steps and blocks: The identified and assembled joint accumulation is loaded, a list of candidate variants is then created from the assembled joint accumulation, and a connection matrix is computed. In particular, in various cases, a pre-processing methodology may be performed, such as prior to performing one or more variant calling operations, such as a multiple read joint detection operation. Such operations may include one or more pre-processing blocks, including: the steps pertaining to loading joint accumulations, generating a list of variant candidates from the joint accumulations, and computing the connection matrix. Each of the blocks and potential steps associated therewith will now be discussed in more detail.

[0441] Especificamente, um primeiro bloco de pré-processamento de acúmulo conjunto pode ser incluído no procedimento de análise. Por exemplo, várias regiões de referência para uma dada amplitude identificada podem ser extraídas, tal como a partir das leituras mapeadas e/ou alinhadas. Particularmente, com o uso da lista de regiões homólogas, um acúmulo conjunto para cada conjunto de regiões homólogas pode ser gerado. Em seguida, uma amplitude definida por usuário pode ser usada para extrair as N regiões de referência correspondentes a N regiões homólogas dentro de um conjunto. Subsequentemente, uma ou mais, por exemplo, todas, dentre as regiões de referência podem ser alinhadas, tal como com o uso de um alinhamento de Smith-Waterman, que pode ser usado para gerar um sistema de coordenadas universal de todas as bases nas N regiões de referência. Ademais, todas as leituras primárias correspondentes a cada região podem ser, então, extraídas do arquivo input SAM ou BAM de entrada e ser mapeadas às coordenadas universais. Esse mapeamento pode ser realizado, conforme descrito no presente documento, tal como com o uso das informações de alinhamento (CIGAR) presentes em um arquivo CRAM para cada leitura. No cenário em que alguns pares de leituras não foram anteriormente mapeados, as leituras podem ser mapeadas e/ou alinhadas, por exemplo, alinhadas por Smith-Waterman, a sua respectiva região de referência.[0441] Specifically, a first joint accumulation preprocessing block may be included in the analysis procedure. For example, multiple reference regions for a given identified range may be extracted, such as from the mapped and/or aligned reads. In particular, using the list of homologous regions, a joint accumulation for each set of homologous regions may be generated. Then, a user-defined range may be used to extract the N reference regions corresponding to N homologous regions within a range. Subsequently, one or more, e.g., all, of the reference regions may be aligned, such as using a Smith-Waterman alignment, which may be used to generate a world coordinate system of all bases in the N reference regions. Furthermore, all primary reads corresponding to each region may then be extracted from the input SAM or BAM file and mapped to the world coordinates. This mapping can be performed, as described in this document, such as using the alignment information (CIGAR) present in a CRAM file for each read. In the scenario where some read pairs have not been previously mapped, the reads can be mapped and/or aligned, e.g., aligned by Smith-Waterman, to their respective reference region.

[0442] Mais particularmente, uma vez que um acúmulo conjunto tenha sido gerado e carregado, consultar, por exemplo, a Figura 19, uma lista de variantes candidatas pode ser criada, tal como a partir do acúmulo conjunto. Por exemplo, um gráfico de De Bruijn (DBG) ou outro gráfico de montagem pode ser produzido de modo a extrair várias variantes candidatas (SNPs/Indels) que podem ser identificadas a partir do acúmulo conjunto. Uma vez que o DBG seja produzido, as várias bolhas no gráfico podem ser extraídas de modo a derivar uma lista de candidatos de variante.[0442] More particularly, once a pooled build has been generated and loaded, see e.g. Figure 19, a list of candidate variants may be created, such as from the pooled build. For example, a De Bruijn graph (DBG) or other assembly graph may be produced in order to extract multiple candidate variants (SNPs/Indels) that can be identified from the pooled build. Once the DBG is produced, the various bubbles in the graph may be extracted in order to derive a list of variant candidates.

[0443] Particularmente, dadas todas as leituras, um gráfico pode ser gerado com o uso de cada região de referência como uma cadeia principal. Todas as posições de variante candidata identificadas podem ser, então, alinhadas às coordenadas universais. Uma matriz de conexão pode ser, então, computada, em que a matriz define a ordem de processamento das posições ativas, que pode ser uma função do comprimento de leitura e/ou tamanho de inserção. Conforme mencionado no presente documento, a Figura 19 mostra um exemplo de um acúmulo conjunto de duas regiões homólogas no cromossomo 1. Embora esse acúmulo seja com referência a duas regiões homólogas do cromossomo 1, o mesmo é pra propósitos exemplificativos apenas, visto que a produção do processo de acúmulo pode ser usada para qualquer e todas as regiões homólogas a despeito do cromossomo.[0443] In particular, given all reads, a graph can be generated using each reference region as a backbone. All identified candidate variant positions can then be aligned to world coordinates. A connection matrix can then be computed, where the matrix defines the processing order of the active positions, which can be a function of read length and/or insert size. As mentioned herein, Figure 19 shows an example of a joint stacking of two homologous regions on chromosome 1. Although this stacking is with reference to two homologous regions of chromosome 1, it is for exemplary purposes only, since the output of the stacking process can be used for any and all homologous regions regardless of chromosome.

[0444] Conforme pode ser visto em relação à Figura 20, uma lista de variantes candidatas pode ser criada conforme segue. Primeiramente, um acúmulo conjunto pode ser formado e um gráfico de De Bruijn (DBG) ou outro gráfico de montagem pode ser construído, em conformidade com os métodos revelados no presente documento. O DBG pode ser, então, usado para extrair as variantes candidatas dos acúmulos conjuntos. A construção do DBG é realizada de tal maneira a gerar bolhas, indicando variações, representando trajetórias alternativas através de gráfico, em que cada caminho alternativo é um haplótipo candidato. Consultar, por exemplo, as Figuras 20 e 21.[0444] As can be seen from Figure 20, a list of candidate variants can be created as follows. First, a cluster can be formed and a De Bruijn graph (DBG) or other assembly graph can be constructed, in accordance with the methods disclosed herein. The DBG can then be used to extract candidate variants from the clusters. The construction of the DBG is performed in such a manner as to generate bubbles, indicating variations, representing alternative trajectories through the graph, where each alternative path is a candidate haplotype. See, for example, Figures 20 and 21.

[0445] Consequentemente, as várias bolhas no gráfico representam a lista de posições de haplótipo de variante candidata. Logo, dadas todas as leituras, o DBG pode ser gerado com o uso de cada região de referência como uma cadeia principal. Então, todas as posições de variante candidata podem ser alinhadas a coordenadas universais. Especificamente, a Figura 20 ilustra um fluxograma que apresenta o processo de gerar um DBG e usar o mesmo para produzir haplótipos candidatos. Mais especificamente, o gráfico de De Bruijn pode ser empregado a fim de criar a lista de variantes candidatas de SNPs e INDELs. Dado que há N regiões que estão sendo juntamente processadas por MRJD, N gráficos de de-bruijn podem ser construídos. Em tal caso, cada gráfico pode usar uma região de referência como uma cadeia principal e todas as leituras correspondentes às N regiões.[0445] Accordingly, the various bubbles in the graph represent the list of candidate variant haplotype positions. Then, given all the reads, the DBG can be generated using each reference region as a backbone. Then, all candidate variant positions can be aligned to world coordinates. Specifically, Figure 20 illustrates a flowchart that presents the process of generating a DBG and using it to produce candidate haplotypes. More specifically, the De Bruijn graph can be employed to create the list of candidate variants from SNPs and INDELs. Given that there are N regions that are being jointly processed by MRJD, N de-bruijn graphs can be constructed. In such a case, each graph can use one reference region as a backbone and all the reads corresponding to the N regions.

[0446] Por exemplo, em uma implantação metodológica, após o DBG ser construído, os haplótipos candidatos podem ser extraídos do gráfico de De Bruijn com base nos eventos candidatos. Entretanto, ao empregar um protocolo de pré- processamento de MRJD, conforme descrito no presente documento, N regiões podem ser juntamente processadas, tal como em que o comprimento das regiões pode ser de algumas milhares de bases ou mais, e o número de haplótipos a serem extraídos pode crescer exponencialmente de modo muito rápido. Consequentemente, a fim de reduzir a complexidade computacional, em vez de extrair haplótipos inteiros, apenas as bolhas precisam ser extraídas dos gráficos que são representativos das variantes candidatas.[0446] For example, in one methodological implementation, after the DBG is constructed, candidate haplotypes can be extracted from the De Bruijn graph based on the candidate events. However, by employing an MRJD preprocessing protocol as described herein, N regions can be processed together, such as where the length of the regions can be a few thousand bases or more, and the number of haplotypes to be extracted can grow exponentially very quickly. Consequently, in order to reduce computational complexity, instead of extracting entire haplotypes, only the blobs need to be extracted from the graphs that are representative of the candidate variants.

[0447] Um exemplo de estruturas de bolha formadas em um gráfico de De Bruijn é mostrado na Figura 21. Diversas regiões a serem processadas juntamente são identificadas. Isso determina uma de duas trajetórias de processamento que podem ser seguidas. Se regiões conjuntas forem identificadas, todas as leituras podem ser usadas para formar um DBG. As bolhas que mostra possíveis variantes podem ser extraídas de modo a identificar os vários haplótipos candidatos. Especificamente, para cada bolha, um alinhamento SW pode ser realizado nos caminhos alternativos à cadeia principal de referência. Para isso, as variantes candidatas podem ser extraídas e os eventos de cada gráfico podem ser armazenados.[0447] An example of bubble structures formed in a De Bruijn graph is shown in Figure 21. Several regions to be processed together are identified. This determines one of two processing trajectories that can be followed. If joint regions are identified, all reads can be used to form a DBG. Bubbles showing possible variants can be extracted in order to identify the various candidate haplotypes. Specifically, for each bubble, a SW alignment can be performed on the alternative paths to the reference backbone. For this, candidate variants can be extracted and the events of each graph can be stored.

[0448] Entretanto, em outros casos, uma vez que o primeiro processo tenha sido realizado, de modo a gerar um ou mais DBGs, e/ou i é agora igual a 0, então, a união de todos os eventos candidatos de todos os DBGs pode ser gerada, em que quaisquer duplicatas podem ser removidas. Em tal caso, todas as variantes candidatas podem ser mapeadas, tal como a um sistema de coordenadas universais, de modo a produzir a lista de candidatos, e a lista de variantes candidatas pode ser enviada como uma entrada para um módulo de poda, tal como o módulo de MJRD. Um exemplo de apenas realizar extração de bolha, em vez de extrair os haplótipos inteiros, é mostrado na Figura 22. Nesse caso, é apenas a região de bolha que mostra variantes possíveis que é extraída e processada, conforme descrito no presente documento.[0448] However, in other cases, once the first process has been performed, so as to generate one or more DBGs, and/or i is now equal to 0, then the union of all candidate events from all DBGs can be generated, where any duplicates can be removed. In such a case, all candidate variants can be mapped, such as to a universal coordinate system, so as to produce the list of candidates, and the list of candidate variants can be sent as an input to a pruning module, such as the MJRD module. An example of only performing bubble extraction, rather than extracting the entire haplotypes, is shown in Figure 22. In this case, it is only the bubble region showing possible variants that is extracted and processed, as described herein.

[0449] Especificamente, uma vez que as bolhas representativas tenham sido extraídas, o alinhamento global, por exemplo, alinhamento de Smith-Waterman, do caminho de bolha e a cadeia principal de referência correspondente pode ser realizado para obter a variante (ou variantes) candidata e sua posição na referência. Isso pode ser realizado para todas as bolhas extraídas em todo o gráfico de De Bruijn. Em seguida, a união de todas as variantes candidatas extraídas pode ser tomada dos N gráficos, os candidatos duplicados, caso haja, podem ser removidos, e as posições de variante candidata exclusivas podem ser mapeadas ao sistema de coordenadas universal obtido a partir do acúmulo conjunto. Isso resulta em uma lista final de posições de variante candidata para as N regiões que podem atuar como uma entrada para um algoritmo de MRJD "Podado".[0449] Specifically, once the representative blobs have been extracted, global alignment, e.g. Smith-Waterman alignment, of the blob path and the corresponding reference backbone can be performed to obtain the candidate variant(s) and their position in the reference. This can be performed for all extracted blobs in the entire De Bruijn graph. Then, the union of all extracted candidate variants can be taken from the N graphs, duplicate candidates, if any, can be removed, and the unique candidate variant positions can be mapped to the universal coordinate system obtained from the joint accumulation. This results in a final list of candidate variant positions for the N regions that can act as an input to a "Pruned" MRJD algorithm.

[0450] Em blocos de pré-processamento particulares, conforme descrito acima no presente documento, uma matriz de conexão pode ser computada. Por exemplo, uma matriz de conexão pode ser usada para definir a ordem de processamento de posições ativas, por exemplo, candidatas, tais como uma função de comprimento de leitura e tamanho de inserção. Por exemplo, para reduzir ainda mais a complexidade computacional, uma matriz de conexão pode ser computada de modo a definir a ordem de processamento de variantes candidatas identificadas que são obtidas a partir do gráfico de De Bruijn. Essa matriz pode ser construída e empregada em conjunto com ou como uma função de classificação para determinar quais variantes candidatas processar primeiramente. Essa matriz de conexão, portanto, pode ser uma função do comprimento de leitura médio e o tamanho de inserção das leituras de extremidade pareada. Consequentemente, para uma dada variante candidata, outras posições de variante candidata que estão em múltiplos integrais do tamanho de inserção ou dentro do comprimento de leitura têm pesos mais altos em comparação com as variantes candidatas em outras posições. Isso se deve ao fato de que essas variantes candidatas têm mais probabilidade de fornecer evidência para a variante atual que é avaliada. Uma função de classificação exemplificativa, conforme implantado no presente documento, é mostrada na Figura 23 para o comprimento de leitura médio de 101 e tamanho de inserção de 300.[0450] In particular preprocessing blocks, as described above herein, a connection matrix may be computed. For example, a connection matrix may be used to define the order of processing of active, e.g., candidate positions, such as a function of read length and insert size. For example, to further reduce computational complexity, a connection matrix may be computed so as to define the order of processing of identified candidate variants that are obtained from the De Bruijn graph. Such a matrix may be constructed and employed in conjunction with or as a ranking function to determine which candidate variants to process first. Such a connection matrix, therefore, may be a function of the average read length and the insert size of the paired-end reads. Consequently, for a given candidate variant, other candidate variant positions that are at integral multiples of the insert size or within the read length have higher weights compared to candidate variants at other positions. This is because these candidate variants are more likely to provide evidence for the current variant being evaluated. An exemplary ranking function, as deployed in this paper, is shown in Figure 23 for an average read length of 101 and insert size of 300.

[0451] Em relação a uma função de poda de MJRD, etapas exemplificativas de um algoritmo de MRJD podado, conforme referido acima, são apresentadas na Figura 24. Por exemplo, a entrada à plataforma e ao algoritmo de MRJD é o acúmulo conjunto de N regiões, por exemplo, todas as variantes candidatas (SNPs/ INDELs), as probabilidades a priori baseadas em um modelo de mutação e a matriz de conexão. Consequentemente, a entrada na plataforma de processamento de MRJD podada pode ser o acúmulo conjunto, as posições ativas identificadas, a matriz de conexão gerada e o modelo de probabilidade a posteriori e/ou os resultados dos mesmos.[0451] With respect to an MJRD pruning function, exemplary steps of a pruned MRJD algorithm as referred to above are shown in Figure 24. For example, the input to the MRJD platform and algorithm is the joint accumulation of N regions, e.g., all candidate variants (SNPs/INDELs), the a priori probabilities based on a mutation model, and the connection matrix. Accordingly, the input to the pruned MRJD processing platform may be the joint accumulation, the identified active positions, the generated connection matrix, and the a posteriori probability model and/or the results thereof.

[0452] Em seguida, cada variante candidata na lista pode ser processa e outras variantes podem ser sucessivamente adicionadas como evidência para um candidato atual que é processado com o uso da matriz de conexão. Consequentemente, dada a variante candidata atual e quaisquer candidatos de suporte, diplótipos conjuntos candidatos podem ser gerados. Por exemplo, um diplótipo conjunto é um conjunto de 2 N haplótipos, em que N é o número de regiões que são processadas juntamente. O número de diplótipos conjuntos candidatos M é uma função do número de regiões que são processadas juntamente, do número de variantes ativas/candidatas que são consideradas, e o número de fases. Um exemplo para gerar diplótipos conjuntos é mostrado abaixo.Para: P = 1 , Número de posições de variante ativa/candidata que são consideradas;N = 2, Número de regiões que são processadas juntamente;M = 2<2 N P>= 24= 16 diplótipos conjuntos candidatos[0452] Next, each candidate variant in the list can be processed and other variants can be successively added as evidence for a current candidate that is processed using the connection matrix. Consequently, given the current candidate variant and any supporting candidates, candidate joint diplotypes can be generated. For example, a joint diplotype is a set of 2N haplotypes, where N is the number of regions that are processed together. The number of candidate joint diplotypes M is a function of the number of regions that are processed together, the number of active/candidate variants that are considered, and the number of phases. An example for generating joint diplotypes is shown below. For: P = 1 , Number of active/candidate variant positions that are considered; N = 2, Number of regions that are processed together; M = 2<2 N P>= 24= 16 candidate joint diplotypes

[0453] Logo, para uma única posição ativa candidata, dadas todas as leituras e ambas as regiões de referência, deixa-se os dois haplótipos serem 'A' e 'G'.Haplótipos exclusivos = 'A' e 'G'Diplótipos candidatos = 'AA', 'AG', 'GA' e 'GG', (4 candidatos para 1 região).Diplótipos conjuntos candidatos =[0453] Therefore, for a single candidate active position, given all reads and both reference regions, let the two haplotypes be 'A' and 'G'.Unique haplotypes = 'A' and 'G'Candidate diplotypes = 'AA', 'AG', 'GA' and 'GG', (4 candidates for 1 region).Candidate joint diplotypes =

[0454] Consequentemente, com o uso dos diplótipos conjuntos candidatos, as probabilidades de leitura podem ser calculadas dado um haplótipo para cada haplótipo em todo o conjunto de diplótipos conjuntos candidatos. Isso pode ser realizado com o uso de um algoritmo de HMM, conforme descrito no presente documento. Entretanto, fazendo isso, o algoritmo de HMM pode ser modificado em relação a seu caso de uso padrão de modo a permitir que as variantes candidatas (SNPs/INDELs) no haplótipo, que não foi ainda processado, sejam consideradas. Subsequentemente, as probabilidades de leitura podem ser calculadas dado um diplótipo conjunto (P(ri|Gm)) com o uso dos resultados do HMM modificado. Isso pode ser realizado com o uso da fórmula abaixo.[0454] Accordingly, using the candidate diplotype sets, read probabilities can be calculated given a haplotype for each haplotype in the entire set of candidate diplotype sets. This can be accomplished using an HMM algorithm as described herein. However, in doing so, the HMM algorithm can be modified from its standard use case to allow candidate variants (SNPs/INDELs) in the haplotype that have not yet been processed to be considered. Subsequently, read probabilities can be calculated given a diplotype set (P(ri|Gm)) using the results of the modified HMM. This can be accomplished using the formula below.

[0455] Para o caso de detecção conjunta de 2 regiões: em que i é a região e j é a faseé simples calcular P(R|Gm) para todas as leituras. Em seguida, com o uso da fórmula de Bayes, a probabilidade a posteriori (P(Gi|R)) pode ser computada a partir de P(R|Gi) e as probabilidades a priori (P(Gj)).[0455] For the case of joint detection of 2 regions: where i is the region and j is the phase, it is straightforward to calculate P(R|Gm) for all readings. Then, using Bayes' formula, the posterior probability (P(Gi|R)) can be computed from P(R|Gi) and the prior probabilities (P(Gj)).

[0456] Ademais, uma matriz de genótipo intermediária pode ser calculada para cada região dadas as probabilidades a posteriori para todos os diplótipos conjuntos candidatos. Para cada combinação de eventos na matriz de genótipo, as probabilidades a posteriori de todos os diplótipos conjuntos que suportam esse evento podem ser somadas. Nesse ponto, a matriz de genótipo pode ser considerada como "intermediária" devido ao fato de que toda as variantes candidatas que suportam o candidato atual foram incluídas. Entretanto, conforme visto anteriormente, o número de candidatos de diplótipo conjunto cresce exponencialmente com o número de posições de variante candidata e o número de regiões. Isso, por sua vez, aumenta exponencialmente a computação exigida para calcular as probabilidades a posteriori. Portanto, a fim de reduzir a complexidade computacional, nesse estágio, o número de diplótipos conjuntos baseados nas probabilidades a posteriori pode ser podado de modo que o número de diplótipos conjuntos mantidos possa ser definido e programável por usuário. Finalmente, a matriz de genótipo final pode ser atualizada com base em uma métrica de confiança definida por usuário de variantes que é computada com o uso da matriz de genótipo intermediária. As várias etapas desses processos são apresentadas no fluxograma de processo da Figura 24.[0456] Furthermore, an intermediate genotype matrix can be computed for each region given the posterior probabilities for all candidate joint diplotypes. For each combination of events in the genotype matrix, the posterior probabilities of all joint diplotypes supporting that event can be summed. At this point, the genotype matrix can be considered as "intermediate" due to the fact that all candidate variants supporting the current candidate have been included. However, as seen previously, the number of joint diplotype candidates grows exponentially with the number of candidate variant positions and the number of regions. This in turn exponentially increases the computation required to compute the posterior probabilities. Therefore, in order to reduce computational complexity, at this stage, the number of joint diplotypes based on the posterior probabilities can be pruned such that the number of joint diplotypes maintained is user-defined and programmable. Finally, the final genotype matrix can be updated based on a user-defined confidence metric of variants that is computed using the intermediate genotype matrix. The various steps of these processes are shown in the process flowchart in Figure 24.

[0457] O processo acima pode ser repetido até todas as variantes candidatas serem incluídas como evidência para os candidatos atuais que são processados com o uso da matriz de conexão. Uma vez que todos os candidatos tenham sido incluídos, o processamento do candidato atual é realizado. Outros critérios de interrupção para o processamento de variantes candidatas são também possíveis. Por exemplo, o processo pode ser interrompido quando a confiança tiver parado de aumentar conforme mais variantes candidatas são adicionadas. Essa análise, conforme exemplificado na Figura 24, pode ser reiniciada e repetida da mesma maneira para todas as outras variantes candidatas na lista, resultando, assim, em um arquivo de chamada de variante final na saída da MRJD. Consequentemente, em vez de considerar cada região isoladamente, um protocolo de detecção conjunta de múltiplas regiões, conforme descrito no presente documento, pode ser empregado de modo a considerar todos os locais dos quais um grupo de leituras pode ter se originado conforme tenta detectar as sequências subjacentes conjuntamente com o uso de todas as informações disponíveis.[0457] The above process may be repeated until all candidate variants are included as evidence for the current candidates that are processed using the connection matrix. Once all candidates have been included, processing of the current candidate is performed. Other stopping criteria for processing candidate variants are also possible. For example, the process may be stopped when the confidence has stopped increasing as more candidate variants are added. This analysis, as exemplified in Figure 24, may be restarted and repeated in the same manner for all other candidate variants in the list, thus resulting in a final variant call file in the MRJD output. Consequently, rather than considering each region in isolation, a multi-region joint detection protocol, as described herein, may be employed to consider all locations from which a group of reads may have originated as it attempts to detect the underlying sequences together using all available information.

[0458] Consequentemente, para detecção conjunta de múltiplas regiões, um protocolo de MRJD exemplificativo pode empregar uma ou mais das seguintes equações em conformidade com os métodos revelados no presente documento. Especificamente, em vez de considerar cada região a ser avaliada isoladamente, a MRJD considera uma pluralidade de locais dos quais um grupo de leituras pode ter sido originado e tenta detectar as sequências subjacentes conjuntamente, tal como com o uso do máximo possível, por exemplo, todas, das informações disponíveis que são úteis. Por exemplo, em uma modalidade exemplificativa:[0458] Accordingly, for joint detection of multiple regions, an exemplary MRJD protocol may employ one or more of the following equations in accordance with the methods disclosed herein. Specifically, rather than considering each region to be evaluated in isolation, MRJD considers a plurality of locations from which a group of reads may have originated and attempts to detect the underlying sequences jointly, such as using as much, e.g., all, of the available information that is useful. For example, in an exemplary embodiment:

[0459] N é o número de regiões a serem processadas conjuntamente. E Hk é um haplótipo candidato, k = 1...K, em que cada um dos mesmos pode incluir vários SNPs, inserções e/ou deleções em relação a uma sequência de referência. Cada haplótipo Hk representa uma única região ao longo de um único filamento (ou "fase", por exemplo, maternal ou paternal), e não precisam ser contíguos (por exemplo, podem incluir lacunas ou sequências "sem importância").[0459] N is the number of regions to be processed together. And Hk is a candidate haplotype, k = 1...K, each of which may include multiple SNPs, insertions and/or deletions relative to a reference sequence. Each Hk haplotype represents a single region along a single strand (or "phase", e.g., maternal or paternal), and need not be contiguous (e.g., may include gaps or "unimportant" sequences).

[0460] Gm é uma solução candidata para ambas as fases Φ = 1,2 (para um organismo diploide) e todas as regiões n = 1...N:em que cada elemento Gm,Φ,n é um haplótipo escolhido dentro o conjunto de candidatos {HI ...Hk}.[0460] Gm is a candidate solution for both phases Φ = 1,2 (for a diploid organism) and all regions n = 1...N:where each element Gm,Φ,n is a haplotype chosen from the candidate set {HI ...Hk}.

[0461] Primeiramente, a probabilidade de cada leitura pode ser calculada para cada haplótipo candidato P(ri|Hk), por exemplo, com o uso de um Modelo Oculto de Markov (HMM). No caso de conjuntos de dados com leituras pareadas, ri indica o par {ri,1, ri;2}, e P(ri|Hk) = P(ri,1|Hk) P(ri,2|Hk). No caso de conjuntos de dados com leituras ligadas (por exemplo, leituras com código de barras), n indica o grupo de leituras {ri,1...ri;NL} que se origina da mesma molécula longa, e .[0461] First, the probability of each read can be calculated for each candidate haplotype P(ri|Hk), for example using a Hidden Markov Model (HMM). In the case of datasets with paired reads, ri denotes the pair {ri,1, ri;2}, and P(ri|Hk) = P(ri,1|Hk) P(ri,2|Hk). In the case of datasets with linked reads (e.g. barcoded reads), n denotes the group of reads {ri,1...ri;NL} that originate from the same long molecule, and .

[0462] Em seguida, para cada solução candidato Gm, m=1 ...M, calcula-se a probabilidade condicional de cada leitura e a probabilidade condicional do acúmulo inteiro .[0462] Then, for each candidate solution Gm, m=1 ...M, the conditional probability of each reading and the conditional probability of the entire accumulation are calculated.

[0463] Em seguida, é calculada a probabilidade a posteriori de cada solução candidata dado o acúmulo observado: em que P(Gm) indica a probabilidade a priori da solução candidata, que é apresentada em detalhes aqui abaixo.[0463] Next, the a posteriori probability of each candidate solution given the observed accumulation is calculated: where P(Gm) indicates the a priori probability of the candidate solution, which is presented in detail below.

[0464] Finalmente, a probabilidade relativa de cada variante candidata Vj é calculada , tal como em que Gm Vj indica que Gm suporta a variante Vj, e Gm ref indica que Gm suporta a referência. Em um arquivo VCF, isso pode ser relatado como uma pontuação de qualidade em uma escala phred:[0464] Finally, the relative probability of each candidate variant Vj is calculated, such as where Gm Vj indicates that Gm supports variant Vj, and Gm ref indicates that Gm supports the reference. In a VCF file, this can be reported as a quality score on a phred scale:

[0465] Um processo exemplificativo para realizar várias operações de chamada de variante é apresentado no presente documento em relação à Figura 25, em que um processo de detecção convencional e MRJD é comparado. Especificamente, a Figura 25 ilustra um acúmulo conjunto de leituras pareadas para duas regiões cujas sequências de referência diferem em apenas 3 bases em relação à faixa de interesse. Todas as leituras são sabidamente originadas da região no 1 ou região no 2, mas não se sabe ao certo de qual região qualquer leitura individual originou-se. Observa-se, conforme descrito acima, que as bases são apenas mostradas para as posições em que as duas referências diferem, por exemplo, regiões de bolha, ou em que as leituras diferem da referência. Essas regiões são denominadas como as posições ativas. Todas as outras posições podem ser ignoradas, visto que não afetam o cálculo.[0465] An exemplary process for performing various variant calling operations is presented herein with respect to Figure 25, where a conventional detection and MRJD process are compared. Specifically, Figure 25 illustrates a joint accumulation of paired reads for two regions whose reference sequences differ by only 3 bases relative to the range of interest. All reads are known to originate from either region #1 or region #2, but it is not known for certain which region any individual read originated from. Note, as described above, that bases are only shown for positions where the two references differ, e.g., bubble regions, or where the reads differ from the reference. These regions are referred to as the active positions. All other positions can be ignored, as they do not affect the calculation.

[0466] Consequentemente, conforme pode ser observado em relação à Figura 25, em um detector convencional, os pares de leituras 1 a 16 poderiam ser mapeados à região no 2, e esses sozinhos poderiam ser usados para chamada de variante na região no 2. Todas essas leituras correspondem à referência para a região no 2, então, nenhuma variante poderia ser chamada. De modo semelhante, os pares de leituras 17 a 23 poderiam ser mapeados à região no 1, e esses sozinhos poderiam ser usados para chamada de variante na região no1. Conforme pode ser visto, todas essas leituras correspondem à referência para a região no 1, então, nenhuma variante será chamada. Entretanto, os pares de leituras 24 a 32 mapeiam- se igualmente bem à região no 1 e região no 2 (cada uma tem uma diferença de uma base em relação à ref no 1 e ref no 2), assim, o mapeamento é indeterminado, e um chamador de variante típico poderiam simplesmente ignorar essas leituras. Como tal, um chamador de variante convencional poderia não produzir nenhuma chamada de variante para qualquer região, conforme visto na Figura 25.[0466] Consequently, as can be seen from Figure 25, in a conventional detector, read pairs 1-16 could be mapped to region #2, and these alone could be used for variant calling in region #2. All of these reads match the reference for region #2, so no variants could be called. Similarly, read pairs 17-23 could be mapped to region #1, and these alone could be used for variant calling in region #1. As can be seen, all of these reads match the reference for region #1, so no variants would be called. However, read pairs 24-32 map equally well to region #1 and region #2 (each has a one base difference from ref #1 and ref #2), so the mapping is indeterminate, and a typical variant caller could simply ignore these reads. As such, a conventional variant caller might not produce any variant calls for any region, as seen in Figure 25.

[0467] Entretanto, com MRJD, a Figura 25 ilustra que o resultado é completamente diferente daquele recebido empregando-se métodos convencionais. Os cálculos relevantes são apresentados abaixo. Nesse caso, N = 2 regiões. Adicionalmente, há três posições, cada uma com 2 bases candidatas (uma pode ignorar com segurança bases cuja contagem é suficientemente baixa e, nesse exemplo, a contagem é zero em todas exceto 2 bases em cada posição). Se todas as combinações forem consideradas, isso produzirá = 23= 8 haplótipos candidatos: Hi = CAT, H2= CAA, H3= CCT, H4= CCA, H5= GAT, H6= GAA, H7= GCT, H8= GCA.[0467] However, with MRJD, Figure 25 illustrates that the result is completely different from that obtained using conventional methods. The relevant calculations are presented below. In this case, N = 2 regions. Additionally, there are three positions, each with 2 candidate bases (one can safely ignore bases whose count is sufficiently low, and in this example the count is zero in all but 2 bases at each position). If all combinations are considered, this yields = 23= 8 candidate haplotypes: Hi = CAT, H2= CAA, H3= CCT, H4= CCA, H5= GAT, H6= GAA, H7= GCT, H8= GCA.

[0468] Em um cálculo de força bruta, em que todas as combinações de todos os haplótipos candidatos são consideradas, o número de soluções candidatas é M = K2N = 82,2 = 4.096, e P(Gm/R) pode ser calculado para cada solução candidata Gm. O seguinte ilustra esse cálculo para duas soluções candidatas:Em que Gmi não tem variantes (essa é a solução encontrada por um detector convencional), e Gm2 tem um único SNP heterozigoto A >C na posição no 2 da região no 1.[0468] In a brute force calculation, where all combinations of all candidate haplotypes are considered, the number of candidate solutions is M = K2N = 82.2 = 4096, and P(Gm/R) can be calculated for each candidate solution Gm. The following illustrates this calculation for two candidate solutions: Where Gmi has no variants (this is the solution found by a conventional detector), and Gm2 has a single heterozygous SNP A > C at position #2 of region #1.

[0469] A probabilidade P(ri|Hk) depende de vários fatores, incluindo a qualidade de base e outros parâmetros do HMM. Pode-se assumir que apenas erros de chamada de base estão presentes e todos os erros de chamada de base são igualmente prováveis, assim , em que pe é a probabilidade de um erro de chamada de base, Np(i) é o número de posições de base ativas sobrepostas pela leitura i, e Ne(i) é o número de erros para a leitura i, assumindo-se o haplótipo Hk. Consequentemente, pode-se assumir que pe= 0,01, o que correspondente a uma qualidade de base de phred 20. A tabela apresentada na Figura 26 mostra P(ri|Hk), para todos os pares de leitura e todos os haplótipos candidatos. As duas colunas mais à direita mostram P(ri|Gmi) e P(ri|Gm2 ), com o produto na parte inferior. A Figura 26 mostra que P(R|Gmi) = 3,5’30 e P(R|Gm2 ) = 2,2-15, uma diferença de 15 ordens de magnitude em favor de Gm2[0469] The probability P(ri|Hk) depends on several factors, including base quality and other HMM parameters. It can be assumed that only base calling errors are present and all base calling errors are equally likely, thus , where pe is the probability of a base calling error, Np(i) is the number of active base positions overlapped by read i, and Ne(i) is the number of errors for read i, assuming haplotype Hk. Consequently, it can be assumed that pe = 0.01, which corresponds to a base quality of phred 20. The table presented in Figure 26 shows P(ri|Hk), for all read pairs and all candidate haplotypes. The two rightmost columns show P(ri|Gmi) and P(ri|Gm2 ), with the product at the bottom. Figure 26 shows that P(R|Gmi) = 3.5'30 and P(R|Gm2 ) = 2.2-15, a difference of 15 orders of magnitude in favor of Gm2

[0470] As probabilidades a posteriori P(Gm|R) dependem das probabilidades a priori P(Gm). Para concluir esse exemplo, um modelo identicamente distribuído independente simples (IID) pode ser assumido, de modo que a probabilidade a priori de uma solução candidata com Nv variantes é , em que Np é o número de posições ativas (3 nesse caso) e Pv é a probabilidade de uma variante, assumida como sendo 0,01 nesse exemplo. Isso produz P(Gm) = 7,22e-13, e P(Gm2 ) = 0,500. Nota-se que Gm2 é heterozigoto sobre a região no 1, e todos os pares heterozigotos de haplótipos têm uma representação de imagem em espelho com a mesma probabilidade (obtida simplesmente varrendo-se essas). Nesse caso, a soma das probabilidades para Gm2 e sua imagem em espelho soma 1,000. Calculando-se as probabilidades de variantes individuais, um SNP A C heterozigoto na posição no 2 da região no1, com pontuação de qualidade de phred 50,4, pode ser visto.[0470] The posterior probabilities P(Gm|R) depend on the prior probabilities P(Gm). To complete this example, a simple independent identically distributed (IID) model can be assumed, so that the prior probability of a candidate solution with Nv variants is , where Np is the number of active positions (3 in this case) and Pv is the probability of a variant, assumed to be 0.01 in this example. This yields P(Gm) = 7.22e-13, and P(Gm2 ) = 0.500. Note that Gm2 is heterozygous over the no 1 region, and all heterozygous pairs of haplotypes have a mirror image representation with the same probability (obtained by simply sweeping these). In this case, the sum of the probabilities for Gm2 and its mirror image sums to 1.000. By calculating the probabilities of individual variants, a heterozygous SNP AC at position no. 2 of region no. 1, with a phred quality score of 50.4, can be seen.

[0471] Consequentemente, conforme pode ser visto, há uma imensa complexidade computacional para realizar uma operação de chamada de variante de força bruta, em que a complexidade pode ser reduzida realizando-se detecção conjunta de múltiplas regiões, conforme descrito no presente documento. Por exemplo, a complexidade dos cálculos acima cresce rapidamente com o número de regiões N e o número de haplótipos candidatos K. Para considerar todas as combinações de haplótipos candidatos, o número de soluções candidatas para as quais calcular as probabilidades é M = K2N. Em uma implantação de força bruta, o número de haplótipos candidatos é K = 2Np, em que Np é o número de posições ativas (por exemplo, conforme exemplificado acima, se técnicas de montagem de gráfico forem usadas, a lista de haplótipos candidatos, então, Np é o número de bolhas independentes no gráfico). Logo, um mero cálculo de força bruta pode ser proibitivamente dispendioso de implantar. Por exemplo, se N = 3 e Np =10, o número de soluções candidatas é M = 23.2.10 = 260 = 1018. Entretanto, na prática, não é incomum ter valores de Np muito maiores que isso.[0471] Consequently, as can be seen, there is immense computational complexity to performing a brute-force variant calling operation, where the complexity can be reduced by performing joint detection of multiple regions, as described herein. For example, the complexity of the above calculations grows rapidly with the number of regions N and the number of candidate haplotypes K. To consider all combinations of candidate haplotypes, the number of candidate solutions for which to calculate probabilities is M = K2N. In a brute-force implementation, the number of candidate haplotypes is K = 2Np, where Np is the number of active positions (e.g., as exemplified above, if graph-fitting techniques are used, the list of candidate haplotypes, then Np is the number of independent blobs in the graph). Thus, a mere brute-force calculation can be prohibitively expensive to implement. For example, if N = 3 and Np = 10, the number of candidate solutions is M = 23.2.10 = 260 = 1018. However, in practice, it is not uncommon to have values of Np much larger than this.

[0472] Consequentemente, devido ao fato de que um cálculo bayesiano de força bruta pode ser proibitivamente complexo, a descrição a seguir apresenta outros métodos para reduzir a complexidade de tais cálculos. Por exemplo, em uma primeira etapa de outra modalidade, começando com um pequeno número de posições , (ou mesmo uma única posição = 1), o cálculo bayesiano pode ser realizado através dessas posições. Ao final do cálculo, os candidatos cuja probabilidade está abaixo de um limite predefinido podem ser eliminados, tal como em uma poda da função de árvore, conforme descrito acima. Em tal caso, o limite pode ser adaptável.[0472] Accordingly, because a brute-force Bayesian computation can be prohibitively complex, the following description presents other methods for reducing the complexity of such computations. For example, in a first step of another embodiment, starting with a small number of positions , (or even a single position = 1), the Bayesian computation can be performed through these positions. At the end of the computation, candidates whose probability is below a predefined threshold can be eliminated, such as in a tree function pruning as described above. In such a case, the threshold can be adaptive.

[0473] Em seguida, em uma segunda etapa, o número de posições pode ser aumentado em um número pequeno ΔNp(tal como um: ), e os candidatos sobreviventes podem ser combinados com um ou mais, por exemplo, todos, dentre os candidatos possíveis na nova posição (posições), tal como em um crescimento da função de árvore. Essas etapas de (1) realizar o cálculo bayesiano, (2) podar a árvore e (3) fazer a árvore crescer podem ser, então, repetidas, por exemplo, sequencialmente, até um critério de interrupção ser atendido. O histórico de limite pode ser, então, usado para determinar a confiança do resultado (por exemplo, a probabilidade de a solução verdadeira ter sido ou não encontrada). Esse processo é ilustrado no fluxograma apresentado na Figura 27.[0473] Then, in a second step, the number of positions may be increased by a small number ΔNp (such as one: ), and the surviving candidates may be combined with one or more, e.g., all, of the possible candidates at the new position(s), as in a tree function growth. These steps of (1) performing the Bayesian computation, (2) pruning the tree, and (3) growing the tree may then be repeated, e.g., sequentially, until a stopping criterion is met. The threshold history may then be used to determine the confidence of the result (e.g., the probability that the true solution was found or not). This process is illustrated in the flowchart shown in Figure 27.

[0474] Deve-se entender que há uma variedade de variações possíveis para essa abordagem. Por exemplo, conforme indicado, o limite de poda pode ser adaptável, tal como com base no número de candidatos sobreviventes. Por exemplo, uma implantação simples pode definir o limite para manter o número de candidatos abaixo de um número fixo, enquanto uma implantação mais sofisticada pode definir o limite com base em uma análise de custo e benefício de incluir candidatos adicionais. Ademais, um critério de interrupção simples pode ser que um resultado tenha sido encontrado com um nível suficiente de confiança, ou que a confiança na posição inicial parado de crescer conforme mais posições são adicionadas. Além disso, uma implantação mais sofisticada pode realizar algum tipo de análise de custo e benefício de continuar a adicionar mais posições. Adicionalmente, conforme pode ser observado em relação à Figura 27, a ordem em que novas posições são adicionadas pode depender de diversos critérios, tal como a distância até a posição (ou posições) inicial ou qual altamente conectadas essas posições estão às posições já incluídas (por exemplo, a quantidade de sobreposição com as leituras pareadas).[0474] It should be understood that there are a variety of possible variations to this approach. For example, as indicated, the pruning threshold may be adaptive, such as based on the number of surviving candidates. For example, a simple implementation may set the threshold to keep the number of candidates below a fixed number, while a more sophisticated implementation may set the threshold based on a cost-benefit analysis of including additional candidates. Furthermore, a simple stopping criterion may be that a result has been found with a sufficient level of confidence, or that the confidence in the initial position has stopped growing as more positions are added. Furthermore, a more sophisticated implementation may perform some type of cost-benefit analysis of continuing to add more positions. Additionally, as can be seen with respect to Figure 27, the order in which new positions are added may depend on a variety of criteria, such as the distance to the initial position (or positions) or how highly connected those positions are to the positions already included (e.g., the amount of overlap with paired reads).

[0475] Um recurso útil desse algoritmo é que a probabilidade de que a solução verdadeira não foi encontrada pode ser quantificada. Por exemplo, uma estimativa útil é obtida somando-se simplesmente as probabilidades de todas as ramificações podadas em cada etapa: Ppodado = Ppodado + ∑meconjuntopodado . Tal estimativa é útil para calcular a confiança das chamadas de variante resultantes: . As boas estimativas de confiança são essenciais para produzir boas curvas de Característica de Operação de Receptor (ROC). Essa é uma vantagem chave desse método de poda em relação a outras reduções de complexidade ad hoc.[0475] A useful feature of this algorithm is that the probability that the true solution was not found can be quantified. For example, a useful estimate is obtained by simply summing the probabilities of all pruned branches at each step: Ppruned = Ppruned + ∑mesetpruned . Such an estimate is useful for calculating the confidence of the resulting variant calls: . Good confidence estimates are essential for producing good Receiver Operating Characteristic (ROC) curves. This is a key advantage of this pruning method over other ad hoc complexity reductions.

[0476] Retornando ao acúmulo de exemplo da Figura 25 e começando com a posição mais à esquerda (posição no 1) e trabalhando-se em direção à posição de base um à direita em um tempo, com o uso de um limite de poda de phred 60 em cada iteração: representa as soluções candidatas na j-ésima iteração. A Figura 28 mostra as soluções candidatas na primeira iteração, representando todas as combinações de bases C e G, listadas a fim de diminuir a probabilidade. Para qualquer solução com representações de imagem em espelho equivalentes (obtidas por varredura das fases), apenas uma única representação é mostrada. As probabilidades para todas as soluções candidatas podem ser calculadas, e aquelas probabilidades além do limite de poda (indicado pela linha sólida na Figura 28) podem ser desconsideradas. Conforme pode ser observado em relação à Figura 28, como resultado dos métodos de poda revelados no presente documento, seis candidatos sobrevivem.[0476] Returning to the example accumulation of Figure 25 and starting with the leftmost position (position #1) and working toward the rightmost base position one in time, using a pruning threshold of phred 60 in each iteration: represents the candidate solutions at the j-th iteration. Figure 28 shows the candidate solutions at the first iteration, representing all combinations of bases C and G, listed in order of decreasing probability. For any solution with equivalent mirror-image representations (obtained by scanning the phases), only a single representation is shown. The probabilities for all candidate solutions can be calculated, and those probabilities beyond the pruning threshold (indicated by the solid line in Figure 28) can be disregarded. As can be seen from Figure 28, as a result of the pruning methods disclosed herein, six candidates survive.

[0477] Em seguida, conforme pode ser observado em relação à Figura 29, a árvore pode crescer encontrando-se todas as combinações dos candidatos sobreviventes da iteração no 1 e bases candidatas (C e A) na posição no 2. Uma lista parcial dos novos candidatos é mostrada na Figura 29, novamente mostrada a fim de diminuir a probabilidade. Novamente, as probabilidades podem ser calculadas e comparadas ao limite de poda e, nesse caso, 5 candidatos sobrevivem.[0477] Next, as can be seen from Figure 29, the tree can be grown by finding all combinations of surviving candidates from iteration #1 and candidate bases (C and A) at position #2. A partial list of new candidates is shown in Figure 29, again shown in order to decrease the probability. Again, the probabilities can be calculated and compared to the pruning limit, and in this case, 5 candidates survive.

[0478] Finalmente, todas as combinações dos candidatos sobreviventes da iteração no 2 e as bases candidatas na posição no 3 (A e T) podem ser determinadas. Os candidatos finais e suas probabilidades associadas são mostrados na Figura 30. Consequentemente, ao calcular as probabilidades de variantes individuais, é determinado um SNP AC SNP heterozigoto na posição no 2 da região no1, com pontuação de quando de phred 50,4, que é o mesmo resultado encontrado no cálculo de força bruta. Nesse exemplo, a poda não teve nenhum efeito significativo sobre o resultado final, mas, em geral, a pode afetar o cálculo, frequentemente resultando em uma pontuação de confiança maior.[0478] Finally, all combinations of the surviving candidates from iteration #2 and the candidate bases at position #3 (A and T) can be determined. The final candidates and their associated probabilities are shown in Figure 30. Consequently, when calculating the probabilities of individual variants, a heterozygous AC SNP at position #2 of region #1 is determined, with a phred score of 50.4, which is the same result found in the brute force calculation. In this example, pruning had no significant effect on the final result, but in general, pruning can affect the calculation, often resulting in a higher confidence score.

[0479] Há muitas variações possíveis para as implantações dessa abordagem, o que pode afetar o desempenho e a complexidade do sistema, e diferentes variações podem ser adequadas para diferentes cenários. Por exemplo, pode haver variações na decisão de quais regiões incluir. Por exemplo, antes de executar uma detecção conjunta de múltiplas regiões, o chamador de variante pode ser configurado para determinar se uma dada região ativa deve ser processada de modo individual ou conjunto com outras regiões e, se conjuntamente, pode, então, determinar quais regiões incluir. Em outros casos, algumas implantações podem basear-se em uma lista de alinhamentos secundários fornecidos pelo mapeador de modo a informar ou tomar de outro modo essa decisão. Outras implantações podem usar um banco de dados de regiões homólogas, computadas offline, tal como com base em uma pesquisa do genoma de referência.[0479] There are many possible variations for implementations of this approach, which may affect the performance and complexity of the system, and different variations may be suitable for different scenarios. For example, there may be variations in the decision of which regions to include. For example, before performing joint detection of multiple regions, the variant caller may be configured to determine whether a given active region should be processed individually or together with other regions, and if together, it may then determine which regions to include. In other cases, some implementations may rely on a list of secondary alignments provided by the mapper to inform or otherwise make this decision. Other implementations may use a database of homologous regions, computed offline, such as based on a reference genome search.

[0480] Consequentemente, uma etapa útil em tais operações é decidir quais posições incluir. Por exemplo, deve-se perceber que várias regiões de interesse podem não ser autocontidas e/ou isoladas de regiões adjacentes. Logo, as informações no acúmulo podem influenciar a probabilidade de bases separadas por muito mais que o comprimento total de leitura (por exemplo, o comprimento de leitura pareada ou comprimento de molécula longa). Como tal, precisa ser decidido quais posições incluir no cálculo de MRJD, e o número de posições não é irrestrito (mesmo com poda). Por exemplo, algumas implantações podem processar blocos sobrepostos de posições e atualizar os resultados para um subconjunto das posições com base nos níveis de confiança nessas posições ou na completeza da evidência naquelas posições (por exemplo, posições próximas ao meio do bloco tipicamente têm evidência mais completa que aquelas próximas à borda).[0480] Consequently, a useful step in such operations is to decide which positions to include. For example, it should be realized that many regions of interest may not be self-contained and/or isolated from adjacent regions. Thus, the information in the accumulation may influence the probability of separated bases by much more than the total read length (e.g., the paired read length or long molecule length). As such, it needs to be decided which positions to include in the MRJD calculation, and the number of positions is not unrestricted (even with pruning). For example, some implementations may process overlapping blocks of positions and update the results for a subset of the positions based on the confidence levels in those positions or the completeness of the evidence at those positions (e.g., positions near the middle of the block typically have more complete evidence than those near the edge).

[0481] Outro fator determinante pode ser a ordem em que novas posições podem ser adicionadas. Por exemplo, para MRJD podada, a ordem de adicionar novas posições pode afetar o desempenho. Por exemplo, algumas implantações podem adicionar novas posições com base na distância até as posições já incluídas ou no grau de conectividade com essas posições (por exemplo, o número de leituras que sobrepõem ambas as posições). Adicionalmente, há também muitas variações sobre como a poda pode ser realizada. No exemplo apresentado acima, a poda foi baseada em um limite de probabilidade fixo, mas, em geral, o limite de poda pode ser adaptável ou baseado no número de candidatos sobreviventes. Por exemplo, uma implantação simples pode definir o limite para manter o número de candidatos abaixo de um número fixo, enquanto uma implantação mais sofisticada pode ajustar o limite com base em uma análise de custo e benefício de incluir candidatos adicionais.[0481] Another determining factor may be the order in which new positions are added. For example, for pruned MRJD, the order in which new positions are added may affect performance. For example, some deployments may add new positions based on the distance to already included positions or the degree of connectivity to those positions (e.g., the number of reads that overlap both positions). Additionally, there are also many variations on how pruning can be performed. In the example presented above, pruning was based on a fixed probability threshold, but in general, the pruning threshold can be adaptive or based on the number of surviving candidates. For example, a simple deployment may set the threshold to keep the number of candidates below a fixed number, while a more sophisticated deployment may adjust the threshold based on a cost-benefit analysis of including additional candidates.

[0482] Várias implantações podem realizar poda com base nas probabilidades P(R|Gm) em vez das probabilidades a priori P(Gm|R). Isso tem a vantagem de permitir a eliminação de representações de imagem em espelho equivalentes através das regiões (adicionalmente às fases). Essa vantagem é pelo menos parcialmente compensada pela desvantagem de não podar candidatos com probabilidades a priori muito baixas, o que, em vários casos, pode ser benéfico. Como tal, uma solução útil pode depender do cenário. Se a poda for realizada, tal como com base no P(R|Gm), então, o cálculo bayesiano poderia ser realizado uma vez após a iteração final.[0482] Several implementations may perform pruning based on probabilities P(R|Gm) rather than prior probabilities P(Gm|R). This has the advantage of allowing elimination of equivalent mirror image representations across regions (in addition to phases). This advantage is at least partially offset by the disadvantage of not pruning candidates with very low prior probabilities, which in some cases may be beneficial. As such, a useful solution may depend on the scenario. If pruning is performed, such as based on P(R|Gm), then the Bayesian computation could be performed once after the final iteration.

[0483] Ademais, no exemplo acima, o processo foi interrompido após o processamento de todas as posições de base no acúmulo mostrado, mas outros critérios de interrupção são também possíveis. Por exemplo, se apenas um subconjunto das posições de base (por exemplo, ao processar blocos sobrepostos) estiver sendo solucionado, o processo pode parar quando o resultado para o subconjunto tiver sido encontrado com um nível suficiente de confiança ou quando a confiança tiver parado de aumentar conforme mais posições são adicionadas. Uma implantação mais sofisticada, entretanto, pode realizar algum tipo de análise de custo e benefício, ponderando o custo computacional contra o valor potencial de adicionar mais posições.[0483] Furthermore, in the above example, the process was stopped after processing all the base positions in the backlog shown, but other stopping criteria are also possible. For example, if only a subset of the base positions (e.g., when processing overlapping blocks) is being solved, the process could stop when the result for the subset has been found with a sufficient level of confidence, or when the confidence has stopped increasing as more positions are added. A more sophisticated implementation, however, might perform some sort of cost-benefit analysis, weighing the computational cost against the potential value of adding more positions.

[0484] As probabilidades a priori podem ser também úteis. Por exemplo, nos exemplos acima, um modelo de IID simples foi usado, mas outros modelos podem ser também usados. Por exemplo, deve-se perceber que os agrupamentos de variantes são mais comuns do que poderia ser previsto por um modelo de IID. Deve- se notar também que as variantes têm maior probabilidade de ocorrer nas posições em que as referências diferem. Portanto, incorporar tal conhecimento nas probabilidades a priori P(Gm) pode aprimorar o desempenho de detecção e produzir curvas ROC melhores. Particularmente, deve-se notar que as probabilidades a priori para regiões homólogas não são bem entendidas na comunidade de genômica, e esse conhecimento está ainda evoluindo. Como tais, algumas implantações podem atualizar os modelos a priori conforme informações melhores se tornam disponíveis. Isso pode ser realizado automaticamente conforme mais resultados são produzidos. Tais atualizações podem ser baseadas em outras amostras biológicas ou outras regiões do genoma para a mesma amostra, cujos aprendizados podem ser aplicados aos métodos no presente documento para promover ainda mais uma análise mais rápida e precisa.[0484] Prior probabilities can also be useful. For example, in the examples above, a simple IID model was used, but other models can also be used. For example, one might notice that clusters of variants are more common than would be predicted by an IID model. One might also note that variants are more likely to occur at positions where references differ. Therefore, incorporating such knowledge into the prior probabilities P(Gm) can improve detection performance and produce better ROC curves. In particular, it should be noted that prior probabilities for homologous regions are not well understood in the genomics community, and this knowledge is still evolving. As such, some implementations may update the prior models as better information becomes available. This may be done automatically as more results are produced. Such updates may be based on other biological samples or other regions of the genome for the same sample, the learnings from which can be applied to the methods in this document to further promote faster and more accurate analysis.

[0485] Consequentemente, em alguns casos, um processo de MJRD iterativo pode ser implantado. Especificamente, a metodologia descrita no presente documento pode ser estendida para permitir a passagem de mensagem entre regiões relacionadas de modo a reduzir ainda mais a complexidade e/ou aumentar o desempenho de detecção do sistema. Por exemplo, a saída do cálculo em um local pode ser usada como uma probabilidade a priori de entrada para o cálculo em um local próximo. Adicionalmente, algumas implantações podem usar uma combinação de poda e iteração para atingir a troca desejada de desempenho/complexidade.[0485] Accordingly, in some cases, an iterative MJRD process may be implemented. Specifically, the methodology described herein may be extended to allow message passing between related regions in order to further reduce complexity and/or increase detection performance of the system. For example, the output of the computation at one location may be used as an a priori input probability for the computation at a nearby location. Additionally, some implementations may use a combination of pruning and iteration to achieve the desired performance/complexity tradeoff.

[0486] Ademais, a preparação de amostra pode ser implantada para otimizar o processo de MRJD. Por exemplo, para sequenciamento de extremidades pareadas, pode ser útil ter uma distribuição concisa no tamanho de inserção ao usar detecção convencional. Entretanto, em vários casos, introduzir variação no tamanho de inserção poderia aprimorar significativamente o desempenho para MRJD. Por exemplo, a amostra pode ser preparada para introduzir intencionalmente uma distribuição bimodal, uma distribuição multimodal ou distribuição semelhante a curva de sino com uma variância mais alta que poderia ser tipicamente implantada para detecção convencional.[0486] Furthermore, sample preparation can be implemented to optimize the MRJD process. For example, for paired-end sequencing, it may be useful to have a concise distribution in insert size when using conventional detection. However, in many cases, introducing variation in insert size could significantly improve performance for MRJD. For example, the sample can be prepared to intentionally introduce a bimodal distribution, a multimodal distribution, or a bell curve-like distribution with a higher variance than would typically be implemented for conventional detection.

[0487] A Figura 31 ilustra as curvas ROC para MRJD e um detector convencional para a amostra humana NA12878 sobre regiões selecionadas do genoma com uma única cópia homóloga, de modo que N = 2, com graus variáveis de similaridade de sequência de referência. Esse conjunto de dados usou sequenciamento de extremidades pareadas com um comprimento de leitura de 101 e um tamanho de inserção médio de aproximadamente 400. Conforme pode ser observado em relação à Figura 31, a MRJD oferece sensibilidade e especificidade drasticamente aumentadas sobre essas regiões em relação a métodos de detecção convencionais. A Figura 32 ilustra os mesmos resultados exibidos como uma função da similaridade de sequência das referências, medida através de uma janela de 1.000 bases (por exemplo, se as referências diferirem em 10 bases dentre 1.000, então, a similaridade é 99,0 por cento). Para esse conjunto de dados, pode ser cisto que a detecção convencional começa com desempenho ruim a uma similaridade de sequência -0,98, enquanto a MRJD tem desempenho bastante bom até 0,995 e ainda além.[0487] Figure 31 illustrates the ROC curves for MRJD and a conventional detector for the human sample NA12878 over selected regions of the genome with a single homologous copy, such that N = 2, with varying degrees of reference sequence similarity. This dataset used paired-end sequencing with a read length of 101 and an average insert size of approximately 400. As can be seen from Figure 31, MRJD provides dramatically increased sensitivity and specificity over these regions relative to conventional detection methods. Figure 32 illustrates the same results displayed as a function of the sequence similarity of the references, measured over a 1,000-base window (e.g., if the references differ by 10 bases out of 1,000, then the similarity is 99.0 percent). For this dataset, it may be obvious that conventional detection starts to perform poorly at sequence similarity -0.98, while MRJD performs quite well up to 0.995 and beyond.

[0488] Adicionalmente, em vários casos, essa metodologia pode ser estendida para permitir a passagem de mensagem entre regiões relacionadas para reduzir ainda mais a complexidade e/ou aumentar o desempenho de detecção. Por exemplo, a saída do cálculo em um local pode ser usada como uma probabilidade a priori de entrada para o cálculo em um local próximo e, em algumas implantações, pode usar uma combinação de poda e iteração para atingir a troca de desempenho/complexidade desejada. Em casos particulares, conforme indicado acima, antes de executar a detecção conjunta de múltiplas regiões, o chamador de variante pode determinar se uma dada região ativa deve ser processada individual ou conjuntamente com outras regiões. Adicionalmente, conforme indicado acima, algumas implantações podem basear-se em uma lista de alinhamentos secundários fornecida pelo mapeador para tomar tal decisão. Outras implantações podem usar um banco de dados de regiões homólogas, computadas offline com base em uma pesquisa do genoma de referência.[0488] Additionally, in various cases, this methodology may be extended to allow message passing between related regions to further reduce complexity and/or increase detection performance. For example, the output of the computation at one location may be used as an a priori input probability for the computation at a nearby location, and in some implementations, may use a combination of pruning and iteration to achieve the desired performance/complexity tradeoff. In particular cases, as indicated above, prior to performing joint detection of multiple regions, the variant caller may determine whether a given active region should be processed individually or jointly with other regions. Additionally, as indicated above, some implementations may rely on a list of secondary alignments provided by the mapper to make such a decision. Other implementations may use a database of homologous regions, computed offline based on a search of the reference genome.

[0489] Em vista do anterior, um Modelo Oculto de Markov com Determinação de Par (HMM PD pode ser implantado de uma maneira que tire vantagem dos benefícios de MRJD. Por exemplo, a MRJD pode estimar separadamente a probabilidade de observar uma porção ou todas as leituras dado cada diplótipo conjunto possível, que compreende um haplótipo por ploidia por região de referência homóloga, por exemplo, para duas regiões homólogas em cromossomos diploides, cada diplótipo conjunto incluirá quatro haplótipos. Em tais casos, todos ou uma porção dos haplótipos possíveis podem ser considerados, tal como senso construídos, por exemplo, modificando-se cada região de referência com cada subconjunto possível de todas as variantes para as quais há evidência não trivial. Entretanto, para regiões de referência homólogas longas, o número de variantes possíveis é grande, então, o número de haplótipos (combinações de variantes) torna-se exponencialmente grande, e o número de diplótipos conjuntos (combinações de haplótipos) pode ser astronômico.[0489] In view of the foregoing, a Hidden Markov Model with Pairwise Determination (HMM PD) can be implemented in a manner that takes advantage of the benefits of MRJD. For example, MRJD can separately estimate the probability of observing a portion or all of the reads given each possible diplotype set, which comprises one haplotype per ploidy per homologous reference region. For example, for two homologous regions on diploid chromosomes, each diplotype set will include four haplotypes. In such cases, all or a portion of the possible haplotypes can be considered, such as sense constructed, for example, by modifying each reference region with each possible subset of all variants for which there is nontrivial evidence. However, for long homologous reference regions, the number of possible variants is large, so the number of haplotypes (combinations of variants) becomes exponentially large, and the number of diplotype sets (combinations of variants) becomes exponentially large. haplotypes) can be astronomical.

[0490] Consequentemente, para manter os cálculos de MRJD tratáveis, pode não ser útil testar todos os diplótipos conjuntos possíveis. Em vez disso, em alguns casos, o sistema pode ser configurado de tal maneira que apenas um pequeno subconjunto de diplótipos conjuntos “ mais prováveis” seja testado. Esses diplótipos conjuntos “mais prováveis” podem ser determinados construindo-se incrementalmente uma árvore de diplótipos conjuntos parcialmente determinados. Em tal caso, cada nó da árvore pode ser um diplótipo conjunto parcialmente determinado que inclui um haplótipo parcialmente determinado por ploidia por região de referência homóloga. Nesse caso, um haplótipo parcialmente determinado pode incluir uma região de referência modificada por um subconjunto parcialmente determinado das variantes possíveis. Consequentemente, um subconjunto parcialmente determinado das variantes possíveis pode incluir uma indicação, para cada variante possível, de um dentre três estados: que a variante é determinada está presente, ou a variante é determinada e está ausente, ou a variante não está ainda determinada, por exemplo, pode estar presente ou ausente. Na raiz da árvore, todas as variantes são indeterminadas em todos os haplótipos; os nós de árvore que se ramificam com sucesso adicional da raiz têm sucessivamente mais variantes determinadas como presentes ou ausentes em cada haplótipo de cada diplótipo conjunto do nó.[0490] Consequently, to keep MRJD calculations tractable, it may not be useful to test all possible joint diplotypes. Instead, in some cases, the system may be configured such that only a small subset of “most likely” joint diplotypes are tested. These “most likely” joint diplotypes may be determined by incrementally constructing a tree of partially determined joint diplotypes. In such a case, each node of the tree may be a partially determined joint diplotype that includes a partially determined haplotype by ploidy per homologous reference region. In such a case, a partially determined haplotype may include a reference region modified by a partially determined subset of the possible variants. Accordingly, a partially determined subset of the possible variants may include an indication, for each possible variant, of one of three states: that the variant is determined to be present, or the variant is determined to be absent, or the variant is not yet determined, e.g., it may be present or absent. At the root of the tree, all variants are undetermined in all haplotypes; tree nodes that branch off further successfully from the root have successively more variants determined to be present or absent in each haplotype of each diplotype set from the node.

[0491] Ademais, no contexto dessa árvore de diplótipo conjunto, conforme descrito acima, a quantidade de cálculos de MRJD é mantida limitada e tratável cortando-se as ramificações da árvore em que todos os nós de diplótipo conjunto são improváveis, por exemplo, moderada a extremamente improváveis, em relação a outras ramificações ou nós mais prováveis. Consequentemente, tal corte pode ser realizado em ramificações em nós que estão ainda apenas parcialmente determinados; por exemplo, diversas ou muitas variantes ainda não determinadas como presentes ou ausentes dos haplótipos de um diplótipo conjunto de nó cortado. Assim, em tal caso, é útil estimar ou limitar a probabilidade de observar cada leitura assumindo-se como verdadeiro um haplótipo parcialmente determinado. Um cálculo de modelo oculto de Markov com par modificado (pHMM), denotado "HMM PD" para "modelo oculto de Markov com par parcialmente determinado” é útil para estimar a probabilidade P(R|H) de observar leitura R assumindo-se que o haplótipo verdadeiro H* é consistente com o haplótipo parcialmente determinado H. Consistente com esse contexto significa que algum haplótipo parcialmente determinado H* está de acordo com o haplótipo parcialmente determinado H em relação a todas as variantes cuja presença ou ausência é determinada em H, mas para variantes indeterminadas em H, H* pode estar de acordo com a sequência de referência modificada ou não modificada por cada variante indeterminada.[0491] Furthermore, in the context of such a joint diplotype tree as described above, the amount of MRJD computations is kept limited and tractable by pruning branches of the tree in which all joint diplotype nodes are unlikely, e.g., moderately to extremely unlikely, relative to other branches or more likely nodes. Accordingly, such pruning may be performed on branches at nodes that are as yet only partially determined; e.g., several or many variants not yet determined to be present or absent from the haplotypes of a pruned node joint diplotype. Thus, in such a case, it is useful to estimate or bound the probability of observing each read assuming a partially determined haplotype to be true. A modified pairwise hidden Markov model (pHMM) calculation, denoted "PDHMM" for "partially determined pairwise hidden Markov model", is useful for estimating the probability P(R|H) of observing read R assuming that the true haplotype H* is consistent with the partially determined haplotype H. Consistent in this context means that some partially determined haplotype H* agrees with the partially determined haplotype H with respect to all variants whose presence or absence is determined in H, but for variants undetermined in H, H* may agree with the reference sequence modified or unmodified by each undetermined variant.

[0492] Nota-se que não é, de modo geral, adequado executar um cálculo de pHMM comum para algum sub-haplótipo mais curto de H escolhidos para abranger apenas posições de variante determinadas. É, de modo geral, importante construir a árvore de diplótipo conjunto com variantes indeterminadas que são resolvidas em uma ordem eficaz, que é, de modo geral, bem diferente de sua ordem geométrica, de modo que um haplótipo parcialmente determinado H tenha tipicamente muitas posições de variante indeterminadas intercaladas com aquelas determinadas. Para considerar adequadamente erros de indel de PCR, é útil usar um cálculo semelhante a pHMM que abrange todas as variantes determinadas e raio significativo em torno das mesmas, o que pode não ser compatível com tentativas de evitar posições de variante indeterminadas.[0492] It is noted that it is not generally appropriate to perform a common pHMM calculation for some shorter subhaplotype of H chosen to encompass only determined variant positions. It is generally important to construct the joint diplotype tree with undetermined variants that are resolved in an effective order that is generally quite different from their geometric order, so that a partially determined haplotype H typically has many undetermined variant positions interspersed with determined ones. To adequately account for PCR indel errors, it is useful to use a pHMM-like calculation that encompasses all determined variants and a significant radius around them, which may not be compatible with attempts to avoid undetermined variant positions.

[0493] Consequentemente, as entradas ao HMM PD podem incluir a sequência de nucleotídeos chamada de leitura R, as pontuações de qualidade de base (por exemplo, escala phred) dos nucleotídeos chamados de R, um haplótipo de linha de base HO e uma lista de variantes indeterminadas (edições) de HO. As variantes indeterminadas podem incluir substituições de base única (SNPs), substituições de múltiplas bases (MNPs), inserções e deleções. Vantajosamente, pode ser adequado suportar SNPs e deleções indeterminadas. Uma MNP indeterminada pode ser representada de modo imperfeito, mas adequado, como múltiplas SNPs independentes. Uma inserção indeterminada pode ser representada editando-se primeiramente a inserção no haplótipo de linha de base, então, indicando-se a deleção indeterminada correspondente que poderia desfazer a inserção.[0493] Accordingly, inputs to the HMM PD may include the nucleotide sequence called the read R, the base quality scores (e.g., phred scale) of the nucleotides called R, a baseline haplotype HO, and a list of undetermined variants (edits) of HO. The undetermined variants may include single base substitutions (SNPs), multiple base substitutions (MNPs), insertions, and deletions. Advantageously, it may be appropriate to support both undetermined SNPs and deletions. An undetermined MNP may be imperfectly but adequately represented as multiple independent SNPs. An undetermined insertion may be represented by first editing the insertion in the baseline haplotype, then indicating the corresponding undetermined deletion that would undo the insertion.

[0494] Restrições podem ser colocadas nas deleções indeterminadas, para facilitar a implantação de mecanismo de hardware com memória e lógica de estado limitadas, tal como que duas deleções indeterminadas não podem se sobrepor (deletar as mesmas bases de haplótipo de linha de base). Se um haplótipo parcialmente determinado precisar ser testado com variantes indeterminadas que violam tais restrições, isso pode ser resolvido convertendo-se uma ou mais variantes indeterminadas em variantes determinadas em um número maior de operações de HMM PD, cobrindo casos com aquelas variantes presentes ou ausentes. Por exemplo, se duas deleções indeterminadas A e B violarem sobrepondo-se uma à outra em haplótipo de linha de base HO, então, a deleção B pode ser editada em HO para produzir HOB, e duas operações de HMM PD podem ser realizadas com o uso da deleção indeterminada A apenas, uma para o haplótipo de linha de base HO e a outra para o haplótipo de linha de base HOB, e a saída de probabilidade máxima das duas operações de HMM PD podem ser mantidas.[0494] Constraints may be placed on the undetermined deletions to facilitate the implementation of hardware engines with limited memory and state logic, such as that two undetermined deletions may not overlap (delete the same baseline haplotype bases). If a partially determined haplotype needs to be tested with undetermined variants that violate such constraints, this may be resolved by converting one or more undetermined variants to determined variants in a larger number of HMM PD operations, covering cases with those variants present or absent. For example, if two undetermined deletions A and B violate overlapping each other in baseline haplotype HO, then deletion B can be edited into HO to produce HOB, and two HMM PD operations can be performed using undetermined deletion A only, one for baseline haplotype HO and the other for baseline haplotype HOB, and the maximum likelihood output of the two HMM PD operations can be maintained.

[0495] O resultado de uma operação de HMM PD pode ser uma estimativa do P(R|H*) máximo entre todos os haplótipos H* que podem ser formados editando-se HO com qualquer subconjunto das variantes indeterminadas. A maximização pode ser realizada localmente, contribuindo para a programação dinâmica semelhante a pHMM em uma dada célula como se uma variante indeterminada adjacente estivesse presente ou ausente do haplótipo, qualquer que tenha a pontuação melhor, por exemplo, contribua com a maior probabilidade parcial. Tal maximização local durante a programação dinâmica pode resultar em estimativas maiores do P(R|H*) máximo do que a maximização verdadeira através de haplótipos H* puros individuais, mas a diferença é, de modo geral, irrelevante.[0495] The result of a HMM PD operation may be an estimate of the maximum P(R|H*) across all H* haplotypes that can be formed by editing HO with any subset of the undetermined variants. Maximization may be performed locally by contributing to pHMM-like dynamic programming in a given cell as if an adjacent undetermined variant were present or absent from the haplotype, whichever has the better score, i.e., contributes the greater partial probability. Such local maximization during dynamic programming may result in larger estimates of the maximum P(R|H*) than true maximization across individual pure H* haplotypes, but the difference is generally irrelevant.

[0496] As SNPs indeterminadas podem ser incorporadas em HMM PD permitindo-se que um ou mais valores de nucleotídeo de correspondência sejam especificados para cada posição de haplótipo. Por exemplo, se a base 30 de HO for “C” e um SNP indeterminado substituir esse “C” por um “T”, então, o haplótipo da operação de HMM PD pode indicar a posição 30 como correspondente a ambas as bases “C” e “T”. Na programação dinâmica de pHMM usual, qualquer transição para um estado “M” resulta em multiplicar a probabilidade de caminho pela probabilidade de uma chamada de base correta (se a posição de haplótipo corresponder à posição de leitura) ou pela probabilidade de um erros de chamada de base específico (se a posição de haplótipo divergir da posição de leitura); para HMM PD, isso é modificado com o uso da probabilidade de chamada correta se a posição de leitura corresponder à base de haplótipo possível (por exemplo, “C” ou “T”) e a probabilidade de erro de chamada de base de outro modo.[0496] Undetermined SNPs can be incorporated into HMM PD by allowing one or more matching nucleotide values to be specified for each haplotype position. For example, if base 30 of HO is “C” and an undetermined SNP replaces that “C” with a “T”, then the haplotype from HMM PD operation might indicate position 30 as corresponding to both bases “C” and “T”. In usual pHMM dynamic programming, any transition to an “M” state results in multiplying the path probability by the probability of a correct base call (if the haplotype position matches the read position) or by the probability of a specific base call error (if the haplotype position diverges from the read position); for HMM PD, this is modified by using the probability of correct call if the read position matches the possible haplotype base (e.g., “C” or “T”) and the probability of base call error otherwise.

[0497] As deleções de haplótipo indeterminadas podem ser incorporadas em HMM PD sinalizando-se posições de haplótipo posições opcionalmente deletadas e modificando-se a programação dinâmica de pHMM para permitir que os caminhos de alinhamento pulem horizontalmente através dos segmentos de haplótipo de deleção indeterminados sem perda de probabilidade. Isso pode ser realizado de várias maneiras, mas com a propriedade comum que valores de probabilidade em estados de M, I e/ou D podem transmitir horizontalmente (ao longo do eixo geométrico de haplótipo) pela amplitude de uma deleção indeterminada sem serem reduzidos por probabilidades comuns de abertura de lacuna e extensão de lacuna.[0497] Undetermined haplotype deletions can be incorporated into HMM PD by flagging optionally deleted haplotype positions and modifying the pHMM dynamic programming to allow alignment paths to skip horizontally across the undetermined deletion haplotype segments without loss of probability. This can be accomplished in a variety of ways, but with the common property that probability values in M, I, and/or D states can stream horizontally (along the haplotype axis) across the amplitude of an undetermined deletion without being reduced by common gap-opening and gap-extending probabilities.

[0498] Em uma modalidade particular, as posições de haplótipo em que deleções indeterminadas começam são sinalizadas "F1" e posições em que deleções indeterminadas terminam são sinalizadas "F2". Adicionalmente aos “estados” de M, I e D (representações de probabilidade parciais) para cada célula da matriz de HMM (haplótipo horizontal / leitura vertical), cada célula de HMM PD pode incluir adicionalmente estados de “desvio” BM, BI e BD. Em colunas de haplótipo sinalizadas por F1, os estados BM, BI e BD recebem valores copiados dos estados de M, I e D da célula à esquerda, respectivamente. Em colunas de haplótipo não sinalizadas por F2, particularmente colunas que começam com uma extremidade de coluna sinalizada por F1 que se estende para o interior de uma deleção indeterminada, os estados de BM, BI e BD transmitem seus valores aos estados de BM, BI e BD da célula à direita, respectivamente. Em colunas de haplótipo sinalizadas por F2, no lugar dos estados de M, I e D usados para calcular estados de células adjacentes, o máximo de M e BM é usado, e o máximo de I e BI é usado, e o máximo de D e BD é usado, respectivamente. Isso é exemplificado em uma coluna F2 como seleção multiplexada de sinais de M e BM, de I e BI e de registros de D e BD.[0498] In a particular embodiment, haplotype positions at which indeterminate deletions begin are flagged "F1" and positions at which indeterminate deletions end are flagged "F2". In addition to the M, I, and D “states” (partial probability representations) for each cell of the HMM matrix (horizontal haplotype/vertical readout), each HMM PD cell may additionally include BM, BI, and BD “deviation” states. In haplotype columns flagged by F1, the BM, BI, and BD states receive values copied from the M, I, and D states of the cell to the left, respectively. In haplotype columns not flagged by F2, particularly columns that begin with an F1-flagged column end that extends into an indeterminate deletion, the BM, BI, and BD states transmit their values to the BM, BI, and BD states of the cell to the right, respectively. In F2-signaled haplotype columns, instead of the M, I, and D states used to calculate adjacent cell states, the maximum of M and BM is used, and the maximum of I and BI is used, and the maximum of D and BD is used, respectively. This is exemplified in an F2 column as multiplexed selection of M and BM signals, of I and BI signals, and of D and BD records.

[0499] Nota-se que, embora os registros de estado BM, BI e DB possam ser representados nas colunas F1 a F2, e a maximização dos multiplexadores M/BM, I/BI e D/BD possa ser mostrada em uma coluna F2, esses componentes podem estar presentes para todos os cálculos de célula, possibilitando que uma deleção indeterminada seja manipulada em qualquer posição e possibilitando que as deleções indeterminadas com sinalizações F1 e F2 correspondentes por todo o haplótipo. Nota-se também que as sinalizações F1 e F2 podem estar na mesma coluna, para o caso de uma deleção indeterminada de base única. É notado, ainda, que a matriz de HMM PD de células pode ser representada como uma representação esquemática dos cálculos de estado lógico de M, I, D, BM, BI e BD, mas, em uma implantação de hardware, um número menor de elementos lógicos de cálculo de célula pode estar presente e segmentado adequadamente para calcular valores de estado de M, D, I, BM, BI e BD em altas frequências de relógio, e as células de matriz podem ser calculadas com vários graus de paralelismo de hardware, em várias ordens consistentes com as dependências lógicas inerentes do cálculo de HMM PD.[0499] Note that although the BM, BI, and DB state records may be represented in columns F1 through F2, and the maximization of the M/BM, I/BI, and D/BD multiplexers may be shown in column F2, these components may be present for all cell calculations, allowing an indeterminate deletion to be handled at any position, and allowing indeterminate deletions with corresponding F1 and F2 flags throughout the haplotype. Note also that the F1 and F2 flags may be in the same column, for the case of a single base indeterminate deletion. It is further noted that the HMM PD array of cells may be represented as a schematic representation of the M, I, D, BM, BI, and BD logic state calculations, but in a hardware implementation, a smaller number of cell calculation logic elements may be present and appropriately segmented to calculate M, D, I, BM, BI, and BD state values at high clock frequencies, and the array cells may be calculated with varying degrees of hardware parallelism, in various orders consistent with the inherent logical dependencies of the HMM PD calculation.

[0500] Assim, nessa modalidade, os valores de estado de pHMM em uma coluna podem estar imediatamente à esquerda de uma deleção indeterminada que pode ser capturada e transmitida para a direita, inalterada, à coluna mais à direita dessa deleção indeterminada, em que substituem cálculos de pHMM sempre que atingem pontuações de caminho normal. Quando esses máximos são escolhidos, os valores de estado de "desvio" BM, BI e BD representam os resultados de programação dinâmica local, em que a deleção indeterminada é tomada como estando presente, enquanto valores de estado "normais" M, I e D representam os resultados em que a deleção indeterminada é tomada como estado ausente.[0500] Thus, in this embodiment, pHMM state values in a column may be immediately to the left of an indeterminate deletion that may be captured and passed rightward, unchanged, to the rightmost column of that indeterminate deletion, where they replace pHMM calculations whenever they achieve normal path scores. When these maxima are chosen, the "deviation" state values BM, BI, and BD represent local dynamic programming results where the indeterminate deletion is taken to be present, while "normal" state values M, I, and D represent results where the indeterminate deletion is taken to be the absent state.

[0501] Em outra modalidade, um estado de desvio único pode ser usado, tal como um estado BM que recebe de um estado de M em colunas sinalizadas por F1 ou que recebe uma soma de estados de M, D e/ou I. Em outra modalidade, em vez de usar estados de "desvio", as penalidades de abertura de lacuna e/ou extensão de lacuna são eliminadas dentro das colunas de deleções indeterminadas. Em outra modalidade, os estados de desvio contribuem aditivamente para programação dinâmica para a direita de deleções indeterminadas, em vez de maximização local ser usada. Em outra modalidade, mais ou menos ou sinalizações de posição de haplótipo diferentemente definidas ou diferentemente localizadas são usadas para acionar desvio ou comportamento similar, tal como uma sinalização única que indica associação em uma deleção indeterminada. Em uma modalidade adicional, duas ou mais deleções indeterminadas sobrepostas podem participar, tal como com o uso de sinalizações adicionais e/ou estados de desvio. Adicionalmente, as inserções indeterminadas no haplótipo são suportadas, em vez de ou adicionalmente às deleções indeterminadas. De modo semelhante, inserções e/ou deleções indeterminadas no eixo geométrico de leitura são suportadas, em vez de ou adicionalmente às deleções e/ou inserções indeterminadas no eixo geométrico de haplótipo. Em outra modalidade, substituições de múltiplos nucleotídeosindeterminadas são suportadas como variantes atômicas (todas presentes ou todas ausentes). Em outra modalidade, substituições com comprimento variávelindeterminadas são suportadas como variantes atômicas. Em outra modalidade, variantes indeterminadas são penalizadas com ajustes de probabilidade ou pontuação fixos ou configuráveis.[0501] In another embodiment, a single deviant state may be used, such as a BM state that receives from a state of M in columns flagged by F1 or that receives a sum of states of M, D, and/or I. In another embodiment, instead of using "deviant" states, gap opening and/or gap extension penalties are eliminated within columns of undetermined deletions. In another embodiment, deviant states contribute additively to rightward dynamic programming of undetermined deletions, rather than local maximization being used. In another embodiment, more or less or differently defined or differently located haplotype position flags are used to trigger deviance or similar behavior, such as a single flag indicating membership in an undetermined deletion. In a further embodiment, two or more overlapping undetermined deletions may participate, such as with the use of additional flags and/or deviant states. Additionally, undetermined insertions in the haplotype are supported instead of or in addition to undetermined deletions. Similarly, undetermined insertions and/or deletions in the reading axis are supported instead of or in addition to undetermined deletions and/or insertions in the haplotype axis. In another embodiment, undetermined multinucleotide substitutions are supported as atomic variants (all present or all absent). In another embodiment, undetermined variable length substitutions are supported as atomic variants. In another embodiment, undetermined variants are penalized with fixed or configurable probability or scoring adjustments.

[0502] Esse cálculo de HMM PD pode ser implantado como um mecanismo de hardware, tal como em tecnologia de FPGA ou ASIC, por extensão de uma arquitetura de mecanismo de hardware para cálculo de pHMM "comum", ou pode ser implantado por um ou mais circuitos quânticos em uma plataforma de computação quântica. Adicionalmente a uma lógica de segmentação de mecanismo para calcular, transmitir e armazenar valores de estado deM, I eD para várias e sucessivas células, lógica de segmentação paralela pode ser construída para calcular, transmitir e armazenar valores de estado BM, BI e BD, conforme descrito no presente documento e acima. Os recursos e portas de memória para armazenamento e recuperação de valores de estado deM,I eD podem ser acompanhados por recursos e portas similares ou mais amplos ou mais profundos de armazenamento e recuperação de valores de estado BM, BI e BD. As sinalizações, tais como F1 e F2, podem ser armazenadas em memórias juntamente com bases de haplótipo associadas.[0502] This HMM PD computation may be implemented as a hardware engine, such as in FPGA or ASIC technology, by extension of a hardware engine architecture for "common" pHMM computation, or it may be implemented by one or more quantum circuits in a quantum computing platform. In addition to an engine segmentation logic for computing, transmitting, and storing M, I, and D state values for multiple, successive cells, parallel segmentation logic may be constructed for computing, transmitting, and storing BM, BI, and BD state values, as described herein and above. The memory resources and ports for storing and retrieving M, I, and D state values may be accompanied by similar or broader or deeper resources and ports for storing and retrieving BM, BI, and BD state values. Flags, such as F1 and F2, may be stored in memories along with associated haplotype bases.

[0503] Múltiplos nucleotídeos correspondentes para, por exemplo, posições de haplótipo de SNP indeterminadas podem ser codificados de qualquer maneira, tal como com o uso de um vetor de um bit por valor de nucleotídeo possível. As dependências de cálculo de célula na matriz de pHMM são inalteradas em HMM PD, então, a ordem e a segmentação de múltiplos cálculos de célula podem permanecer as mesmas para HMM PD. Entretanto, a latência em ciclos de tempo e/ou relógio para completar cálculo de célula aumenta um tanto para HMM PD, devido ao requisito para comparar valores de estado "normal" e "desvio" selecionar aqueles maiores. Consequentemente, pode ser vantajoso incluir um ou mais extra estágios de segmentação para cálculo de célula de HMM PD, resultando em ciclos de relógio adicionais de latência. Adicionalmente, pode ser adicionalmente vantajoso ampliar cada "faixa" de células calculadas em uma ou mais fileiras, para manter a segmentação mais longa preenchida sem problemas de dependência.[0503] Multiple nucleotides corresponding to, for example, undetermined SNP haplotype positions may be encoded in any manner, such as using a one-bit vector per possible nucleotide value. The cell calculation dependencies in the pHMM matrix are unchanged in HMM PD, so the order and segmentation of multiple cell calculations may remain the same for HMM PD. However, the latency in time and/or clock cycles to complete cell calculation increases somewhat for HMM PD, due to the requirement to compare "normal" and "deviation" state values and select the larger ones. Consequently, it may be advantageous to include one or more extra segmentation stages for HMM PD cell calculation, resulting in additional clock cycles of latency. Additionally, it may be additionally advantageous to extend each "range" of calculated cells by one or more rows, to keep the longer segmentation filled without dependency problems.

[0504] Esse cálculo de HMM PD rastreia o dobro de valores de estado (BM, BI e BD, adicionalmente a M, I e D), como um cálculo de pHMM comum e pode exigir cerca de duas vezes os recursos de hardware para uma modalidade de mecanismo de rendimento equivalente. Entretanto, um mecanismo de HMM PD tem vantagens de velocidade e eficácia exponenciais para aumentar os números de variantes indeterminadas, versus um mecanismo de pHMM comum executado uma vez para cada haplótipo que representa uma combinação distinta das variantes indeterminadas que estão presentes ou ausentes. Por exemplo, se um haplótipo parcialmente determinado tiver 30 variantes indeterminadas, cada uma das quais pode estar independentemente presente ou ausente, há 2A30, ou mais de 1 bilhão, de haplótipos específicos distintos que pHMM poderia precisar de outro modo processar.[0504] This HMM PD calculation tracks twice as many state values (BM, BI, and BD in addition to M, I, and D) as a regular pHMM calculation, and may require about twice the hardware resources for an equivalent throughput engine modality. However, a HMM PD engine has exponential speed and efficiency advantages for increasing numbers of undetermined variants, versus a regular pHMM engine run once for each haplotype that represents a distinct combination of undetermined variants that are present or absent. For example, if a partially determined haplotype has 30 undetermined variants, each of which may be independently present or absent, there are 2A30, or over 1 billion, distinct specific haplotypes that pHMM might otherwise need to process.

[0505] Consequentemente, essas e outras tais operações reveladas no presente documento podem ser realizadas de modo a entender melhor e prever precisamente o que aconteceu ao genoma do sujeito de modo que as leituras tenham variado em relação à referência. Por exemplo, ainda que a ocorrência de mutações possa ser aleatória, há casos em que a probabilidade de sua ocorrência pareça ser potencialmente previsível até certo ponto. Particularmente, em alguns casos, quando mutações ocorrem, as mesmas podem ocorrer em certos locais definidos e em certas formas. Mais particularmente, as mutações, se ocorrerem, ocorrerão em um alelo ou outro ou ambos e terão a tendência de ocorrer em certos locais em relação a outros, tal como nas extremidades dos cromossomos. Consequentemente, essas e outras informações associadas podem ser usadas para desenvolver modelos de mutação, que podem ser gerados e empregados para avaliar melhor a presença provável de uma mutação e uma ou mais regiões do genoma. Por exemplo, considerando-se vários conhecimentos a priori, por exemplo, um ou mais modelos de mutação, ao realizar análises de variação genômica, resultados de análise genômica melhores e mais precisos podem ser obtidos, tal como com demarcações mais precisas de mutação genética.[0505] Accordingly, these and other such operations disclosed herein can be performed in order to better understand and accurately predict what happened to the subject's genome such that the reads varied from the reference. For example, although the occurrence of mutations may be random, there are cases in which the probability of their occurrence appears to be potentially predictable to some extent. In particular, in some cases, when mutations do occur, they may occur at certain defined locations and in certain ways. More particularly, mutations, if they occur, will occur at one allele or the other or both and will tend to occur at certain locations relative to others, such as at the ends of chromosomes. Accordingly, this and other associated information can be used to develop mutation models, which can be generated and used to better assess the likely presence of a mutation and one or more regions of the genome. For example, considering several a priori knowledge, for example, one or more mutation models, when performing genomic variation analyses, better and more accurate genomic analysis results can be obtained, such as with more precise demarcations of genetic mutation.

[0506] Tais modelos de mutação podem gerar uma consideração pela frequência e/ou local de várias mutações conhecidas e/ou mutações que parecem acontecer em conjunto uma com a outra ou de outro modo não aleatoriamente. Por exemplo, foi determinado que, em direção às extremidades de um dado cromossomo, variações ocorrem predominantemente. Assim, modelos conhecidos de mutações podem ser gerados, armazenados em um banco de dados no presente documento e usados pelo sistema para produzir uma previsão melhor da presença de uma ou mais variações dentro dos dados genômicos que são analisados. Adicionalmente, um processo de aprendizado por máquina, conforme descrito em mais detalhes abaixo no presente documento, pode ser também implantado de modo que vários dados de resultados derivados pelas análises realizadas no presente documento possam ser analisados e usados para informar melhor o sistema quanto a quanto realizar uma chamada de variância específica, tal como em conformidade com os princípios de aprendizado por máquina revelados no presente documento. Especificamente, o aprendizado por máquina pode ser implantado nos conjuntos de dados coletivos, especialmente em relação às variações determinadas, e esse aprendizado pode ser usado para gerar modelos de mutação mais abrangentes que, por sua vez, podem ser empregados para produzir determinações de variância mais precisas.[0506] Such mutation models may generate an account of the frequency and/or location of multiple known mutations and/or mutations that appear to occur in conjunction with one another or otherwise non-randomly. For example, it has been determined that toward the ends of a given chromosome, variations occur predominantly. Thus, known mutation models may be generated, stored in a database herein, and used by the system to produce a better prediction of the presence of one or more variations within the genomic data being analyzed. Additionally, a machine learning process, as described in more detail below herein, may also be implemented such that multiple output data derived by the analyses performed herein may be analyzed and used to better inform the system as to whether to make a specific variance call, such as in accordance with the machine learning principles disclosed herein. Specifically, machine learning can be deployed on collective datasets, especially regarding the variances determined, and this learning can be used to generate more comprehensive mutation models, which in turn can be employed to produce more accurate variance determinations.

[0507] Logo, o sistema pode ser configurado para observar todos os vários dados de variação, extrair esses dados para várias correlações e, quando correlações forem encontradas, tais informações podem ser usadas para ponderar melhor e, portanto, determinar mais precisamente a presença de outras variações em outras amostras de genoma, tal como em uma base contínua. Consequentemente, de uma maneira tal como essa, o sistema, especialmente o mecanismo de chamada de variante, pode constantemente ser atualizado em relação aos dados de correlação de variante aprendidos de modo a produzir melhores chamadas de variante que se movem adiante, de modo a obter dados de resultados melhores e mais precisos.[0507] Thus, the system may be configured to observe all of the various variation data, mine that data for various correlations, and when correlations are found, such information may be used to better weight and therefore more accurately determine the presence of other variations in other genome samples, such as on an ongoing basis. Accordingly, in such a manner, the system, especially the variant calling engine, may be constantly updated with respect to the learned variant correlation data so as to produce better variant calls moving forward, so as to obtain better and more accurate result data.

[0508] Especificamente, telemetria pode ser empregada para atualizar o modelo de mutação crescente de moo a atingir melhor análise no sistema. Isso pode ser de utilidade particular ao analisar amostras que estão, de alguma forma, conectadas umas com as outras, tal como por estar dentro da mesma população geográfica, e/ou podem ser usadas para determinar qual genoma de referência dentre uma multiplicidade de genomas de referência pode ser um genoma de referência melhor pelo qual uma amostra particular deve ser analisada. Ademais, em vários casos, modelo de mutação e/ou telemetria podem ser empregados de modo a selecionar melhor o genoma de referência a ser empregado nos processos de sistema e, assim, aumentar a precisão e a eficácia dos resultados do sistema. Particularmente, quando uma pluralidade de genomas de referência pode ser empregada em uma ou mais das análises no presente documento, um genoma de referência particular pode ser selecionado para uso em relação a outros, tal como aplicando-se um modelo de mutação de modo a selecionar o genoma de referência mais adequado a aplicar.[0508] Specifically, telemetry may be employed to update the growing mutation model of moo to achieve better analysis in the system. This may be of particular utility when analyzing samples that are in some way connected to each other, such as by being within the same geographic population, and/or may be used to determine which reference genome among a plurality of reference genomes may be a better reference genome by which a particular sample should be analyzed. Furthermore, in various cases, mutation modeling and/or telemetry may be employed in order to better select the reference genome to be used in the system processes and thus increase the accuracy and efficiency of the system results. In particular, when a plurality of reference genomes may be used in one or more of the analyses herein, a particular reference genome may be selected for use over others, such as by applying a mutation model in order to select the most appropriate reference genome to apply.

[0509] Nota-se que, ao realizar análise secundária, a estrutura fundamental para cada região do genoma que é mapeado e alinhado pode incluir um ou mais genes subjacentes. Consequentemente, em vários casos, esse entendimento dos genes subjacentes e/ou das funções das proteínas que os mesmos codificam pode ser informativo ao realizar análise secundária. Particularmente, indicações e/ou resultados terciários podem ser úteis nos protocolos de análise secundária que são executados pelo presente sistema, tal como em um processo de modelo de mutação contextualmente sensível biológico. Mais particularmente, visto que o DNA codifica genes, em que os genes codificam proteínas, as informações sobre tais proteínas que resultam em mutações e/ou funções repulsivas podem ser usadas para informar os modelos de mutação que são empregados no desempenho de análises secundárias e/ou terciárias no genoma do sujeito.[0509] It is noted that when performing secondary analysis, the underlying structure for each region of the genome that is mapped and aligned may include one or more underlying genes. Accordingly, in many cases, this understanding of the underlying genes and/or the functions of the proteins they encode may be informative when performing secondary analysis. In particular, tertiary cues and/or results may be useful in secondary analysis protocols that are performed by the present system, such as in a biological contextually sensitive mutation modeling process. More particularly, since DNA encodes genes, where genes encode proteins, information about such proteins that result in repulsive mutations and/or functions may be used to inform mutation models that are employed in performing secondary and/or tertiary analyses on the subject's genome.

[0510] Por exemplo, a análise terciária, tal como em um conjunto de genes de amostra que codifica proteínas com mutação, pode ser informativa ao realizar análise secundária de regiões genômicas, conhecidas por codificar tais mutações. Logo, conforme apresentado acima, vários resultados de processamento terciário podem ser usados para informar e/ou atualizar os modelos de mutação usados no presente documento para atingir melhor precisão e eficácia ao realizar as várias operações de análise secundária reveladas no presente documento. Especificamente, as informações sobre proteínas com mutação, por exemplo, análise terciária contextual, podem ser usadas para atualizar o modelo de mutação ao realizar análise secundária dessas regiões conhecidas por codificar as proteínas e/ou por incluir potencialmente tais mutações.[0510] For example, tertiary analysis, such as on a set of sample genes encoding mutated proteins, may be informative when performing secondary analysis of genomic regions known to encode such mutations. Thus, as discussed above, various tertiary processing results may be used to inform and/or update the mutation models used herein to achieve improved accuracy and efficiency when performing the various secondary analysis operations disclosed herein. Specifically, information about mutated proteins, e.g., contextual tertiary analysis, may be used to update the mutation model when performing secondary analysis of those regions known to encode proteins and/or potentially include such mutations.

[0511] Consequentemente, em vista do anterior, para modalidades que envolvem aplicações de mapeamento, alinhamento, classificação e/ou chamada de variante acelerados por FPGA, uma ou mais dessas funções podem ser implantadas em um ou ambos os componentes de processamento de software e hardware (HW), tais como software em execução em uma CPU, GPU, QPU, e/ou firmware tradicional, tal como pode estar incorporado em um FPGA, ASIC, sASIC e similares. Em tais casos, a CPU e o FPGA precisam ter capacidade para comunicar-se de modo a passar os resultados de uma etapa em um dispositivo, por exemplo, a CPU ou o FPGA, a serem processados em uma etapa seguinte no outro dispositivo. Por exemplo, quando uma função de mapeamento é executada, a construção de grandes estruturas de dados, tal como um índice da referência, pode ser implantada pela CPU, em que a execução de uma função de hash em relação à mesma pode ser implantada pelo FPGA. Em tal caso, a CPU pode construir a estrutura de dados, armazenar a mesma em uma memória associada, tal como uma DRAM, em que a memória pode ser, então, acessada pelos mecanismos de processamento em execução no FPGA.[0511] Accordingly, in view of the foregoing, for embodiments involving FPGA-accelerated mapping, alignment, classification, and/or variant calling applications, one or more of these functions may be implemented in one or both of the software and hardware (HW) processing components, such as software running on a CPU, GPU, QPU, and/or traditional firmware, as may be embedded in an FPGA, ASIC, sASIC, and the like. In such cases, the CPU and FPGA need to be able to communicate in order to pass the results of a step on one device, e.g., the CPU or the FPGA, to be processed in a subsequent step on the other device. For example, when a mapping function is executed, the construction of large data structures, such as an index of the reference, may be implemented by the CPU, wherein the execution of a hash function against the same may be implemented by the FPGA. In such a case, the CPU can construct the data structure, store it in an associated memory, such as DRAM, where the memory can then be accessed by the processing engines running on the FPGA.

[0512] Por exemplo, em algumas modalidades, comunicações entre a CPU e o FPGA podem ser implantadas por qualquer interconexão adequada, tal como um barramento periférico, tal como um barramento de PCIe, USB, ou uma interface de rede, tal como a Ethernet. Entretanto, um barramento de PCIe pode ser uma integração comparativamente frouxa entre a CPU e o FPGA, de modo que latências de transmissão entre os dois possam ser relativamente altas. Consequentemente, embora um dispositivo, por exemplo, (a CPU ou o FPGA) possam acessar a memória fixada ao outro dispositivo (por exemplo, por uma transferência de DMA), a região (ou regiões) de memória acessada não é armazenável em cache, devido ao fato de que não há facilidade de manter coerência de cache entre os dois dispositivos. Como uma consequência, as transmissões entre a CPU e o FPGA têm ocorrência restrita entre etapas de processamento de alto nível grandes, e uma grande quantidade de entrada e saída precisa ser colocada em fila entre os dispositivos de modo que não retardem uns aos outros aguardando operações de alta latência. Isso retarda as várias operações de processamento reveladas no presente documento. Além disso, quando o FPGA acessa memória de CPU não armazenável em cache, a carga completa de tal acesso é imposta sobre as interfaces de memória externa da CPU, que são de largura de banda limitada em comparação com suas interfaces de cache internas.[0512] For example, in some embodiments, communications between the CPU and the FPGA may be implemented over any suitable interconnect, such as a peripheral bus, such as a PCIe bus, USB, or a network interface, such as Ethernet. However, a PCIe bus may be a comparatively loose integration between the CPU and the FPGA, such that transmission latencies between the two may be relatively high. Consequently, although one device, for example, (the CPU or the FPGA) may access memory attached to the other device (e.g., by a DMA transfer), the memory region (or regions) accessed is not cacheable, due to the fact that there is no facility to maintain cache coherence between the two devices. As a consequence, transmissions between the CPU and the FPGA are restricted to occurring between large high-level processing steps, and a large amount of input and output needs to be queued between the devices so that they do not slow each other down waiting for high-latency operations. This slows down the various processing operations revealed in this paper. Furthermore, when the FPGA accesses non-cacheable CPU memory, the full burden of such access is imposed on the CPU's external memory interfaces, which are bandwidth-limited compared to its internal cache interfaces.

[0513] Consequentemente, devido a tais integrações de CPU/FPGA frouxas, é, de modo geral, necessário ter controle de software "centralizado" sobre a interface de FPGA. Em tais casos, as várias cadeias de software podem estar processando várias unidades de dados, mas, quando essas cadeias geram trabalho para o mecanismo de FPGA realizar, o trabalho precisa ser agregado em armazenamentos temporários "centrais" , tal como por uma única cadeia de software agregador ou por múltiplas cadeias que bloqueiam o acesso de agregação por meio de semáforos, com transmissão de trabalho agregado por meio de pacotes de DMA gerenciados por um módulo de software central, tal como um driver de espaço do kernel. Logo, conforme os resultados são produzidos pelos mecanismos de HW, o processo reverso ocorre, com um driver de software recebendo pacotes de DMA a partir do HW, e uma cadeia de desagregador distribuindo os resultados às várias cadeias de trabalhador de software em espera. Entretanto, esse controle de software centralizado de comunicação com a lógica de FPGA de HW é pouco prático e dispendioso em uso de recurso, reduz a eficácia de encadeamento de software e comunicação de HW/ software, limita a largura de banda de comunicação de HW/software prática e aumenta drasticamente sua latência.[0513] Consequently, due to such loose CPU/FPGA integrations, it is generally necessary to have "centralized" software control over the FPGA interface. In such cases, the various software threads may be processing multiple data units, but when these threads generate work for the FPGA engine to perform, the work needs to be aggregated into "central" temporary stores, such as by a single aggregator software thread, or by multiple threads blocking aggregation access via semaphores, with aggregated work being passed via DMA packets managed by a central software module such as a kernel space driver. Then, as results are produced by the HW engines, the reverse process occurs, with a software driver receiving DMA packets from the HW, and a deaggregator thread distributing the results to the various waiting software worker threads. However, this centralized software control of communication with the HW FPGA logic is impractical and expensive in resource usage, reduces the effectiveness of software threading and HW/software communication, limits the practical HW/software communication bandwidth, and dramatically increases its latency.

[0514] Adicionalmente, conforme pode ser observado em relação à Figura 33A, uma integração frouxa entre a CPU 1000 e o FPGA 7 pode exigir que cada dispositivo tenha sua própria memória externa dedicada, tal como DRAMs 1014, 14. Conforme retratado na Figura 33A, a CPU (ou CPUs) 1000 tem sua própria DRAM 1014 na placa-mãe de sistema, tal como DIMMs DDR3 ou DDR4, enquanto o FPGA 7 tem suas próprias DRAMs dedicadas 14, tal como quatro SODIMMs de 8 GB, que podem estar diretamente conectadas ao FPGA 7 por meio de um ou mais barramentos de DDR3 6, tal como um barramento de PCIe de alta latência. De modo semelhante, a CPU 1000 pode estar comunicativamente acoplada a sua própria DRAM 1014, tal como por um barramento adequadamente configurado 1006. Conforme indicado acima, o FPGA 7 pode ser configurado para incluir um ou mais mecanismos de processamento 13, em que os mecanismos de processamento podem ser configurados para realizar uma ou mais funções em uma segmentação de bioinformática conforme descrito no presente documento, tal como quando o FPGA 7 inclui um mecanismo de mapeamento 13 a, um mecanismo de alinhamento 13b e um mecanismo de chamada de variante 13c. Outros mecanismos, conforme descrito no presente documento, podem também estar incluídos. Em várias modalidades, um ou ambos da CPU podem ser configurados de modo a incluir um cache 1014a, 14a, respectivamente, que tem capacidade para armazenar dados, tal como dados de resultado que são transferidos ao mesmo por um ou mais dos vários componentes do sistema, tal como uma ou mais memórias e/ou mecanismos de processamento.[0514] Additionally, as can be seen with respect to Figure 33A, loose integration between the CPU 1000 and the FPGA 7 may require each device to have its own dedicated external memory, such as DRAMs 1014, 14. As depicted in Figure 33A, the CPU(s) 1000 has its own DRAM 1014 on the system motherboard, such as DDR3 or DDR4 DIMMs, while the FPGA 7 has its own dedicated DRAMs 14, such as four 8 GB SODIMMs, which may be directly connected to the FPGA 7 via one or more DDR3 buses 6, such as a high latency PCIe bus. Similarly, the CPU 1000 may be communicatively coupled to its own DRAM 1014, such as by a suitably configured bus 1006. As noted above, the FPGA 7 may be configured to include one or more processing engines 13, wherein the processing engines may be configured to perform one or more functions in a bioinformatics segmentation as described herein, such as when the FPGA 7 includes a mapping engine 13a, an alignment engine 13b, and a variant calling engine 13c. Other engines as described herein may also be included. In various embodiments, one or both of the CPU may be configured to include a cache 1014a, 14a, respectively, that has the capacity to store data, such as result data that is transferred thereto by one or more of the various components of the system, such as one or more memories and/or processing engines.

[0515] Muitas das operações reveladas no presente documento, a serem realizadas pelo FPGA 7 para processamento genômico, exigem acessos de memória grandes para o desempenho das operações subjacentes. Especificamente, devido às grandes unidades de dados envolvidas, por exemplo, 3+ bilhões de genomas de referência de nucleotídeo, 100+ bilhões de nucleotídeos de dados de leitura de sequenciador, etc., o FPGA 7 pode precisar acessar a memória hospedeira 1014 um grande número de vezes tal como para acessar um índice, tal como um tabela de hash de 30 GB ou outro índice de genoma de referência, tal como o propósito de mapear as sementes de uma consulta de DNA/RNA sequenciado a um genoma de referência de 3 Gbp e/ou para buscar segmentos candidatos, por exemplo, do genoma de referência, para se alinhar contra o mesmo.[0515] Many of the operations disclosed herein to be performed by the FPGA 7 for genomic processing require large memory accesses to perform the underlying operations. Specifically, due to the large units of data involved, e.g., 3+ billion nucleotide reference genomes, 100+ billion nucleotides of sequencer read data, etc., the FPGA 7 may need to access the host memory 1014 a large number of times such as to access an index, such as a 30 GB hash table or other reference genome index, such as for the purpose of mapping the seeds of a sequenced DNA/RNA query to a 3 Gbp reference genome and/or to search for candidate segments, e.g., of the reference genome, to align against.

[0516] Consequentemente, em várias implantações do sistema revelado no presente documento, muitos acessos de memória aleatória rápidos podem precisar ocorrer por um ou mais dos mecanismos de processamento com fio 13, tal como no desempenho de uma operação de mapeamento, alinhamento, e/ou chamada de variante. Entretanto, pode ser proibitivamente não prático para o FPGA 7 realizar tantos acessos aleatórios pequenos através do barramento periférico 3 ou outro enlace de rede à memória 1014 fixada à CPU hospedeira 1000. Por exemplo, em tais casos, as latências de dados de retorno podem ser muito altas, a eficácia de barramento pode ser muito baixa, por exemplo, para tais acessos aleatórios pequenos e a carga sobre a interface de memória externa da CPU 1006 pode ser proibitivamente grande.[0516] Accordingly, in various implementations of the system disclosed herein, many fast random memory accesses may need to occur by one or more of the wired processing engines 13, such as in the performance of a mapping, alignment, and/or variant calling operation. However, it may be prohibitively impractical for the FPGA 7 to perform so many small random accesses via the peripheral bus 3 or other network link to the memory 1014 attached to the host CPU 1000. For example, in such cases, the return data latencies may be very high, the bus efficiency may be very low, e.g., for such small random accesses, and the load on the CPU's external memory interface 1006 may be prohibitively large.

[0517] Adicionalmente, como resultado de cada dispositivo precisar de sua própria memória externa dedicada, o fator de forma típico da plataforma de CPU 1000 + FPGA 7 completa é forçado a ser maior do que pode ser desejável, por exemplo, para algumas aplicações. Em tais casos, adicionalmente a uma placa-mãe de sistema padrão para uma ou mais CPUs 1000 e chips 7 e memórias de suporte, 1014 e/ou 14, é necessário espaço na placa para um pacote de FPGA grande (que pode precisar ainda ser maior de modo a ter pinos suficientes para diversos barramentos de memória externa) e diversos módulos de memória , 1014, 14. As placas-mãe padrão, entretanto, não incluem esses componentes, nem poderiam ter facilmente espaço para os mesmos, então, uma modalidade prática pode ser configurada para utilizar um cartão de expansão 2, contendo o FPGA 7, sua memória 14 e outros componentes de suporte, tal como fonte de alimentação, por exemplo, conectados ao slot de expansão de PCIe na placa-mãe de CPU. Para ter espaço para o cartão de expansão 2, o sistema pode ser fabricado para estar em um chassi grande o suficiente, tal como um a 1U ou 2U ou servidor de montagem em prateleira maior.[0517] Additionally, as a result of each device needing its own dedicated external memory, the typical form factor of the complete CPU 1000 + FPGA 7 platform is forced to be larger than may be desirable, for example, for some applications. In such cases, in addition to a standard system motherboard for one or more CPUs 1000 and chips 7 and supporting memories, 1014 and/or 14, space is required on the board for a large FPGA package (which may need to be even larger in order to have enough pins for multiple external memory buses) and multiple memory modules, 1014, 14. Standard motherboards, however, do not include these components, nor could they easily have space for them, so a practical embodiment may be configured to utilize an expansion card 2, containing the FPGA 7, its memory 14, and other supporting components, such as a power supply, for example, connected to the PCIe expansion slot on the CPU motherboard. To make room for expansion card 2, the system can be manufactured to be in a large enough chassis, such as a 1U or 2U or larger rackmount server.

[0518] Em vista do anterior, em diversos casos, conforme pode ser observado em relação à Figura 33B, para superar esses fatores, pode ser desejável configurar a CPU 1000 para estar em uma disposição de acoplamento firme com o FPGA 7. Particularmente, em vários casos, o FPGA 7 pode ser firmemente acoplado à CPU 1000, tal como por uma interconexão de baixa latência 3, tal como uma interconexão de caminho rápida (QPI). Especificamente, para estabelecer uma integração de CPU+FPGA mais firme, os dois dispositivos podem ser conectados por qualquer interface de baixa latência adequada, tal como uma "interconexão de processador" ou similar, tal como Interconexão de Caminho Rápido INTELS® (QPI) ou HyperTransport (HT).[0518] In view of the foregoing, in many instances, as can be seen with respect to Figure 33B, to overcome these factors, it may be desirable to configure the CPU 1000 to be in a tightly coupled arrangement with the FPGA 7. Particularly, in many instances, the FPGA 7 may be tightly coupled to the CPU 1000, such as by a low latency interconnect 3, such as a fast path interconnect (QPI). Specifically, to establish tighter CPU+FPGA integration, the two devices may be connected by any suitable low latency interface, such as a "processor interconnect" or the like, such as INTELS® Fast Path Interconnect (QPI) or HyperTransport (HT).

[0519] Consequentemente, conforme observado em relação à Figura 33B, é fornecido um sistema 1 em que o sistema inclui tanto uma CPU 1000 quanto um processador, tal como um FPGA 7, em que ambos os dispositivos estão associados a um ou mais módulos de memória. Por exemplo, conforme representado, a CPU 1000 pode ser acoplada, tal como por meio de um barramento adequadamente configurado 1006, a uma DRAM 1014, e de modo semelhante, o FPGA 7 é comunicativamente acoplado a uma memória associada 14 por meio de um barramento DDR3 6. Entretanto, nesse caso, em vez de serem acoplados um ao outro, tal como por uma interconexão de alta latência típica, por exemplo, interface de PCIe, a CPU 1000 é acoplada ao FPGA 7 por uma interconexão de hiper transporte de baixa latência 3, tal como uma QPI. Em tal caso, devido à natureza de baixa latência inerente de tais interconexões, as memórias associadas 1014, 14 da CPU 1000 e do FPGA 7 são prontamente acessíveis uma pela outra. Adicionalmente, em vários casos, devido a essa configuração de acoplamento firme, um ou mais caches 1114a/14a associados aos dispositivos podem ser configurados de modo a serem coerentes em relação uns aos outros.[0519] Accordingly, as seen with respect to Figure 33B, there is provided a system 1 wherein the system includes both a CPU 1000 and a processor, such as an FPGA 7, wherein both devices are associated with one or more memory modules. For example, as depicted, the CPU 1000 may be coupled, such as via a suitably configured bus 1006, to a DRAM 1014, and similarly, the FPGA 7 is communicatively coupled to an associated memory 14 via a DDR3 bus 6. However, in this case, rather than being coupled to each other, such as via a typical high latency interconnect, e.g., PCIe interface, the CPU 1000 is coupled to the FPGA 7 via a low latency hyper transport interconnect 3, such as a QPI. In such a case, due to the inherent low latency nature of such interconnects, the associated memories 1014, 14 of the CPU 1000 and the FPGA 7 are readily accessible to each other. Additionally, in various cases, due to this tight coupling configuration, one or more caches 1114a/14a associated with the devices may be configured to be coherent with respect to each other.

[0520] Algumas propriedades chave de tal interconexão de CPU/FPGA firmemente acoplada incluem uma alta largura de banda, por exemplo, 12,8 GB/s; baixa latência, por exemplo, 100 a 300 ns; um protocolo adaptado projetado para permitir acessos de memória remota eficazes e transferências de memória pequenas eficazes, por exemplo, na ordem de 64 bytes ou menos; e um protocolo suportado e integração de CPU para acesso de cache e coerência de cache. Em tais casos, uma interconexão natural para uso para tal integração firme com uma dada CPU 1000 pode ser sua interconexão de CPU a CPU nativa 1003, que pode ser empregada no presente documento para possibilitar que múltiplos núcleos e múltiplas CPUs operem em paralelo em um espaço de memória compartilhada 1014, permitindo, assim, o acesso de pilhas de cache e memória externa um do outro de uma maneira coerente com cache.[0520] Some key properties of such a tightly coupled CPU/FPGA interconnect include a high bandwidth, e.g., 12.8 GB/s; low latency, e.g., 100 to 300 ns; an adapted protocol designed to enable efficient remote memory accesses and efficient small memory transfers, e.g., on the order of 64 bytes or less; and a supported protocol and CPU integration for cache access and cache coherence. In such cases, a natural interconnect to use for such tight integration with a given CPU 1000 may be its native CPU-to-CPU interconnect 1003, which may be employed herein to enable multiple cores and multiple CPUs to operate in parallel on a shared memory space 1014, thereby enabling access of each other's cache stacks and external memory in a cache-coherent manner.

[0521] Consequentemente, conforme pode ser observado em relação às Figuras 34A e 34B, uma placa 2 pode ser fornecida, tal como em que a placa pode ser configurada para receber uma ou mais CPUs 1000, tal como por meio de uma pluralidade de interconexões 1003, tal como interconexões de CPU-CPU nativas 1003a e 1003b. Entretanto, nesse caso, conforme representado na Figura 34A, uma CPU 1000 é configurada de modo a ser acoplada à interconexão 1003a, mas, em vez de outra CPU ser acoplada à mesma por meio da interconexão 1003b, um FPGA 7 da revelação é configurado de modo a ser acoplado à mesma. Adicionalmente, o sistema 1 é configurado de modo que a CPU 1000 possa ser acoplada ao FPGA associado 7, tal como por uma interconexão de acoplamento firme de baixa latência 3. Em tais casos, cada memória 1014, 14 associada aos respectivos dispositivos 1000, 7 pode ser produzida de modo a ser acessível uma pela outra, tal como de uma maneira coerente com cache de alta largura de banda.[0521] Accordingly, as can be seen with respect to Figures 34A and 34B, a board 2 may be provided, such as wherein the board may be configured to receive one or more CPUs 1000, such as via a plurality of interconnects 1003, such as native CPU-CPU interconnects 1003a and 1003b. However, in this case, as depicted in Figure 34A, a CPU 1000 is configured to be coupled to interconnect 1003a, but instead of another CPU being coupled thereto via interconnect 1003b, an FPGA 7 of the disclosure is configured to be coupled thereto. Additionally, system 1 is configured such that CPU 1000 may be coupled to associated FPGA 7, such as by a low-latency tight-coupled interconnect 3. In such cases, each memory 1014, 14 associated with respective devices 1000, 7 may be designed to be accessible by one another, such as in a high-bandwidth cache-coherent manner.

[0522] De modo semelhante, conforme pode ser observado em relação à Figura 34B, o sistema pode ser também configurado de modo a receber pacotes 1002a e/ou 1002b, tal como em que cada um dos pacotes inclui uma ou mais CPUs 1000a, 1000b que são firmemente acopladas, por exemplo, por meio de interconexões de baixa latência 3a e 3b, a um ou mais FPGAs 7a, 7b, tal como em que, dada a arquitetura de sistema, cada pacote 2a e 2b pode ser acoplado um ao outro, tal como por meio de uma interconexão de acoplamento firme 3. Ademais, conforme pode ser observado em relação à Figura 35, em vários casos, um pacote 1002a pode fornecido, em que o pacote 1002a inclui uma CPU 1000 que foi fabricada de tal maneira que seja acoplada intimamente a um circuito integrado, tal como um FPGA 7. Em tal caso, devido ao acoplamento íntimo da CPU 1000 e do FPGA 7, o sistema pode ser construído de modo que possam compartilhar diretamente um cache 1014a de uma maneira que seja consistente, coerente e prontamente acessível por qualquer dispositivo, tal como em relação aos dados armazenados no mesmo.[0522] Similarly, as can be seen with respect to Figure 34B, the system can also be configured to receive packets 1002a and/or 1002b, such as wherein each of the packets includes one or more CPUs 1000a, 1000b that are tightly coupled, for example, via low latency interconnects 3a and 3b, to one or more FPGAs 7a, 7b, such as wherein, given the system architecture, each packet 2a and 2b can be coupled to one another, such as via a tightly coupled interconnect 3. Furthermore, as can be seen with respect to Figure 35, in various instances, a package 1002a can be provided, wherein the package 1002a includes a CPU 1000 that has been manufactured in such a manner that it is tightly coupled to an integrated circuit, such as an FPGA 7. In such a case, Due to the close coupling of the CPU 1000 and the FPGA 7, the system may be constructed such that they may directly share a cache 1014a in a manner that is consistent, coherent, and readily accessible by any device, such as with respect to the data stored therein.

[0523] Logo, em tais casos, o FPGA 7 e/ou o pacote 2a/2b pode, de fato, mascarar-se como outra CPU e, assim, operar em um ambiente de memória compartilhada coerente com cache com uma ou mais CPUs, assim como múltiplas CPUs em uma placa-mãe de múltiplos soquetes 1002 ou múltiplos núcleos de CPU dentro de um dispositivo de CPU de múltiplo núcleos. Com tal interconexão de FPGA/CPU, o FPGA 7 pode compartilhar eficazmente memória de CPU 1014, em vez de ter sua própria memória externa dedicada 14, que pode ou não ser incluída e acessada. Assim, em tal configuração, acessos rápidos, curtos, aleatórios são suportados eficazmente pela interconexão 3, tal como com baixa latência. Isso torna prático que os vários mecanismos de processamento 13 no FPGA 7 acessem grandes estruturas de dados na memória da CPU 1000.[0523] Thus, in such cases, the FPGA 7 and/or package 2a/2b may in effect masquerade as another CPU and thus operate in a cache-coherent shared memory environment with one or more CPUs, such as multiple CPUs on a multi-socket motherboard 1002 or multiple CPU cores within a multi-core CPU device. With such an FPGA/CPU interconnect, the FPGA 7 may effectively share CPU memory 1014, rather than having its own dedicated external memory 14, which may or may not be included and accessed. Thus, in such a configuration, fast, short, random accesses are effectively supported by the interconnect 3, such as with low latency. This makes it practical for the various processing engines 13 in the FPGA 7 to access large data structures in the memory of the CPU 1000.

[0524] Por exemplo, conforme pode ser observado em relação à Figura 37, um sistema para realizar um ou mais dos métodos revelados no presente documento é fornecido, tal como em que o método inclui uma ou mais etapas para realizar as funções da revelação, tal como uma ou mais funções de mapeamento e/ou alinhamento e/ou chamada de variante, conforme descrito no presente documento, de uma maneira compartilhada. Particularmente, em uma etapa (1), uma estrutura de dados pode ser gerada ou fornecida de outro modo, tal como por um NGS e/ou CPU 1000, em que a estrutura de dados pode ser, então, armazenada em uma memória associada (2), tal como uma DRAM 1014. A estrutura de dados pode ser qualquer estrutura de dados, tal como em relação àquelas descritas no presente documento, mas, nesse caso, pode ser uma pluralidade de leituras de dados sequenciados e/ou um genoma de referência e/ou um índice do genoma de referência, tal como para o desempenho de funções de mapeamento e/ou alinhamento e/ou chamada de variante.[0524] For example, as can be seen with respect to Figure 37 , a system for performing one or more of the methods disclosed herein is provided, such as wherein the method includes one or more steps for performing the functions of the disclosure, such as one or more mapping and/or alignment and/or variant calling functions, as described herein, in a shared manner. Particularly, in a step (1), a data structure may be generated or otherwise provided, such as by an NGS and/or CPU 1000, wherein the data structure may then be stored in an associated memory (2), such as a DRAM 1014. The data structure may be any data structure, such as with respect to those described herein, but in this case may be a plurality of sequenced data reads and/or a reference genome and/or an index of the reference genome, such as for performing mapping and/or alignment and/or variant calling functions.

[0525] Em uma segunda etapa (2), tal como em relação às funções de mapeamento e/ou alinhamento, etc., um FPGA 7 associado à CPU 1000, tal como por uma interface de acoplamento firme 3, pode acessar a memória associada de CPU 1014, de modo a realizar uma ou mais ações em relação às leituras sequenciadas armazenadas, genoma (ou genomas) de referência e/ou um índice do mesmo. Particularmente, em uma etapa (3), por exemplo, em uma operação de mapeamento exemplificativa, o FPGA 7 pode acessar a estrutura de dados, por exemplo, as leituras sequenciadas e/ou sequências de referência, de modo a produzir uma ou mais semente a partir das mesmas, tal como em que a estrutura de dados inclui uma ou mais leituras e/ou sequências de referência de genoma. Em tal caso, as sementes, por exemplo, ou as sequências de referência e/ou leitura podem ser empregadas para os propósitos de realizar uma função de hash em relação às mesmas, tal como para produzir uma ou mais leituras que foram mapeadas a uma ou mais posições em relação ao genoma de referência.[0525] In a second step (2), such as in relation to mapping and/or alignment functions, etc., an FPGA 7 associated with the CPU 1000, such as via a tight coupling interface 3, may access CPU associated memory 1014 so as to perform one or more actions in relation to the stored sequenced reads, reference genome (or genomes), and/or an index thereof. Particularly, in a step (3), for example, in an exemplary mapping operation, the FPGA 7 may access a data structure, e.g., the sequenced reads and/or reference sequences, so as to produce one or more seeds therefrom, such as wherein the data structure includes one or more genome reference reads and/or sequences. In such a case, the seeds, for example, or the reference sequences and/or reads may be employed for the purposes of performing a hash function in relation thereto, such as to produce one or more reads that have been mapped to one or more positions in relation to the reference genome.

[0526] Em outra etapa (3), os dados de resultado mapeados podem ser armazenados, por exemplo, na memória hospedeira 1014 ou em uma DRAM associada 14. Adicionalmente, uma vez que os dados tenham sido mapeados, o FPGA 7, ou um mecanismo de processamento 13 do mesmo, podem ser reconfigurados, por exemplo, parcialmente reconfigurados, como um mecanismo de alinhamento, que pode então, acessar a estrutura de dados mapeada armazenada de modo a realizar uma função de alinhamento na mesma, de modo a produzir uma ou mais leituras que foram alinhadas ao genoma de referência. Em uma etapa adicional (4), a CPU hospedeira pode, então, acessar os dados mapeados e/ou alinhados de modo a realizar uma ou mais funções na mesma, tal como para a produção de um Gráfico de De Brujin (“DBG"), em que o DBG pode ser, então, armazenado em sua memória associada. De modo semelhante, em uma ou mais etapas adicionais, o FPGA 7 pode novamente acessar a memória de CPU hospedeira 1014 de modo a acessar o DBG e realizar uma análise de HMM no mesmo de modo a produzir um ou mais arquivos de chamada de variante.[0526] In another step (3), the mapped result data may be stored, for example, in host memory 1014 or in an associated DRAM 14. Additionally, once the data has been mapped, the FPGA 7, or a processing engine 13 thereof, may be reconfigured, for example, partially reconfigured, as an alignment engine, which may then access the stored mapped data structure so as to perform an alignment function thereon, so as to produce one or more reads that have been aligned to the reference genome. In a further step (4), the host CPU may then access the mapped and/or aligned data so as to perform one or more functions thereon, such as for producing a De Brujin Graph (“DBG”), wherein the DBG may then be stored in its associated memory. Similarly, in one or more additional steps, the FPGA 7 may again access the host CPU memory 1014 in order to access the DBG and perform an HMM analysis on it in order to produce one or more variant call files.

[0527] Em casos particulares, a CPU 1000 e/ou o FPGA 7 pode ter um ou mais caches de memória, que devido ao acoplamento firme da interface entre os dois dispositivos, permitirá que caches separados sejam coerentes, tal como em relação aos dados de transição, por exemplo, dados de resultados, armazenados nos mesmos, tal como os resultados do desempenho de uma ou mais funções no presente documento. De uma maneira tal como essa, os dados podem ser compartilhados de modo substancialmente contínuo entre os dispositivos firmemente acoplados, permitindo, assim, que uma segmentação de funções seja entrelaçada juntamente, tal como em uma segmentação de bioinformática. Assim, em tal caso, pode não ser mais necessário que o FPGA 7 tenha sua própria memória externa dedicada e, logo, devido a tal configuração de acoplamento firme, as leituras armazenadas, o genoma de referência e/ou o índice genômico de referência, conforme descrito no presente documento, podem ser intensivamente compartilhados, por exemplo, de uma maneira coerente com cache, tal como para mapeamento e alinhamento de leitura e outras operações de processamento de dados genômicos.[0527] In particular cases, the CPU 1000 and/or the FPGA 7 may have one or more memory caches, which due to the tight coupling of the interface between the two devices, will allow separate caches to be coherent, such as with respect to transition data, e.g., results data, stored therein, such as the results of the performance of one or more functions herein. In such a manner, data may be shared in a substantially seamless manner between the tightly coupled devices, thereby allowing a range of functions to be interwoven together, such as in a bioinformatics range. Thus, in such a case, it may no longer be necessary for the FPGA 7 to have its own dedicated external memory, and thus, due to such a tightly coupled configuration, the stored reads, reference genome, and/or reference genomic index, as described herein, may be intensively shared, e.g., in a cache-coherent manner, such as for read mapping and alignment and other genomic data processing operations.

[0528] Adicionalmente, conforme pode ser observado em relação à Figura 38, as configurações de baixa latência e coerência de cache, assim como outras configurações de componentes discutidas no presente documento, permitem que operações menores de nível mais baixo sejam realizadas em um dispositivo (por exemplo, em uma CPU ou FPGA), antes de devolver uma estrutura de dados ou cadeia processamento 20 ao outro dispositivo, tal como para processamento adicional. Por exemplo, em um caso, uma cadeia de CPU 20a pode ser configurada para colocar em fila grandes quantidades de trabalho para a lógica de hardware de FPGA 13 processar, e a cadeia igual ou diferente 20b pode ser configurada para, então, processar a grande fila de dados de resultados assim gerados, tal como em um tempo substancialmente posterior. Entretanto, em vários casos, pode ser mais eficaz, conforme apresentado no presente documento, que uma cadeia de CPU única 20 realize uma "chamada de função" de bloqueio a um mecanismo de hardware de FPGA acoplado 13, em que a CPU pode ser ajustada para retomar a execução de software assim que a função de hardware de FPGA estiver concluída. Logo, em vez de colocar as estruturas de dados em pacotes para transmissão contínua por DMA 14 para o FPGA 7 e tirar dos pacotes os resultados quando retornam, uma cadeia de software 20 poderia, simplesmente, fornecer um indicador de memória ao mecanismo de FPGA 13, que poderia acessar e modificar a memória compartilhada 1014/14 no local, de uma maneira coerente com cache.[0528] Additionally, as can be seen with respect to Figure 38 , low latency and cache coherency configurations, as well as other component configurations discussed herein, allow for smaller, lower-level operations to be performed on one device (e.g., on a CPU or FPGA) before returning a data structure or processing chain 20 to the other device, such as for further processing. For example, in one case, a CPU chain 20a may be configured to queue large amounts of work for the FPGA hardware logic 13 to process, and the same or different chain 20b may be configured to then process the large queue of result data thus generated, such as at a substantially later time. However, in many cases, it may be more efficient, as disclosed herein, for a single CPU chain 20 to perform a blocking "function call" to an attached FPGA hardware engine 13, where the CPU can be set to resume software execution once the FPGA hardware function is complete. Thus, rather than packetizing data structures for continuous transmission via DMA 14 to FPGA 7 and stripping the results from the packets when they return, a software chain 20 could simply provide a memory pointer to FPGA engine 13, which could access and modify shared memory 1014/14 in-place in a cache-coherent manner.

[0529] Particularmente, dada a relação entre as estruturas fornecidas no presente documento, a granularidade da cooperação de software/hardware pode ser muito mais fina, com operações de níveis mais baixos menores sendo alocadas de modo a serem realizadas por vários mecanismos de hardware 13, tal como chamadas de função de várias cadeias de software alocadas 20. Por exemplo, em uma plataforma de interconexão de CPU/FPGA frouxa, para aceleração eficaz de mapeamento, alinhamento e/ou chamada de variante de leitura de DNA/RNA, uma segmentação completa de mapeamento/alinhamento/chamada de variante pode ser construída como um ou mais mecanismos de software e/ou FPGA, com leituras não mapeadas e não alinhadas sendo transmitidas continuamente de software para hardware, e as leituras completamente mapeadas e alinhadas sendo transmitidas continuamente do hardware de volta para o, em que o processo pode ser repetido, tal como para chamada de variante. Em relação às configurações descritas no presente documento, isso pode ser muito rápido. Entretanto, em vários casos, tal sistema pode sofrer de limitações de flexibilidade, complexidade e/ou programabilidade, tal como devido ao fato de que a segmentação inteira de mapeamento/alinhamento e/ou chamada de variante é implantada em conjunto de circuitos de hardware, que, embora seja reconfigurável em um FPGA, é, de modo geral, muito menos flexível e programável do que software e pode ser, portanto, limitado a complexidade algorítmica menor.[0529] In particular, given the relationship between the structures provided herein, the granularity of the software/hardware cooperation may be much finer, with smaller lower-level operations being allocated to be performed by multiple hardware engines 13, such as function calls from multiple allocated software chains 20. For example, in a loose CPU/FPGA interconnect platform, for effective acceleration of DNA/RNA read mapping, alignment, and/or variant calling, a complete mapping/alignment/variant calling pipeline may be constructed as one or more software and/or FPGA engines, with unmapped and unaligned reads being continuously streamed from software to hardware, and fully mapped and aligned reads being continuously streamed from hardware back to hardware, where the process may be repeated, such as for variant calling. With respect to the configurations described herein, this may be very fast. However, in many cases, such a system may suffer from limitations in flexibility, complexity and/or programmability, such as due to the fact that the entire mapping/alignment and/or variant calling segmentation is implemented in hardware circuitry, which, although reconfigurable in an FPGA, is generally much less flexible and programmable than software and may therefore be limited to lower algorithmic complexity.

[0530] Em contrapartida, com o uso de uma interconexão firme de CPU/FPGA, tal como uma QPI ou outra interconexão nas configurações reveladas no presente documento, diversas operações discretas dispendiosas em recursos, tal como geração de semente e/ou mapeamento, varredura de resgate, alinhamento sem lacuna, com lacuna, por exemplo, Smith-Waterman, alinhamento, etc., podem ser implantadas como mecanismos de hardware acessíveis separadamente distintos 13, por exemplo, consultar a Figura 38, e os algoritmos gerais de mapeamento/alinhamento e/ou chamada de variante podem ser implantados em software, com chamadas de aceleração de baixo nível ao FPGA para as etapas de processamento dispendiosas específicas. Essa estrutura permite a programabilidade de software completa, fora das chamadas de aceleração específicas, e permite maior complexidade e flexibilidade algorítmicas do que operações implantadas em hardware.[0530] In contrast, using a tight CPU/FPGA interconnect, such as a QPI or other interconnect in the configurations disclosed herein, various resource-intensive discrete operations, such as seed generation and/or mapping, rescue scanning, gapless alignment, gapped alignment, e.g., Smith-Waterman alignment, etc., may be implemented as distinct, separately accessible hardware engines 13, e.g., see Figure 38 , and the general mapping/alignment and/or variant calling algorithms may be implemented in software, with low-level acceleration calls to the FPGA for the specific expensive processing steps. This structure allows for full software programmability outside of the specific acceleration calls, and allows for greater algorithmic complexity and flexibility than operations implemented in hardware.

[0531] Além disso, em tal estrutura de execução de software acelerada por chamadas de aceleração de hardware de FPGA de baixo nível discretas, as funções de aceleração de hardware podem ser mais facilmente compartilhadas para múltiplos propósitos. Por exemplo, quando mecanismos de hardware 13 formam grandes segmentações monolíticas, os subcomponentes individuais de segmentação podem ser, de modo geral, especializados para seu ambiente e interconectados apenas dentro de uma segmentação, que, a não ser que acoplada firmemente, pode não ser, de modo geral, acessível para qualquer propósito. Mas muitas operações de processamento de dados genômicos, tal como alinhamento de Smith-Waterman, alinhamento sem lacuna, construção de gráfico de Bruijn ou montagem e outras tais operações, podem ser usadas em vários algoritmos originais de nível mais alto. Por exemplo, conforme descrito no presente documento, o alinhamento de Smith-Waterman pode ser usado em mapeamento e alinhamento de leitura de DNA/RNA, tal como em relação a um genoma de referência, mas pode ser também configurado de modo a ser usado por chamadores de variante baseados em haplótipo, para alinhar haplótipos candidatos a um genoma de referência, ou uns aos outros, ou a leituras sequenciadas, tal como em uma análise de HMM e/ou função de chamada de variante. Logo, expor várias funções de aceleração de hardware de baixo nível discreta por meio de chamadas de função de software geral pode possibilitar que a mesma lógica de aceleração, por exemplo, 13, seja alavancada por toda uma aplicação de processamento de dados genômicos, tal como no desempenho de ambas as operações de alinhamento e chamada de variante, por exemplo, HMM.[0531] Furthermore, in such a software execution framework accelerated by discrete low-level FPGA hardware acceleration calls, hardware acceleration functions may be more easily shared for multiple purposes. For example, when hardware engines 13 form large monolithic segmentations, the individual segmentation subcomponents may generally be specialized for their environment and interconnected only within a segmentation, which, unless tightly coupled, may not generally be accessible for any purpose. But many genomic data processing operations, such as Smith-Waterman alignment, gapless alignment, de Bruijn graph construction or assembly, and other such operations, may be used in multiple original higher-level algorithms. For example, as described herein, Smith-Waterman alignment can be used in DNA/RNA read alignment and mapping, such as against a reference genome, but can also be configured to be used by haplotype-based variant callers to align candidate haplotypes to a reference genome, or to each other, or to sequenced reads, such as in an HMM analysis and/or variant calling function. Thus, exposing multiple discrete low-level hardware acceleration functions through general software function calls can enable the same acceleration logic, e.g., 13, to be leveraged throughout a genomic data processing application, such as in the performance of both alignment and variant calling operations, e.g., HMM.

[0532] É também prático, com interconexão firme de CPU/FPGA, ter controle de software de CPU 1000 distribuído em vez de centralizado através da comunicação com os vários mecanismos de hardware de FPGA 13 descritos no presente documento. Em práticas amplamente difundidas de projeto de software de múltiplas cadeias, múltiplos núcleos e múltiplas CPUs, muitas cadeias e processos de software comunicam-se e cooperam continuamente, sem quaisquer módulos, drivers ou cadeias de software centrais para gerenciar a intercomunicação. Em tal formato, isso é prático devido à memória compartilhada coerente com cache, que é visível a todas as cadeias em todos os núcleos das CPUs; enquanto o compartilhamento de memória coerente fisicamente entre os núcleos e CPUs ocorre por intercomunicação através de interconexão de processador, por exemplo, QPI ou HT.[0532] It is also practical, with tight CPU/FPGA interconnection, to have software control of CPU 1000 distributed rather than centralized through communication with the various FPGA hardware engines 13 described herein. In widespread multi-thread, multi-core, multi-CPU software design practices, many software threads and processes communicate and cooperate continuously, without any central software modules, drivers, or threads to manage the intercommunication. In such a format, this is practical due to cache-coherent shared memory, which is visible to all threads on all cores of the CPUs; while physically coherent memory sharing between cores and CPUs occurs by intercommunication via processor interconnect, e.g., QPI or HT.

[0533] De uma maneira similar, conforme pode ser observado em relação às Figuras 36 a 38, os sistemas fornecidos no presente documento podem ter diversas CPUs e/ou FPGAs que podem estar em uma configuração de interconexão firme de CPU/FPGA que incorpora uma multiplicidade de cadeias, por exemplo, 20a, b, c, e uma multiplicidade de processos em execução em um ou múltiplos núcleos e/ou CPUs, por exemplo, 1000a, 100b e 1000c. Como tal, os componentes de sistema são configurados para se comunicarem e cooperarem de uma maneira distribuída uns com os outros, por exemplo, entre os vários mecanismos de aceleração de hardware de CPU e/ou FPGA diferentes, tal como com o uso de compartilhamento de memória coerente com cache entre as várias CPUs e FPGAs. Por exemplo, conforme pode ser observado em relação à Figura 36, uma multiplicidade de núcleos de CPU 1000a, 1000b, e 1000c pode ser acoplada em conjunto de uma maneira que compartilhem uma ou mais memórias, por exemplo, DRAMs 1014, e/ou um ou mais caches que têm uma ou mais camadas, por exemplo, L1, L2, L3, etc., ou níveis associados aos mesmos. De modo semelhante, em relação à Figura 38, em outra modalidade, uma única CPU 1000 pode ser configurada para incluir múltiplos núcleos 1000a, 1000b, e 1000c que podem ser acoplados juntos de tal maneira que compartilhem uma ou mais memórias, por exemplo, DRAMs 1014, e/ou um ou mais caches, 1014a, que têm uma ou mais camadas ou níveis associados aos mesmos.[0533] In a similar manner, as can be seen with respect to Figures 36-38, the systems provided herein may have multiple CPUs and/or FPGAs that may be in a CPU/FPGA tight interconnect configuration that incorporates a plurality of chains, e.g., 20a, b, c, and a plurality of processes executing on one or multiple cores and/or CPUs, e.g., 1000a, 100b, and 1000c. As such, the system components are configured to communicate and cooperate in a distributed manner with each other, e.g., among the various different CPU and/or FPGA hardware acceleration engines, such as using cache-coherent memory sharing among the various CPUs and FPGAs. For example, as can be seen with respect to Figure 36 , a plurality of CPU cores 1000a, 1000b, and 1000c can be coupled together in a manner that they share one or more memories, e.g., DRAMs 1014, and/or one or more caches having one or more layers, e.g., L1, L2, L3, etc., or levels associated therewith. Similarly, with respect to Figure 38 , in another embodiment, a single CPU 1000 can be configured to include multiple cores 1000a, 1000b, and 1000c that can be coupled together in such a manner that they share one or more memories, e.g., DRAMs 1014, and/or one or more caches, 1014a, having one or more layers or levels associated therewith.

[0534] Logo, em qualquer modalidade, os dados a serem passados de uma ou mais cadeias de software 20 de um ou mais núcleos de CPU 1000 para um mecanismo de a hardware 13, por exemplo, de um FPGA, ou vice versa, podem ser atualizados de modo contínuo e/ou ininterrupto na memória compartilhada 1014, ou um cache e/ou camada da mesma, que está visível a cada dispositivo. Adicionalmente, as solicitações para processar dados na memória compartilhada 1014, ou notificação de resultados atualizados na mesma, podem ser sinalizadas entre o software e/ou o hardware, tal como através de um barramento adequadamente configurado, por exemplo, barramento DDR4, tal como em filas que podem ser implantadas dentro da própria memória compartilhada. Os mecanismos de software padrão para controle, transferência e proteção de dados, tais como semáforos, mutexes e números inteiros atômicos, podem ser também implantados similarmente para coordenação de software/hardware.[0534] Thus, in any embodiment, data to be passed from one or more software chains 20 of one or more CPU cores 1000 to a hardware engine 13, e.g., an FPGA, or vice versa, may be continuously and/or uninterruptedly updated in shared memory 1014, or a cache and/or layer thereof, that is visible to each device. Additionally, requests to process data in shared memory 1014, or notification of updated results therein, may be signaled between the software and/or hardware, such as through a suitably configured bus, e.g., DDR4 bus, or in queues that may be implemented within the shared memory itself. Standard software mechanisms for data control, transfer, and protection, such as semaphores, mutexes, and atomic integers, may also be similarly implemented for software/hardware coordination.

[0535] Consequentemente, em algumas modalidades, conforme exemplificado na Figura 36, sem a necessidade de o FPGA 7 ter sua própria memória dedicada 14, ou outras fontes externas, devido a compartilhamento de memória coerente com cache através de uma interconexão firme de CPU/FPGA, se torna muito mais prático colocar em pacote o FPGA 7 de mais compacta e nativamente dentro de placas-mãe de CPU 1000 tradicionais, sem o uso de cartões de expansão. Consultar, por exemplo, as Figuras 34A e 34B e a Figura 35. Diversas alternativas de criação de pacote estão disponíveis. Especificamente, um FPGA 7 pode ser instalado em uma placa-mãe de múltiplas CPUs em um soquete de CPU, conforme mostrado nas Figuras 34A e 34B, tal como com o uso de um intermediador adequado, tal como uma placa de PC pequena 2, ou criação de pacote de ligação por fio alternativa do molde de FPGA dentro do pacote de chip de CPU 2a, em que os pinos de soquete de CPU são adequadamente roteados para os pinos de FPGA e incluem conexões de alimentação e terra, uma interconexão de processador 3 (QPI, HT, etc.) e outras conexões de sistema. Consequentemente, um molde de FPGA e um molde de CPU podem estar incluídos no mesmo pacote de múltiplos chips (MCP) com as conexões necessárias, incluindo interconexão de alimentação, terra e CPU/FPGA, realizadas dentro do pacote 2a. As conexões entre moldes podem ser por ligação por fio de molde a molde ou por conexão a um substrato ou intermediador comum, ou por blocos ligados ou vias através de silício entre moldes empilhados.[0535] Accordingly, in some embodiments, as exemplified in Figure 36, without the need for the FPGA 7 to have its own dedicated memory 14, or other external sources, due to cache-coherent memory sharing via a tight CPU/FPGA interconnect, it becomes much more practical to package the FPGA 7 more compactly and natively within traditional CPU motherboards 1000, without the use of expansion cards. See, for example, Figures 34A and 34B and Figure 35. Several package design alternatives are available. Specifically, an FPGA 7 may be installed on a multiple CPU motherboard in a CPU socket as shown in Figures 34A and 34B, such as by using a suitable interposer such as a small PC board 2, or by creating an alternative wire-bond package of the FPGA die within the CPU chip package 2a, wherein the CPU socket pins are suitably routed to the FPGA pins and include power and ground connections, a processor interconnect 3 (QPI, HT, etc.), and other system connections. Accordingly, an FPGA die and a CPU die may be included in the same multi-chip package (MCP) with the necessary connections, including power, ground, and CPU/FPGA interconnect, made within the package 2a. Inter-die connections may be by wire-bonding from die to die, or by connection to a common substrate or interposer, or by bonded pads or vias through silicon between stacked dies.

[0536] Adicionalmente, em várias implantações, os núcleos de FPGA e CPU podem ser fabricados em um molde único, consultar a Figura 35, com o uso de uma metodologia de sistema em um chip (SOC). Em qualquer um desses casos, a lógica customizada, por exemplo, 17, pode ser instanciada dentro do FPGA 7 para tanto comunicar-se através da interconexão de CPU/FPGA 3, por exemplo, por protocolos adequadamente dedicados, quando servir, convertes e/ou rotear solicitações de acesso de memória de mecanismos de FPGA internos 13 para a interconexão de CPU/FPGA 3, por meio de protocolos adequados, à memória compartilhada 1014a. Adicionalmente, algumas ou todas dentre essas lógicas podem ser endurecidas em silício customizado, para evitar usar estado real de lógica de FPGA para esse propósito, tal como em que a lógica endurecida pode resistir no molde de CPU, e/ou no molde de FPGA, ou molde separado. Além disso, em um desses casos, os requisitos de fonte de alimentação e dissipação de calor podem ser adequadamente atingidos, tal como dentro de um único pacote (MCP ou SOC). Ademais, o tamanho de FPGA e a contagem de núcleos de CPU podem ser selecionados para estarem dentro de um envelope de alimentação seguro, e/ou métodos dinâmicos (gerenciamento de frequência de relógio, comutação de relógio, desabilitação de núcleo, ilhas de alimentação, etc.) podem ser usados para regular o consumo de alimentação de acordo com as demandas de comutação da CPU e/ou do FPGA.[0536] Additionally, in various implementations, the FPGA and CPU cores may be fabricated on a single die, see Figure 35, using a system-on-a-chip (SOC) methodology. In any such case, custom logic, e.g., 17, may be instantiated within the FPGA 7 to either communicate over the CPU/FPGA interconnect 3, e.g., via suitably dedicated protocols, or to service, convert, and/or route memory access requests from internal FPGA engines 13 to the CPU/FPGA interconnect 3, via suitably dedicated protocols, to shared memory 1014a. Additionally, some or all of such logic may be hardened in custom silicon to avoid using real FPGA logic state for this purpose, such as where the hardened logic may persist on the CPU die, and/or on the FPGA die, or separate die. Furthermore, in either of these cases, power supply and heat dissipation requirements can be adequately met, such as within a single package (MCP or SOC). Furthermore, the FPGA size and CPU core count can be selected to be within a safe power envelope, and/or dynamic methods (clock rate management, clock switching, core disabling, power islands, etc.) can be used to regulate power consumption according to the switching demands of the CPU and/or FPGA.

[0537] Todas essas opções de criação de pacote compartilham diversas vantagens. A plataforma de CPU/FPGA firmemente integrada torna-se compatível com placas-mãe padrão e/ou chassi de sistema, de uma variedade de tamanhos. Se o FPGA for instalado por meio de um intermediador em um soquete de CPU, consultar as Figuras 34A e 34B, então, pelo menos uma placa-mãe com dois soquetes 1002 pode ser empregada. Em outros casos, uma placa-mãe com quatro soquetes pode ser empregada de modo a permitir que configurações de 3 CPUs + 1 FPGA, 2 CPUs + 2 FPGAs ou 1 CPU + 3 FPGAs, etc. sejam implantadas. Se cada FPGA residir no mesmo pacote de chip que uma CPU (MCP ou SOC), então, uma placa-mãe com soquete único pode ser empregada, potencialmente em um chassi muito pequeno (embora uma placa-mãe com dois chassis seja representada); o mesmo também pode ser aumentado muito bem, por exemplo, 4 FPGAs e 4 CPUs de múltiplos núcleos em uma placa-mãe com 4 soquetes, que, no entanto, poderiam operar em um chassi compacto, tal como um servidor de instalação em prateleira 1U.[0537] All of these packaging design options share several advantages. The tightly integrated CPU/FPGA platform becomes compatible with standard motherboards and/or system chassis of a variety of sizes. If the FPGA is installed via an interposer into a CPU socket, see Figures 34A and 34B, then at least one dual-socket motherboard 1002 may be employed. In other cases, a quad-socket motherboard may be employed to allow configurations of 3 CPUs + 1 FPGA, 2 CPUs + 2 FPGAs, or 1 CPU + 3 FPGAs, etc., to be deployed. If each FPGA resides in the same chip package as a CPU (MCP or SOC), then a single-socket motherboard may be employed, potentially in a very small chassis (although a dual-chassis motherboard is depicted); the same can also be scaled up very well, for example 4 FPGAs and 4 multi-core CPUs on a 4-socket motherboard, which could however operate in a compact chassis such as a 1U rackmount server.

[0538] Consequentemente, em vários casos, portanto, pode não haver a necessidade de um cartão de expansão ser instalado de modo a integrar a aceleração de CPU e FPGA, devido ao fato de que o FPGA 7 pode ser integrado no soquete de CPU 1003. Essa implantação evita os requisitos de espaço e alimentação extra de um cartão de expansão e evita vários pontos de falha adicionais que cartões de expansão algumas vezes têm em relação a componentes de confiabilidade relativamente baixa. Além disso, soluções de resfriamento de CPU padrão (trocadores de calor, tubos de aquecimento e/ou ventiladores), que são eficazes e ainda de baixo custo visto que são fabricados em altos volumes, podem ser aplicadas a FPGAs ou pacotes de CPU/FPGA em soquetes de CPU, enquanto o resfriamento para cartões de expansão podem ser dispendiosos e ineficazes.[0538] Accordingly, in many cases, therefore, there may not be a need for an expansion card to be installed in order to integrate CPU and FPGA acceleration, because the FPGA 7 can be integrated into the CPU socket 1003. This implementation avoids the extra space and power requirements of an expansion card and avoids several additional points of failure that expansion cards sometimes have with respect to relatively low-reliability components. Furthermore, standard CPU cooling solutions (heat exchangers, heat pipes, and/or fans), which are effective and yet low-cost since they are manufactured in high volumes, can be applied to FPGAs or CPU/FPGA packages in CPU sockets, whereas cooling for expansion cards can be expensive and ineffective.

[0539] De modo semelhante, um FPGA/intermediador e/ou pacote de CPU/FPGA pode incluir a fonte de alimentação completa de um soquete de CPU, por exemplo 150 W, enquanto um cartão de expansão padrão pode ser limitado em alimentação, por exemplo, 25 W ou 75 W a partir de um barramento de PCIe. Em vários casos, para aplicações de processamento de dados genômicos, todas essas opções de criação de pacote podem facilitar a instalação fácil de uma plataforma de computação de CPU+FPGA firmemente integrados, tal como dentro de um sequenciador de DNA. Por exemplo, os sequenciadores de DNA de "próxima geração" modernos típicos contêm o aparelho de sequenciamento (armazenamento de amostra e reagente, tubulação e controle de fluídica, arranjos de sensores, processamento primário de imagem e/ou sinal) dentro de um chassi que também contém uma placa-mãe de servidor padrão ou customizada, ligada com fio ao aparelho de sequenciamento para controle de sequenciamento e aquisição de dados. Uma plataforma de CPU+FPGA firmemente integrada, conforme descrito no presente documento, pode ser atingida em tal sequenciador tal como instalando-se simplesmente um ou mais pacotes de FPGA/intermediador e/ou FPGA/CPU em soquetes de CPU de sua placa-mãe existente ou, alternativamente, instalando-se uma nova placa-mãe tanto com CPU (ou CPUs) quanto FPGA (ou FPGAs), por exemplo, firmemente acopladas, conforme revelado no presente documento. Ademais, todas essas opções de criação de pacote podem ser configuradas para facilitar a implantação fácil da plataforma de CPU+FPGA integrada firmemente, tal como em uma prateleira de servidor acessível por nuvem e/ou de centro de dados, que inclui servidores compactos/densos com confiabilidade/disponibilidade muito altas.[0539] Similarly, an FPGA/intermediate and/or CPU/FPGA package may include the full power supply from a CPU socket, e.g. 150 W, while a standard expansion card may be power-limited to e.g. 25 W or 75 W from a PCIe bus. In many cases, for genomic data processing applications, all of these packaging options can facilitate easy installation of a tightly integrated CPU+FPGA computing platform, such as within a DNA sequencer. For example, typical modern "next-generation" DNA sequencers contain the sequencing apparatus (sample and reagent storage, fluidics tubing and control, sensor arrays, primary image and/or signal processing) within a chassis that also contains a standard or custom server motherboard, wired to the sequencing apparatus for sequencing control and data acquisition. A tightly integrated CPU+FPGA platform as described herein may be achieved in such a sequencer such as by simply installing one or more FPGA/intermediate and/or FPGA/CPU packages into CPU sockets on your existing motherboard, or alternatively by installing a new motherboard with both the CPU(s) and FPGA(s), for example, tightly coupled, as disclosed herein. Furthermore, all of these package design options may be configured to facilitate easy deployment of the tightly integrated CPU+FPGA platform, such as in a cloud-accessible and/or data center server shelf that includes compact/dense servers with very high reliability/availability.

[0540] Logo, em conformidade com os ensinamentos no presente documento, pode haver muitos estágios de processamento para dados de sequenciamento de DNA (ou RNA) para mapeamento e alinhamento à classificação e/ou desduplicação à chamada de variante, o que pode variar dependendo das tecnologias de processamento primário e/ou secundário e/ou terciário empregadas e suas aplicações. Tais etapas de processamento podem incluir um ou mais dentre: processamento de sinal em medições elétricas de um sequenciador, um processamento de imagem em medições ópticas do sequenciador, chamada de base com o uso de dados processados de sinal ou imagem para determinar a sequência de nucleotídeos mais provável e pontuações de confiança, filtrar leituras sequenciadas com baixa qualidade ou agrupamentos policlonais, detectar e cortar adaptadores, sequências chave, códigos de barras e extremidades de leitura de baixa qualidade, assim como montagem de sequência De novo, gerar e/ou utilizar gráficos de De Bruijn e/ou gráficos de sequência, por exemplo, construção de gráfico de De Bruijn e sequência, edição, recorte, limpeza, reparo, coloração, anotação, comparação, transformação, divisão, splicing, análise, seleção de subgráfico, travessia, iteração, recursão, pesquisa, filtração, importação, exportação, incluindo mapear leituras a um genoma de referência, alinhar leituras a locais de mapeamento candidatos no genoma de referência, montagem local de leituras mapeadas a uma região de referência, classificar leituras por posição alinhada, marcar e/ou remover leituras duplicadas, incluindo PCR ou duplicatas ópticas, realinhamento de múltiplas leituras sobrepostas para consistência de indel, recalibração de pontuação de qualidade de base, chamada de variante (amostra única ou conjunta), análise de variante estrutural, análise de variante de número de cópias, chamada de variante somática (por exemplo, amostra de tumor apenas, tumor com correspondência/normal ou tumor/ normal sem correspondência, etc.), detecção de junção de splicing de RNA, análise de splicing de RNA alternativa, montagem de transcrito de RNA, análise de expressão de transcrito de RNA, análise de expressão diferencial de RNA, chamada de variante de RNA, análise de diferença de DNA/RN, análise de metilação e chamada de DNA, recalibração de pontuação de qualidade de variante, filtração da variante, anotação de variante a partir de bancos de dados de variantes conhecidos, detecção e estimativa de contaminação de amostra, previsão de fenótipo, teste de doença, previsão de resposta a tratamento, protejo de tratamento customizado, análise de histórico de ascendência e mutação, análise de DNA de população, identificação de marcador genético, codificar dados genômicos em formatos padrão e/ou arquivos de compactação (por exemplo, FASTA, FASTQ, SAM, BAM, VCF, BCF), decodificar dados genômicos a partir de formatos padrão, consulta, selecionar ou filtrar subconjuntos de dados genômico, compactação e descompactação gerais para arquivos genômicos (gzip, compactação BAM), compactação e descompactação especializada para dados genômicos (CRAM), encriptação e decriptação de dados genômicos, cálculo de estatística, comparação e apresentação de dados genômico, comparação de dados genômicos de resultado, análise e relatório de precisão, armazenamento de arquivo genômico, arquivamento, resgate, backup, recuperação e transmissão, assim como construção de banco de dados genômico, pesquisa, gerenciamento de acesso, extração de dados e similares.[0540] Thus, in accordance with the teachings herein, there may be many processing stages for DNA (or RNA) sequencing data from mapping and alignment to classification and/or deduplication to variant calling, which may vary depending on the primary and/or secondary and/or tertiary processing technologies employed and their applications. Such processing steps may include one or more of: signal processing on electrical measurements from a sequencer, image processing on optical measurements from the sequencer, base calling using processed signal or image data to determine the most likely nucleotide sequence and confidence scores, filtering low-quality sequenced reads or polyclonal clusters, detecting and trimming adapters, key sequences, barcodes, and low-quality read ends, as well as de novo sequence assembly, generating and/or utilizing De Bruijn graphs and/or sequence graphs, e.g., De Bruijn and sequence graph construction, editing, trimming, cleaning, repairing, coloring, annotating, comparing, transforming, splitting, splicing, parsing, subgraph selection, traversal, iteration, recursion, searching, filtering, importing, exporting, including mapping reads to a reference genome, aligning reads to candidate mapping sites in the reference genome, locally assembling reads mapped to a reference region, sorting reads by aligned position, tagging and/or removing duplicate reads, including PCR or optical duplicates, realignment of multiple overlapping reads for indel consistency, base quality score recalibration, variant calling (single or pooled sample), structural variant analysis, copy number variant analysis, somatic variant calling (e.g., tumor sample only, matched tumor/normal or mismatched tumor/normal, etc.), RNA splice junction detection, alternative RNA splicing analysis, RNA transcript assembly, RNA transcript expression analysis, RNA differential expression analysis, RNA variant calling, DNA/RNA mismatch analysis, DNA methylation analysis and calling, variant quality score recalibration, variant filtration, variant annotation from known variant databases, sample contamination detection and estimation, phenotype prediction, disease testing, treatment response prediction, customized treatment protection, ancestry and mutation history analysis, population DNA analysis, marker identification genetic, encoding genomic data into standard formats and/or compression files (e.g., FASTA, FASTQ, SAM, BAM, VCF, BCF), decoding genomic data from standard formats, querying, selecting or filtering subsets of genomic data, general compression and decompression for genomic files (gzip, BAM compression), specialized compression and decompression for genomic data (CRAM), encryption and decryption of genomic data, calculation of statistics, comparison and presentation of genomic data, comparison of genomic data results, accuracy analysis and reporting, genomic file storage, archiving, rescue, backup, retrieval and transmission, as well as genomic database construction, searching, access management, data extraction and the like.

[0541] Todas essas operações podem ser bastante lentas e dispendiosas quando implantadas em plataformas de computação tradicionais. A lentidão de tais operações implantadas exclusivamente em software pode ser decido, em parte, à complexidade dos algoritmos, mas se deve tipicamente a conjuntos de dados de entrada e saída muito grandes que resultam em alta latência em relação a mover os dados. Os dispositivos e sistemas revelados no presente documento superam esses problemas, em parte devido à configuração dos vários mecanismos de processamento de hardware, aceleração pelas várias implantações de hardware e/ou em parte devido às configurações de acoplamento firme de CPU/FPGA. Consequentemente, conforme pode ser observado em relação à Figura 39, uma ou mais, por exemplo, todas essas operações, podem ser aceleradas por cooperação de CPUs 1000 e FPGAs 7, tal como em um modelo de processamento distribuído, conforme descrito no presente documento. Por exemplo, em alguns casos (encriptação, compactação geral, mapeamento de leitura e/ou alinhamento), uma função operacional inteira pode ser implantada substancial e inteiramente em lógica de FPGA customizada (tal como por metodologia de projeto de hardware, por exemplo, RTL), tal como em que o software de CPU serve principalmente à função de compilar grandes pacotes de dados para pré-processamento por meio de cadeias de trabalhador 20, tal como agregando os dados em vários trabalhos a serem processados por um ou mais mecanismos de processamento implantados por hardware e alimentando as várias entradas de dados, tal como em um primeiro formato, para um ou mais dentre o mecanismo (ou mecanismos) de FPGA 13, e/ou recebe os resultados do mesmo.[0541] All of these operations can be quite slow and expensive when implemented on traditional computing platforms. The slowness of such operations implemented solely in software can be due in part to the complexity of the algorithms, but is typically due to very large input and output data sets that result in high latency in moving the data. The devices and systems disclosed herein overcome these problems in part due to the configuration of the various hardware processing engines, acceleration by the various hardware implementations, and/or in part due to tightly coupled CPU/FPGA configurations. Accordingly, as can be seen with respect to Figure 39, one or more, e.g., all of these operations, can be accelerated by cooperation of CPUs 1000 and FPGAs 7, such as in a distributed processing model as described herein. For example, in some cases (encryption, general compression, read mapping and/or alignment), an entire operational function may be implemented substantially entirely in custom FPGA logic (such as per hardware design methodology, e.g., RTL), such as where the CPU software primarily serves the function of compiling large packets of data for preprocessing by worker chains 20, such as aggregating the data into multiple jobs to be processed by one or more hardware-implemented processing engines, and feeding the multiple data inputs, such as in a first format, to one or more of the FPGA engine(s) 13, and/or receiving the results thereof.

[0542] Por exemplo, conforme pode ser observado em relação à Figura 39, em várias modalidades, uma cadeia de trabalhador gera vários pacotes de dados de trabalho que podem ser compilados e/ou transmitidos continuamente em pacotes de trabalho maiores que podem ser colocados em fila e/ou adicionalmente agregados em preparação para transferência, por exemplo, por meio de um DDR3 ao FPGA 7, tal como através de um protocolo de interconexão de alta largura de banda, baixa latência, ponto a ponto, por exemplo, QPI 3. Em casos particulares, os dados podem ser armazenados temporariamente em conformidade com os conjuntos de dados particulares que são transferidos ao FPGA. Uma vez que os dados em pacote sejam recebidos pelo FPGA 7, tal como de uma maneira coerente com cache, os mesmos podem ser processados e enviados para um ou mais agrupamentos especializados 11, de modo que possam ser adicionalmente direcionados para um ou mais conjuntos de processamento para processamento, assim, em conformidade com uma ou mais das operações de segmentação descritas no presente documento.[0542] For example, as can be seen with respect to Figure 39 , in various embodiments, a worker chain generates multiple packets of work data that may be compiled and/or continuously transmitted into larger work packets that may be queued and/or further aggregated in preparation for transfer, e.g., via a DDR3 to the FPGA 7, such as via a high-bandwidth, low-latency, point-to-point interconnect protocol, e.g., QPI 3. In particular cases, data may be temporarily stored in accordance with the particular data sets that are transferred to the FPGA. Once the packet data is received by the FPGA 7, such as in a cache-coherent manner, it may be processed and sent to one or more specialized clusters 11 so that it may be further directed to one or more processing pools for processing thereby in accordance with one or more of the segmentation operations described herein.

[0543] Uma vez processados, os dados de resultados podem, então, ser enviados de volta ao agrupamento e colocados em fila para serem enviados de volta através da interconexão ponto a ponto de acoplamento firme à CPU para pós- processamento. Em certas modalidades, os dados podem ser enviados a uma cadeia de desagregador antes do pós-processamento. Uma vez que o pós- processamento tenha ocorrido, os dados podem ser enviados de volta à cadeia de trabalhador inicial 20 que pode estar aguardando os dados. Tal processamento distribuído é particularmente benéfico para as funções reveladas acima no presente documento. Particularmente, essas funções são distinguíveis pelos fatos de que sua complexidade algorítmica (embora tendo uma carga computacional líquida muito alta) é bastante limitada e podem ser, cada uma, configuradas de modo a ter um custo de computação razoavelmente uniforme através de suas várias suboperações.[0543] Once processed, the result data may then be sent back to the cluster and queued to be sent back through the tightly coupled point-to-point interconnect to the CPU for post-processing. In certain embodiments, the data may be sent to a disaggregator chain prior to post-processing. Once post-processing has occurred, the data may be sent back to the initial worker chain 20 that may be waiting for the data. Such distributed processing is particularly beneficial for the functions disclosed above herein. In particular, these functions are distinguishable by the facts that their algorithmic complexity (while having a very high net computational load) is quite limited and they may each be configured so as to have a reasonably uniform computation cost across their various sub-operations.

[0544] Entretanto, em vários casos, em vez de processar os dados em pacotes grandes, sub-rotinas menores ou protocolos ou elementos de função discretos podem ser realizados, tal como pertencentes a uma ou mais funções de uma segmentação, em vez de realizar as funções de processamento inteiras para essa segmentação nesses dados. Logo, uma estratégia útil pode ser identifica uma ou mais subfunções com computação intensiva críticas em qualquer dada operação e, então, implantar essa subfunção em lógica de FPGA personalizada (aceleração de hardware), tal como para a subfunção (ou subfunções) intensiva, ao implantar o equilíbrio da operação, e idealmente muita ou a maior parte da complexidade logarítmica, em software para execução em CPUs/GPUs/QPUs, conforme descrito no presente documento, tal como em relação à Figura 39.[0544] However, in many cases, rather than processing the data in large packets, smaller subroutines or protocols or discrete function elements may be realized, such as pertaining to one or more functions of a segmentation, rather than performing the entire processing functions for that segmentation on that data. Thus, a useful strategy may be to identify one or more critical computationally intensive subfunctions in any given operation, and then implement that subfunction in custom FPGA logic (hardware acceleration), such as for the intensive subfunction(s), while implementing the balance of the operation, and ideally much or most of the logarithmic complexity, in software for execution on CPUs/GPUs/QPUs, as described herein, such as with respect to Figure 39.

[0545] De modo geral, é típico de operações de processamento de dados genômicos que uma pequena porcentagem da complexidade algorítmica representa uma grande porcentagem da carga de computação geral. Por exemplo, como um exemplo típico, 20% da complexidade algorítmica para o desempenho de uma dada função podem representar 90% da carga de computação, enquanto os 80% restantes da complexidade algorítmica podem apenas representar 10% da carga de computação. Logo, em vários casos, os componentes de sistema no descritos presente documento podem ser configurados de modo a implantar a porção de complexidade alta, por exemplo, 20% ou mais, de modo a ser executada muito eficazmente em lógica de FPGA personalizada, que pode ser tratável e mantenível em um projeto de hardware, e assim, pode ser configurada para executar a mesma em FPGA; que, por sua vez, pode reduzir a carga de computação de CPU em 90%, possibilitando, assim, aceleração geram em 10x. Outros exemplos típicos podem ser ainda mais extremos, tal como em que 10% da complexidade algorítmica podem representar 98% da carga de computação, em cujo caso aplicar aceleração de FPGA, conforme descrito no presente documento, à porção de complexidade 10% será ainda mais fácil, mas pode também possibilitar aceleração líquida de 50x. Em vários casos, em que processamento extremamente acelerado é desejado, uma ou mais dessas funções podem ser realizadas por uma unidade de processamento quântico.[0545] In general, it is typical of genomic data processing operations that a small percentage of the algorithmic complexity represents a large percentage of the overall computational load. For example, as a typical example, 20% of the algorithmic complexity for performing a given function may represent 90% of the computational load, while the remaining 80% of the algorithmic complexity may only represent 10% of the computational load. Thus, in many cases, the system components described herein may be configured to deploy the high complexity portion, e.g., 20% or more, to be executed very efficiently on custom FPGA logic that may be tractable and maintainable in a hardware design, and thus may be configured to execute the same on the FPGA; which in turn may reduce the CPU computational load by 90%, thereby enabling 10x speedups. Other typical examples may be even more extreme, such as where 10% of the algorithmic complexity may represent 98% of the computational burden, in which case applying FPGA acceleration as described in this paper to the 10% complexity portion will be even easier, but may also enable a net speedup of 50x. In many cases where extremely accelerated processing is desired, one or more of these functions may be performed by a quantum processing unit.

[0546] Entretanto, tais abordagens de aceleração de processamento "fragmentado" ou distribuído podem ser mais práticas quando implantadas em uma plataforma de CPU/GPU+FPGA altamente integrada, em vez de uma plataforma de CPU/GPU+FPGA frouxamente integrada. Particularmente, em uma plataforma frouxamente integrada, a porção, por exemplo, as funções, a ser implantada em lógica de FPGA pode ser selecionada de modo a minimizar o tamanho dos dados de entrada ao mecanismo (ou mecanismos) de FPGA e a minimizar os dados de saída do mecanismo (ou mecanismos) de FPGA, tal como para cada unidade de dados processada e, adicionalmente, pode ser configurada de modo a manter o limite de software/hardware tolerante de altas latências. Em tais casos, o limite entre as porções de hardware e software pode ser forçado, por exemplo, na plataforma frouxamente integrada, até ser extraído através de certos pontos de corte de baixa largura de banda/alta latência, cujas divisões podem não ser de outro modo desejáveis ao otimizar a partição da complexidade algorítmica e cargas computacionais. Isso pode frequentemente resultar em ampliação dos limites da porção de hardware, abrangendo uma porção indesejavelmente grande da complexidade algorítmica no formato com fio, ou em encolhimento dos limites da porção de hardware, excluindo indesejavelmente porções com carga de computação densa.[0546] However, such "chunked" or distributed processing acceleration approaches may be more practical when implemented on a highly integrated CPU/GPU+FPGA platform, rather than a loosely integrated CPU/GPU+FPGA platform. Particularly, on a loosely integrated platform, the portion, e.g., functions, to be implemented in FPGA logic may be selected so as to minimize the size of the input data to the FPGA engine (or engines) and to minimize the output data from the FPGA engine (or engines), such as for each unit of data processed, and further may be configured so as to maintain the high-latency tolerant software/hardware boundary. In such cases, the boundary between the hardware and software portions may be forced, e.g., on the loosely integrated platform, until it is extracted through certain low-bandwidth/high-latency cutoff points, the divisions of which may not otherwise be desirable when optimizing the partitioning of algorithmic complexity and computational loads. This can often result in either pushing the boundaries of the hardware portion, encompassing an undesirably large portion of the algorithmic complexity in the wired format, or shrinking the boundaries of the hardware portion, undesirably excluding portions with dense computation load.

[0547] Em contrapartida, em uma plataforma de CPU/GPU+FPGA firmemente integrada, devido à memória compartilhada coerente com cache e à interconexão de CPU/GPU/FPGA de alta largura de banda/baixa latência, as porções de baixa complexidade/alta carga de computação de uma operação de processamento de dados genômicos podem ser selecionadas muito precisamente para implantação em lógica de FPGA personalizada (por exemplo, por meio do mecanismo (ou mecanismos) de hardware descrito no presente documento), com limites de software/hardware otimizados. Em tal caso, mesmo se uma unidade de dados for grande no limite de software/hardware desejado, a mesma pode ser ainda entregue eficazmente ao mecanismo de hardware de FPGA para processamento, apenas passando-se um indicador para a unidade de dados particular. Particularmente, em tal caso, de acordo com a Figura 33B, o mecanismo de hardware 13 do FPGA 7, pode não precisar acessar cada elemento da unidade de dados armazenada dentro da DRAM 1014; em vez disso, pode acessar os elementos necessários, por exemplo, dentro do cache 1014a, com acessos pequenos eficazes através da interconexão de baixa latência 3' servida pelo cache de CPU/GPU, consumindo, assim, menos largura de banda agregada que se a unidade de dados inteira tivesse que ser acessada e/ou transferida ao FPGA 7, tal como por DMA da DRAM 1014, através de uma interconexão frouxa 3, de acordo com a Figura 33A.[0547] In contrast, in a tightly integrated CPU/GPU+FPGA platform, due to the cache-coherent shared memory and the high-bandwidth/low-latency CPU/GPU/FPGA interconnect, the low complexity/high compute load portions of a genomic data processing operation can be very precisely selected for deployment in custom FPGA logic (e.g., via the hardware engine(s) described herein) with optimized software/hardware constraints. In such a case, even if a data unit is large within the desired software/hardware constraint, it can still be efficiently delivered to the FPGA hardware engine for processing by simply passing a pointer to the particular data unit. In particular, in such a case, in accordance with Figure 33B, the hardware engine 13 of the FPGA 7 may not need to access each element of the data unit stored within the DRAM 1014; instead, it can access the necessary elements, for example, within cache 1014a, with small efficient accesses via the low latency interconnect 3' served by the CPU/GPU cache, thereby consuming less aggregate bandwidth than if the entire data unit had to be accessed and/or transferred to FPGA 7, such as by DMA from DRAM 1014, via a loose interconnect 3, in accordance with Figure 33A.

[0548] Em tais casos, o mecanismo de hardware 13 pode anotar os resultados de processamento na unidade de dados no local em memória de CPU/GPU 1014, sem transmitir continuamente uma cópia inteira da unidade de dados por DMA à memória de CPU/GPU. Mesmo se o limite de software/hardware desejado não for adequado para uma cadeia de software 20 realizar uma entrega de alta latência, colocada em fila sem bloqueio ao mecanismo de hardware 13, o mesmo pode potencialmente realizar uma chamada de função de bloqueio ao mecanismo de hardware 13, suspenso por uma curta latência até o mecanismo de hardware concluir, em que a latência é drasticamente reduzida pela memória compartilhada coerente com cache, pela interconexão de baixa latência/alta largura de banda e o modelo de coordenação de software/hardware distribuído, como na Figura 33B.[0548] In such cases, the hardware engine 13 may write the processing results to the data unit in place in CPU/GPU memory 1014, without continuously DMAing an entire copy of the data unit to the CPU/GPU memory. Even if the desired software/hardware limit is not suitable for a software chain 20 to perform a high-latency, non-blocking queued delivery to the hardware engine 13, it may potentially perform a blocking function call to the hardware engine 13, suspending for a short latency until the hardware engine completes, wherein the latency is dramatically reduced by the cache-coherent shared memory, the low-latency/high-bandwidth interconnect, and the distributed software/hardware coordination model, as in FIG. 33B.

[0549] Em casos particular, devido ao fato de que algoritmos e requisitos específicos de processamento de sinal/imagem e chamada de base variam de uma tecnologia de sequenciador para outra e devido ao fato de que a quantidade de dados brutos do sensor de sequenciador é tipicamente gigantesca (a mesma sendo reduzida a enorme após processamento de sinal/imagem e a meramente grande após chamada de base), tal processamento de sinal/imagem e chamada de base podem ser eficazmente realizados dentro do próprio sequenciador ou em um servidor de computação conectado por um canal de transmissão de largura de banda ao sequenciador. Entretanto, os sequenciadores de DNA têm atingido resultados crescentemente altos, a uma taxa de aumento que excede a Lei de Moore, de modo que o processamento de sinal/imagem e a chamada de base baseados em unidade de processamento central ("CPU") e/ou Unidade de Processamento de Gráfico "GPU” existentes, quando implantadas individualmente e sozinhas, tornaram-se crescentemente inadequadas para a tarefa. No entanto, visto que uma plataforma de CPU + FPGA e/ou a GPU + FPGA e/ou a GPU/CPU + FPGA firmemente integrada pode ser configurada para ser compacta e facilmente instanciada dentro de tal sequenciador, por exemplo, como chip de CPU e/ou GPU e/ou FPGA posicionado na placa-mãe do sequenciador, ou facilmente instalada em um servidor adjacente ao sequenciador, ou um sistema de servidor baseado em nuvem acessível remotamente a partir do sequenciador, tal sequenciador pode ser uma plataforma ideal para oferecer a aceleração de computação massiva oferecida pelos mecanismos de hardware de FPGA/ASIC personalizados descritos no presente documento.[0549] In particular cases, because specific signal/image processing and base calling algorithms and requirements vary from one sequencer technology to another, and because the amount of raw sequencer sensor data is typically gigantic (the same being reduced to huge after signal/image processing and to merely large after base calling), such signal/image processing and base calling can be efficiently performed within the sequencer itself or on a computing server connected by a high-bandwidth transmission channel to the sequencer. However, DNA sequencers have been achieving increasingly high throughput, at a rate of increase exceeding Moore's Law, such that existing central processing unit ("CPU") and/or Graphics Processing Unit ("GPU")-based signal/image processing and base calling, when deployed individually and alone, have become increasingly inadequate for the task. However, since a tightly integrated CPU+FPGA and/or GPU+FPGA and/or GPU/CPU+FPGA platform can be configured to be compact and easily instantiated within such a sequencer, e.g., as a CPU and/or GPU and/or FPGA chip positioned on the sequencer's motherboard, or easily installed on a server adjacent to the sequencer, or a cloud-based server system remotely accessible from the sequencer, such a sequencer may be an ideal platform for delivering the massive compute acceleration offered by the custom FPGA/ASIC hardware engines described herein.

[0550] Por exemplo, o sistema fornecido no presente documento pode ser configurado de modo a realizar processamento primário, secundário e/ou terciário, ou porções dos mesmos, de modo a ser implantado por uma plataforma de CPU, GPU, e/ou FPGA; a CPU + FPGA; a GPU + FPGA; a GPU/CPU + FPGA; QPU; CPU/QPU; GPU/QPU; CPU e/ou GPU e/ou QPU + FPGA acelerada. Ademais, tais plataformas aceleradas, por exemplo, incluindo um ou mais mecanismos de hardware de FPGA e/ou QPU, são úteis para implantação em sistemas baseados em nuvem, conforme descrito no presente documento. Por exemplo, algoritmos de processamento de sinal/imagem, chamada de base, mapeamento, alinhamento, classificação, desduplicação e/ou chamada de variante, ou porções dos mesmos, de modo geral, exigem grandes quantidades de cálculos de ponto oscilante e/ou ponto fixo, notavelmente adições e multiplicações. Essas funções podem ser também configuradas de modo a serem realizadas por um ou mais circuitos de processamento quântico, tal como para serem implantados em uma plataforma de processamento quântico.[0550] For example, the system provided herein may be configured to perform primary, secondary, and/or tertiary processing, or portions thereof, to be implemented by a CPU, GPU, and/or FPGA; CPU + FPGA; GPU + FPGA; GPU/CPU + FPGA; QPU; CPU/QPU; GPU/QPU; CPU and/or GPU and/or QPU + accelerated FPGA platform. Furthermore, such accelerated platforms, e.g., including one or more FPGA and/or QPU hardware engines, are useful for deployment in cloud-based systems as described herein. For example, signal/image processing, base calling, mapping, alignment, classification, deduplication, and/or variant calling algorithms, or portions thereof, generally require large amounts of oscillating point and/or fixed point computations, notably additions and multiplications. These functions can also be configured to be performed by one or more quantum processing circuits, such as to be implemented in a quantum processing platform.

[0551] Particularmente, grandes FPGAs modernos/circuitos quânticos contêm milhares de recursos de multiplicação e adição de alta velocidade. Mais particularmente, esses circuitos podem incluir mecanismos personalizados que podem ser implantados nos mesmos ou pelos mesmos, em que os mecanismos personalizados podem ser configurados para realizar operações aritméticas paralelas em taxas que excedem bastante as capacidades de CPUs gerais simples. De modo semelhante, as GPUs simples têm recursos aritméticos paralelos mais comparáveis. Entretanto, as GPUs frequentemente têm limitações arquiteturais problemáticas e restrições de programação que podem impedir as mesmas de serem completamente utilizadas. Consequentemente, esses recursos aritméticos de FPGA e/ou processamento quântico e/ou GPU podem ser ligados por fio ou configurados de outro modo por projeto para operar exatamente da mesma maneira projetada com quase 100% de eficácia, tal como para realizar os cálculos necessários para executar as funções no presente documento. Consequentemente, cartões de GPU podem ser adicionados a slots de expansão em uma placa-mãe com uma CPU e/ou FPGA firmemente integrados, permitindo, assim, que todos os três tipos de processador cooperem, embora a GPU possa ainda cooperar com todas suas limitações e as limitações de integração frouxa.[0551] In particular, large modern FPGAs/quantum circuits contain thousands of high-speed multiplication and addition resources. More particularly, these circuits may include custom engines that may be deployed on or by them, wherein the custom engines may be configured to perform parallel arithmetic operations at rates that far exceed the capabilities of simple general-purpose CPUs. Similarly, simple GPUs have more comparable parallel arithmetic resources. However, GPUs often have problematic architectural limitations and programming constraints that may prevent them from being fully utilized. Accordingly, these FPGA and/or quantum processing and/or GPU arithmetic resources may be hard-wired or otherwise configured by design to operate in exactly the same manner as designed with near 100% efficiency, such as to perform the computations required to perform the functions herein. Consequently, GPU cards can be added to expansion slots on a motherboard with a tightly integrated CPU and/or FPGA, thus allowing all three types of processor to cooperate, although the GPU can still cooperate with all of its limitations and the limitations of loose integration.

[0552] Mais particularmente, em vários casos, em relação a Unidades de Processamento de Gráficos (GPUs), uma GPU pode ser configurada de modo a implantar uma ou mais das funções, conforme descrito no presente documento, de modo a acelerar a velocidade de processamento dos cálculos subjacentes necessários para realizar essa função, em todo ou em parte. Mais particularmente, uma GPU pode ser configurada para realizar uma ou mais tarefas em um protocolo de mapeamento, alinhamento, classificação, desduplicação e/ou chamada de variante, tal como para acelerar uma ou mais das computações, por exemplo, as grandes quantidades de cálculos de ponto oscilante e/ou ponto fixo, tais como adições e multiplicações envolvidas nas mesmas, de modo a trabalhar em conjunto com uma CPU e/ou FPGA do servidor para acelerar o desempenho de aplicação e processamento e encurtar os ciclos computacionais exigidos para realizar tais funções. Os servidores em nuvem, conforme descrito no presente documento, com cartões de GPU/CPU/FPGA podem ser configurados de modo a manipular facilmente tarefas com computação intensiva e entregar uma experiência de usuário mais suave quando alavancada para virtualização. Tais tarefas com computação intensiva podem ser também descarregadas à nuvem, tal como para serem realizadas por uma unidade de processamento quântico.[0552] More particularly, in various instances, with respect to Graphics Processing Units (GPUs), a GPU may be configured to implement one or more of the functions as described herein so as to accelerate the processing speed of the underlying computations required to perform that function, in whole or in part. More particularly, a GPU may be configured to perform one or more tasks in a mapping, alignment, sorting, deduplication, and/or variant calling protocol, such as to accelerate one or more of the computations, e.g., the large amounts of oscillating point and/or fixed point computations such as additions and multiplications involved therein, so as to work in conjunction with a server CPU and/or FPGA to accelerate application and processing performance and shorten the computational cycles required to perform such functions. Cloud servers as described herein with GPU/CPU/FPGA cards may be configured so as to easily handle compute-intensive tasks and deliver a smoother user experience when leveraged for virtualization. Such computationally intensive tasks can also be offloaded to the cloud, such as to be performed by a quantum processing unit.

[0553] Consequentemente, se uma plataforma de CPU+FPGA ou GPU+FPGA e/ou CPU/GPU/FPGA firmemente integrada com memória compartilhada for empregada com um sequenciador, ou servidor fixado ou baseado em nuvem, tal como para funções de processamento de sinal/imagem, chamada de base, mapeamento, alinhamento, classificação, desduplicação e/ou chamada de variante, pode haver uma vantagem atingida, tal como em um processo de desenvolvimento incremental. Por exemplo, inicialmente, uma porção limitada da carga de computação, tal como uma função de programação dinâmica para chamada de base, mapeamento, alinhamento, classificação, desduplicação e/ou chamada de variante, pode ser implantada em um ou mais mecanismos de FPGA, em que outro trabalho pode ser realizado nos cartões de expansão de CPU e/ou GPU. Entretanto, o modelo de integração firme de CPU/GPU/FPGA e memória compartilhada, apresentado no presente documento, pode ser adicionalmente configurado, posteriormente, de modo a tornar o mesmo fácil de selecionar incrementalmente funções com computação intensiva adicional para GPU, FPGA e/ou aceleração quântica, que pode ser então implantada como mecanismos de processamento, e várias de suas funções podem ser descarregadas para execução no FPGA (ou FPGAs) e/ou, em alguns casos, podem ser descarregadas na nuvem, por exemplo, para desempenho por uma QPU, acelerando, assim, processamento de sinal/imagem/chamada de base/mapeamento/alinhamento/variante. Tais avanços incrementais podem ser implantados conforme necessário para acompanhar o rendimento crescente de várias tecnologias de processamento primário e/ou secundário e/ou terciário.[0553] Accordingly, if a tightly integrated CPU+FPGA or GPU+FPGA and/or CPU/GPU/FPGA platform with shared memory is employed with a sequencer, or a fixed or cloud-based server, such as for signal/image processing, base calling, mapping, alignment, classification, deduplication, and/or variant calling functions, there may be an advantage achieved, such as in an incremental development process. For example, initially, a limited portion of the compute load, such as a dynamic programming function for base calling, mapping, alignment, classification, deduplication, and/or variant calling, may be deployed on one or more FPGA engines, where other work may be performed on the CPU and/or GPU expansion cards. However, the tight integration model of CPU/GPU/FPGA and shared memory presented herein can be further configured later to make it easy to incrementally select additional compute-intensive functions for GPU, FPGA, and/or quantum acceleration, which can then be deployed as processing engines, and several of their functions can be offloaded for execution on the FPGA(s) and/or in some cases can be offloaded to the cloud, e.g., for performance by a QPU, thereby accelerating signal/image/base calling/mapping/alignment/variant processing. Such incremental advancements can be deployed as needed to keep pace with the increasing throughput of various primary and/or secondary and/or tertiary processing technologies.

[0554] Logo, o mapeamento e o alinhamento de leitura, por exemplo, de uma ou mais leituras a um genoma de referência, assim como classificação, desduplicação e/ou chamada de variante podem ser beneficiados de tal aceleração de GPU e/ou FPGA e/ou QPU. Especificamente, o mapeamento e o alinhamento e/ou a chamada de variante, ou porções dos mesmos, podem ser implantados parcial ou inteiramente como lógica de FPGA personalizado, tal como a transmissão contínua de leituras "a serem mapeadas e/ou alinhadas e/ou submetidas à chamada de variante" da memória de memória de CPU/GPU para os mecanismos de mapeamento/alinhamento/chamada de variante de FPGA, e transmissão contínua de registros de leitura mapeada e/ou alinhada e/ou submetida à chamada de variante de volta, que podem ser, ainda, transmitidos continuamente de volta em placa, tal como no desempenho de classificação e/ou chamada de variante. Esse tipo de aceleração de FPGA funciona em uma plataforma de CPU/GPU+FPGA frouxamente integrada e nas configurações descritas no presente documento podem ser extremamente rápidas. No entanto, há algumas vantagens adicionais que podem ser ganhadas movendo-se para uma plataforma de CPU/GPU/QPU + FPGA firmemente integrada.[0554] Thus, read mapping and alignment, e.g., of one or more reads to a reference genome, as well as classification, deduplication, and/or variant calling may benefit from such GPU and/or FPGA and/or QPU acceleration. Specifically, mapping and alignment and/or variant calling, or portions thereof, may be implemented partially or entirely as custom FPGA logic, such as by continuously streaming "to-be-mapped and/or aligned and/or variant-called" reads from CPU/GPU memory to FPGA mapping/alignment/variant-calling engines, and continuously streaming mapped and/or aligned and/or variant-called read records back, which may further be continuously streamed back on-board, such as in the performance of classification and/or variant calling. This type of FPGA acceleration runs on a loosely integrated CPU/GPU+FPGA platform and in the configurations described in this paper can be extremely fast. However, there are some additional advantages that can be gained by moving to a tightly integrated CPU/GPU/QPU+FPGA platform.

[0555] Consequentemente, em relação ao mapeamento e alinhamento e chamada de variante, em, algumas modalidades, uma vantagem compartilhada de uma plataforma de CPU/GPU+FPGA firmemente integrada e/ou processamento quântico, conforme descrito no presente documento, é que a aceleração de mapeamento/alinhamento/chamada de variante, por exemplo, aceleração de hardware, pode ser eficazmente dividida em diversas operações com computação intensiva discretas, tal como geração de semente e/ou mapeamento, formação de cadeia de semente, varreduras de resgate de extremidades pareadas, alinhamento sem lacuna e alinhamento com lacuna (Smith-Waterman ou Needleman-Wunsch), formação de gráfico de De Bruijn, realizar uma computação de HMM e similares, tal como em que a CPU e/ou GPU e/ou software de computação quântica realiza tarefas mais leves (mas não necessariamente menos complexas) e pode realizar chamadas de aceleração a mecanismos de hardware e/ou outros de computação quântica discretos conforme necessário. Tal modelo pode ser menos eficaz em uma plataforma de CPU/GPU+FPGA frouxamente integrada típica, por exemplo, devido às grandes quantidades de dados para transferência de ida e volta entre as etapas e altas latências, mas pode ser mais eficaz em uma plataforma de CPU+FPGA, GPU + FPGA firmemente integrada e/ou de computação quântica com memória compartilhada coerente com cache, interconexão de alta largura de banda/baixa latência e modelo de coordenação de software/hardware distribuído. Adicionalmente, tal como em relação à chamada de variante, ambos os algoritmos de Modelo Oculto de Markov (HMM) e/ou programação dinâmica (DP), incluindo algoritmos de Viterbi e diretos, podem ser implantados em associação com uma operação de chamada de base/mapeamento/alinhamento/classificação/desduplicação, tal como para computar a sequência original mais provável que explica as medições de sensor observadas, em uma configuração de modo a serem bem adequadas ao modelo celular paralelo de FPGAs e circuitos quânticos descritos no presente documento.[0555] Accordingly, with respect to mapping and alignment and variant calling, in some embodiments, a shared advantage of a tightly integrated CPU/GPU+FPGA and/or quantum processing platform as described herein is that the acceleration of mapping/alignment/variant calling, e.g., hardware acceleration, can be effectively divided into several discrete compute-intensive operations, such as seed generation and/or mapping, seed chain formation, paired-end rescue scans, gapless alignment and gapped alignment (Smith-Waterman or Needleman-Wunsch), De Bruijn graph formation, performing an HMM computation, and the like, such that the CPU and/or GPU and/or quantum computing software performs lighter-weight (but not necessarily less complex) tasks and can perform acceleration calls to hardware and/or other discrete quantum computing engines as needed. Such a model may be less effective on a typical loosely integrated CPU/GPU+FPGA platform, for example, due to the large amounts of data to round-trip between stages and high latencies, but may be more effective on a tightly integrated CPU+FPGA, GPU+FPGA, and/or quantum computing platform with cache-coherent shared memory, high-bandwidth/low-latency interconnect, and a distributed software/hardware coordination model. Additionally, as with variant calling, both Hidden Markov Model (HMM) and/or dynamic programming (DP) algorithms, including Viterbi and direct algorithms, may be deployed in association with a base calling/mapping/alignment/sorting/deduplication operation, such as to compute the most likely original sequence that explains the observed sensor measurements, in a configuration so as to be well suited to the parallel cellular model of FPGAs and quantum circuits described herein.

[0556] Especificamente, uma utilização eficaz de recursos de hardware e/ou software em uma configuração de processamento distribuído pode resultar da redução de aceleração de hardware e/ou computação quântica a funções com computação intensiva discretas. Em tais casos, diversas das funções reveladas no presente documento podem ser realizadas em um mecanismo de hardware puro monolítico de modo a serem menos intensivas em computação, mas pode, no entanto, ainda ser algoritmicamente complexas e, portanto, podem consumir grandes quantidades de recursos físicos de FPGA (tabelas de pesquisa, flip-flops, RAMs de bloqueio, etc.). Em tais casos, mover uma porção ou todas essas várias funções discretas para software poderia ocupar ciclos disponíveis da CPU, em retorno a renunciar quantidades substanciais de área de FPGA. Em determinados desses casos, a área de FPGA liberada pode ser usada para estabelecer maior paralelismo para as subfunções de mapeamento/alinhamento/chamada de variante com computação intensiva, aumentando, assim, a aceleração, ou para outras funções de aceleração genômicas. Tais benefícios podem ser também atingidos implantando-se funções com computação intensiva em um ou mais circuitos quânticos dedicados para implantação por uma plataforma de computação quântica.[0556] Specifically, efficient utilization of hardware and/or software resources in a distributed processing configuration may result from reducing hardware acceleration and/or quantum computing to discrete compute-intensive functions. In such cases, several of the functions disclosed herein may be performed in a monolithic pure hardware engine so as to be less compute-intensive, but may nevertheless still be algorithmically complex and thus may consume large amounts of physical FPGA resources (lookup tables, flip-flops, lock RAMs, etc.). In such cases, moving a portion or all of these various discrete functions to software could take up available CPU cycles in return for giving up substantial amounts of FPGA area. In certain such cases, the freed-up FPGA area may be used to establish greater parallelism for the compute-intensive mapping/alignment/variant calling subfunctions, thereby increasing speedup, or for other genomic acceleration functions. Such benefits can also be achieved by deploying computationally intensive functions on one or more quantum circuits dedicated for deployment by a quantum computing platform.

[0557] Logo, em várias modalidades, a complexidade algorítmica da uma ou mais funções reveladas no presente documento pode ser um tanto diminuída por ser configurada em uma implantação de hardware puro ou computação quântica pura. Entretanto, algumas operações, tais como comparar pares de alinhamentos candidatos para leituras de extremidades pareadas e/ou realizar estimativas de qualidade de mapeamento sutil (MAPQ), representam cargas de computação muito baixas e, assim, poderiam se beneficiar de processamento mais complexo e preciso em CPU/GPU e/ou software de computação quântica. Logo, em geral, reduzir o processamento de hardware a operações com computação intensiva específica poderia permitir que algoritmos mais complexos e precisos sejam empregados nas porções de CPU/GPU.[0557] Thus, in various embodiments, the algorithmic complexity of the one or more functions disclosed herein may be somewhat reduced by being configured in a pure hardware or pure quantum computing implementation. However, some operations, such as comparing candidate alignment pairs for paired-end reads and/or performing fine-grained mapping quality (MAPQ) estimation, represent very low computational overheads and thus could benefit from more complex and precise processing in CPU/GPU and/or quantum computing software. Thus, in general, reducing hardware processing to specific compute-intensive operations could allow more complex and precise algorithms to be employed in the CPU/GPU portions.

[0558] Além disso, em várias modalidades, o todo ou uma parte das operações de mapeamento/alinhamento/classificação/desduplicação/chamada de variante, reveladas no presente documento, poderia ser configurada de tal maneira que as computações algoritmicamente mais complexas possam ser empregadas em níveis altos em hardware e/ou por meio de um ou mais circuitos quânticos, tal como em que as funções de hardware e/ou quânticas com computação intensiva chamadas são configuradas para serem realizadas em uma ordem dinâmica ou iterativa. Particularmente, um projeto de processamento de hardware puro/quântico monolítico pode ser implantado de uma maneira que funcione mais eficazmente como uma segmentação linear. Por exemplo, se, durante o processamento, um alinhamento de Smith-Waterman tiver exibido evidência do verdadeiro caminho de alinhamento escapando da banda de pontuação, por exemplo, faixa conforme descrito acima, outro alinhamento de Smith-Waterman poderia ser chamado para corrigir o mesmo. Logo, essas configurações poderiam essencialmente reduzir a aceleração de hardware/quântica de FPGA a funções discretas, tal como uma forma de abstração processual, que poderia permitir que complexidade de nível mais alto fosse construída facilmente sobre as mesmas.[0558] Furthermore, in various embodiments, all or a portion of the mapping/alignment/classification/deduplication/variant calling operations disclosed herein could be configured in such a manner that more algorithmically complex computations can be performed at higher levels in hardware and/or via one or more quantum circuits, such as where the computationally intensive hardware and/or quantum functions called are configured to be performed in a dynamic or iterative order. In particular, a monolithic pure hardware/quantum processing design could be implemented in a manner that functions most effectively as a linear segmentation. For example, if during processing a Smith-Waterman alignment has exhibited evidence of the true alignment path escaping the scoring band, e.g., band as described above, another Smith-Waterman alignment could be called to correct for the same. Thus, these configurations could essentially reduce FPGA hardware/quantum acceleration to discrete functions, as a form of procedural abstraction, which could allow higher-level complexity to be easily built on top of them.

[0559] Adicionalmente, em vários casos, a flexibilidade dentro dos algoritmos de mapeamento/alinhamento/chamada de variante e recursos dos mesmos pode ser aprimorada reduzindo-se a aceleração de hardware e/ou quântica a funções com computação intensiva discretas e configurando-se o sistema de modo a realizar outras, por exemplo, partes menos intensivas, no software da CPU e/ou GPU. Por exemplo, embora os algoritmos de hardware possam ser modificados e reconfigurados em FPGAs, de modo geral, tais alterações aos projetos de hardware, por exemplo, por meio de firmware, podem exigir diversas vezes mais esforço de projeto que alternações similares a código de software. Em tais casos, as porções com computação intensiva de mapeamento e alinhamento e classificação e desduplicação e/ou chamada de variante, tal como mapeamento de semente, formação de cadeia de semente, varreduras de resgate de extremidades pareadas, alinhamento sem lacuna, alinhamento com lacuna e HMM, que são relativamente bem definidos, são, assim, funções estáveis e não exigem alterações algorítmicas frequentes. Essas funções, portanto, podem ser adequadamente otimizadas em hardware, enquanto outras funções, que poderiam ser executadas por software de CPU/GPU, são mais adequadas para aprimoramento incremental de algoritmos, que é significativamente mais fácil em software. Entretanto, uma vez completamente desenvolvidas, poderiam ser implantadas em hardware. Uma ou mais dessas funções podem ser também configuradas de modo a serem implantadas em um ou mais circuitos quânticos de uma máquina de processamento quântico.[0559] Additionally, in many cases, flexibility within mapping/alignment/variant calling algorithms and features thereof can be improved by reducing hardware and/or quantum acceleration to discrete compute-intensive functions and configuring the system to perform other, e.g., less intensive portions, in CPU and/or GPU software. For example, although hardware algorithms can be modified and reconfigured in FPGAs, such changes to hardware designs, e.g., via firmware, can generally require several times more design effort than similar changes to software code. In such cases, the compute-intensive portions of mapping and alignment and classification and deduplication and/or variant calling, such as seed mapping, seed chain formation, paired-end rescue scans, gapless alignment, gapped alignment, and HMM, which are relatively well defined, are thus stable functions and do not require frequent algorithmic changes. These functions can therefore be suitably optimized in hardware, while other functions, which could be performed by CPU/GPU software, are better suited for incremental algorithmic improvement, which is significantly easier in software. However, once fully developed, they could be implemented in hardware. One or more of these functions could also be configured to be implemented in one or more quantum circuits of a quantum processing machine.

[0560] Consequentemente, em vários casos, a chamada de variante (em relação a DNA ou RNA, amostra simples ou conjunta, linhagem germinativa ou somática, etc.) pode também se beneficiar da aceleração de FPGA e/ou quântica, tal como em relação a suas várias funções com computação intensiva. Por exemplo, chamadores baseados em haplótipo, que chamam bases em evidência derivadas de um contexto fornecido dentro de uma janela em torno de uma variante potencial, conforme descrito acima, são frequentemente a operação com computação mais intensiva. Essas operações incluem comparar um haplótipo candidato (por exemplo, uma sequência de nucleotídeos de filamento simples que representa uma teoria da verdadeira sequência de pelo menos um dos filamentos amostrados no locus de genoma em questão) a cada leitura de sequenciador, tal como para estimar uma probabilidade condicional de observar a leitura dado o verdadeiro haplótipo.[0560] Accordingly, in many cases, variant calling (with respect to DNA or RNA, single or pooled sample, germline or somatic, etc.) can also benefit from FPGA and/or quantum acceleration, as can its various computationally intensive functions. For example, haplotype-based callers, which call bases on evidence derived from a provided context within a window around a potential variant, as described above, are often the most computationally intensive operation. Such operations include comparing a candidate haplotype (e.g., a single-stranded nucleotide sequence that represents a theory of the true sequence of at least one of the sampled strands at the genome locus in question) to each sequencer read, such as to estimate a conditional probability of observing the read given the true haplotype.

[0561] Tal operação pode ser realizada por meio de um ou mais dentre um cálculo de MRJD, Modelo Oculto de Markov Pareado (HMM pareado) e/ou um Modelo Oculto de Markov com Par Determinado (HMM PD) que soma as probabilidades de possíveis combinações de erros em sequenciamento ou preparação de amostra (PCR, etc.) por um algoritmo de programação dinâmica. Logo, em relação ao mesmo, o sistema pode ser configurado de modo que um cálculo de HMM pareado ou HMM PD possa ser acelerado por um ou mais, por exemplo, mecanismos de processamento paralelos, de hardware de FPGA ou quânticos, enquanto o software de CPU/GPU/QPU pode ser configurado de modo a executar o restante do algoritmo de chamada de variante baseado em haplótipo original, em uma plataforma de CPU+FPGA, ou GPU+FPGA ou CPU e/ou GPU+FPGA e/ou QPU frouxamente integrada ou firmemente integrada. Por exemplo, em uma integração frouxa, cadeias de software podem construir e preparar um gráfico de De Bruijn e/ou de montagem a partir de leituras sobrepostas a uma região ativa escolhido (uma janela ou subconjunto contíguo do genoma de referência), extrair haplótipos candidatos do gráfico e colocar em fila pares de haplótipo-leitura para transferência de DMA aos mecanismos de hardware de FPGA, tal como para comparação de HMM pareado ou HMM PD. As mesmas ou outras cadeias de software pode, então, receber os resultados de HMM pareado colocados em fila e transferidos por DMA de volta do FPGA para a memória de CPU/GPU e receber cálculos de genotipagem e probabilidade bayesiana para produzir chamadas de variante finais. Obviamente, um ou mais dessas funções podem ser configuradas de modo a serem executadas em uma ou mais plataformas de computação quânticas.[0561] Such operation may be performed by one or more of a MRJD, Pairwise Hidden Markov Model (Paired HMM) and/or a Pairwise Hidden Markov Model (PDHMM) calculation that sums the probabilities of possible combinations of errors in sequencing or sample preparation (PCR, etc.) by a dynamic programming algorithm. Thus, in relation thereto, the system may be configured such that a pairwise HMM or PDHMM calculation may be accelerated by one or more, e.g., parallel, FPGA hardware or quantum processing engines, while the CPU/GPU/QPU software may be configured to execute the remainder of the original haplotype-based variant calling algorithm on a loosely integrated or tightly integrated CPU+FPGA, or GPU+FPGA, or CPU and/or GPU+FPGA and/or QPU platform. For example, in loose integration, software chains can construct and prepare a De Bruijn and/or assembly graph from reads overlapping a chosen hot region (a window or contiguous subset of the reference genome), extract candidate haplotypes from the graph, and queue haplotype-read pairs for DMA transfer to FPGA hardware engines, such as for pairwise HMM or PD HMM comparison. The same or other software chains can then receive the queued and DMA-transferred pairwise HMM results back from the FPGA to CPU/GPU memory and receive genotyping and Bayesian probability calculations to produce final variant calls. Of course, one or more of these functions can be configured to run on one or more quantum computing platforms.

[0562] Por exemplo, conforme pode ser observado em relação à Figura 38, a CPU/GPU 1000 pode incluir um ou mais, por exemplo, uma pluralidade, de cadeias 20a, 20b, e 20c, que podem ter, cada uma, acesso a uma DRAM associada 1014, em que a DRAM tem espaço de trabalho 1014a, 1014b e 1014c, dentro do qual cada cadeia 20a, 20b, e 20c pode ter acesso, respectivamente, de modo a realizar uma ou mais operações em uma ou mais estruturas de dados, tal como grandes estruturas de dados. Essas porções de memória e suas estruturas de dados podem ser acessadas, tal como por meio das respectivas porções de cache 1014a', tal como por um ou mais mecanismos de processamento 13a, 13b, 13c da FPGA 7, em que os mecanismos de processamento podem acessar as estruturas de dados de referidas, tal como no desempenho de uma ou mais das operações descritas no presente documento, tal como para mapeamento, alinhamento, classificação e/ou chamada de variante. Devido à alta largura de banda, interconexão de acoplamento firme 3, os dados pertencentes às estruturas de dados e/ou relacionados aos resultados de processamento podem ser compartilhados de modo substancialmente ininterrupto entre a CPU e/ou GPU e/ou QPU e/ou o FPGA associado, tal como de uma maneira coerente com cache, de modo a otimizar a eficácia de processamento.[0562] For example, as can be seen with respect to Figure 38 , the CPU/GPU 1000 can include one or more, e.g., a plurality, of chains 20a, 20b, and 20c, which can each have access to an associated DRAM 1014, wherein the DRAM has workspace 1014a, 1014b, and 1014c, within which each chain 20a, 20b, and 20c can have access, respectively, in order to perform one or more operations on one or more data structures, such as large data structures. These memory portions and their data structures may be accessed, such as via respective cache portions 1014a', such as by one or more processing engines 13a, 13b, 13c of the FPGA 7, wherein the processing engines may access said data structures, such as in performing one or more of the operations described herein, such as for mapping, alignment, sorting, and/or variant calling. Due to the high bandwidth, tightly coupled interconnect 3, data pertaining to the data structures and/or related to processing results may be shared in a substantially seamless manner between the CPU and/or GPU and/or QPU and/or the associated FPGA, such as in a cache-coherent manner, so as to optimize processing efficiency.

[0563] Consequentemente, em um aspecto, conforme revelado no presente documento, pode ser fornecido um sistema em que o sistema é configurado para compartilhar recursos de memória entre suas partes componentes, tal como em relação a realizar algumas tarefas e subfunções computacionais por meio de software, tal como executadas por uma CPU e/ou GPU e/ou QPU, e realizar outras tarefa ou subfunções computacionais por meio de firmware, tal como por meio do hardware de um chip associado, tal como um FPGA e/ou ASIC ou ASIC estruturado. Isso pode ser atingido de diferentes maneiras, tal como por um acoplamento direto frouxo ou firme entre a CPU/GPU/QPU e o chip, por exemplo, FPGA. Tais configurações podem ser particularmente úteis ao distribuir operações relacionadas ao processamento de grandes estruturas de dados, conforme descrito no presente documento, que têm funções ou subfunções a serem usadas e acessadas pela CPU e/ou GPU e/ou QPU e o circuito integrado. Particularmente, em várias modalidades, ao processar dados através de uma segmentação de genômica, conforme descrito no presente documento, tal como para acelerar a função de processamento geral, temporização e eficácia, diversas operações diferentes podem ser executadas nos dados, em que as operações podem envolver ambos os componentes de processamento de software e hardware.[0563] Accordingly, in one aspect, as disclosed herein, a system may be provided wherein the system is configured to share memory resources among its component parts, such as with respect to performing some computational tasks and subfunctions via software, as performed by a CPU and/or GPU and/or QPU, and performing other computational tasks or subfunctions via firmware, such as via the hardware of an associated chip, such as an FPGA and/or ASIC or structured ASIC. This may be achieved in different ways, such as by a loose or tight direct coupling between the CPU/GPU/QPU and the chip, e.g., FPGA. Such configurations may be particularly useful when distributing operations related to the processing of large data structures, as described herein, that have functions or subfunctions to be used and accessed by the CPU and/or GPU and/or QPU and the integrated circuit. Particularly, in various embodiments, when processing data through a genomics segmentation as described herein, such as to speed up the overall processing function, timing, and efficiency, a number of different operations may be performed on the data, where the operations may involve both software and hardware processing components.

[0564] Consequentemente, os dados podem precisar ser compartilhados e/ou comunicados de outro modo, entre o componente de software executado na CPU e/ou GPU e/ou na QPU e no componente de hardware incorporado no chip, por exemplo, um FPGA ou ASIC. Consequentemente, uma ou mais das etapas na segmentação de processamento, ou uma porção da mesma, podem ser realizadas por um dispositivo, por exemplo, a CPU/GPU/QPU, e uma ou mais das várias etapas podem ser realizadas pelo outro dispositivo, por exemplo, o FPGA ou ASIC. Em tal caso, a CPU e o FPGA precisam ser acoplados comunicativamente, tal como por uma interconexão ponto a ponto, de tal maneira que permita a transmissão eficaz de tais dados, em que o acoplamento pode envolver o uso compartilhado de recursos de memória. Para atingir tal distribuição de tarefas e o compartilhamento de informações para o desempenho de tais tarefas, a CPU e/ou GPU e/ou QPU pode ser frouxa ou firmemente acopladas umas às outras e/ou a um FPGA, ou outro conjunto de chip, e um sistema de gerenciamento de fluxo de trabalho pode estar incluído de modo a distribuir a carga de trabalho eficazmente.[0564] Accordingly, data may need to be shared and/or otherwise communicated between the software component executing on the CPU and/or GPU and/or QPU and the hardware component embedded in the chip, e.g., an FPGA or ASIC. Accordingly, one or more of the steps in the processing thread, or a portion thereof, may be performed by one device, e.g., the CPU/GPU/QPU, and one or more of the multiple steps may be performed by the other device, e.g., the FPGA or ASIC. In such a case, the CPU and FPGA need to be communicatively coupled, such as by a point-to-point interconnect, in such a manner as to allow for the efficient transmission of such data, where the coupling may involve the shared use of memory resources. To achieve such distribution of tasks and sharing of information for the performance of such tasks, the CPU and/or GPU and/or QPU may be loosely or tightly coupled to each other and/or to an FPGA, or other chip set, and a workflow management system may be included so as to distribute the workload effectively.

[0565] Logo, em modalidades particulares, uma plataforma de análise de genômica é fornecida. Por exemplo, a plataforma pode incluir uma placa-mãe, uma memória e uma pluralidade de circuitos integrados, tal como formando um ou mais dentre uma CPU/GPU/QPU, um módulo de mapeamento, um módulo de alinhamento, um módulo de classificação e/ou um módulo de chamada de variante. Especificamente, em modalidades particulares, a plataforma pode incluir um primeiro circuito integrado, tal como um circuito integrado que forma uma unidade de processamento central (CPU) e/ou unidade de processamento de gráficos (GPU), que é responsivo a um ou mais software ou outros algoritmos que são configurados para instruir a CPU/GPU a realizar um ou mais conjuntos de funções de análise de genômica, conforme descrito no presente documento, tal como quando a CPU/GPU inclui um primeiro conjunto de interconexões eletrônicas físicas para conexão com a placa-mãe. Em outras modalidades, uma unidade de processamento quântico é fornecida, em que a QPU inclui um ou mais circuitos quânticos que são configurados para realizar uma ou mais das funções reveladas no presente documento. Em diversos casos, é fornecida uma memória, em que a memória pode ser também fixada à placa-mãe e pode ser, ainda, conectada eletronicamente à CPU e/ou GPU e/ou QPU, tal como por meio de pelo menos uma porção do primeiro conjunto de interconexões eletrônicas físicas. Em tais casos, a memória pode ser configurada para armazenar uma pluralidade de leituras de dados genômicos e/ou pelo menos uma ou mais sequências genéticas de referência e/ou um índice, por exemplo, tal como uma tabela de hash, da uma ou mais sequências genéticas de referência.[0565] Thus, in particular embodiments, a genomics analysis platform is provided. For example, the platform may include a motherboard, a memory, and a plurality of integrated circuits, such as forming one or more of a CPU/GPU/QPU, a mapping module, an alignment module, a classification module, and/or a variant calling module. Specifically, in particular embodiments, the platform may include a first integrated circuit, such as an integrated circuit forming a central processing unit (CPU) and/or graphics processing unit (GPU), that is responsive to one or more software or other algorithms that are configured to instruct the CPU/GPU to perform one or more sets of genomics analysis functions as described herein, such as when the CPU/GPU includes a first set of physical electronic interconnects for connection to the motherboard. In other embodiments, a quantum processing unit is provided, wherein the QPU includes one or more quantum circuits that are configured to perform one or more of the functions disclosed herein. In various cases, memory is provided, wherein the memory may also be attached to the motherboard and may further be electronically connected to the CPU and/or GPU and/or QPU, such as via at least a portion of the first set of physical electronic interconnects. In such cases, the memory may be configured to store a plurality of genomic data reads and/or at least one or more reference gene sequences and/or an index, e.g., such as a hash table, of the one or more reference gene sequences.

[0566] Adicionalmente, a plataforma pode incluir um ou mais dentre um segundo circuito (ou circuitos) integrado, tal como quando cada segundo circuito (ou circuitos) integrado forma um arranjo de portas programável em campo (FPGA) ou ASIC ou ASIC estruturado que tem um segundo conjunto de interconexões eletrônicas físicas para conexão com a CPU e a memória, tal como por meio de um protocolo de interconexão ponto a ponto. Em tal caso, o FPGA (ou ASIC estruturado_ pode ser programável por firmware para configurar um conjunto de circuitos lógicos digitais com fio que são interconectados por uma pluralidade de interconexões físicas para realizar um segundo conjunto de funções de análise de genômica, por exemplo, mapeamento, alinhamento, classificação, desduplicação, chamada de variante, por exemplo, uma função de HMM, etc. Particularmente, os circuitos lógicos digitais com fio do FPGA podem ser dispostos como um conjunto de mecanismos de processamento para realizar uma ou mais etapas pré-configuradas em uma segmentação de análise de sequência da plataforma de análise de genômica, tal como quando o conjunto (ou conjuntos) de mecanismos de processamento inclui um ou mais dentre um módulo de mapeamento e/ou alinhamento e/ou classificação e/ou desduplicação e/ou chamada de variante, em que os módulos podem ser formados por subconjuntos separados ou iguais de mecanismos de processamento.[0566] Additionally, the platform may include one or more of a second integrated circuit (or circuits), such as where each second integrated circuit (or circuits) forms a field programmable gate array (FPGA) or ASIC or structured ASIC that has a second set of physical electronic interconnects for connection to the CPU and memory, such as via a point-to-point interconnect protocol. In such a case, the FPGA (or structured ASIC) may be firmware programmable to configure a set of hardwired digital logic circuits that are interconnected by a plurality of physical interconnects to perform a second set of genomic analysis functions, e.g., mapping, alignment, classification, deduplication, variant calling, e.g., an HMM function, etc. In particular, the hardwired digital logic circuits of the FPGA may be arranged as a set of processing engines to perform one or more preconfigured steps in a sequence analysis segment of the genomic analysis platform, such as when the set (or sets) of processing engines includes one or more of a mapping and/or alignment and/or classification and/or deduplication and/or variant calling module, wherein the modules may be formed by separate or equal subsets of processing engines.

[0567] Por exemplo, em relação à chamada de variante, um cálculo de HMM pareado ou HMM PD é uma dentre as etapas com computação mais intensiva de um protocolo de chamada de variante baseado em haplótipo. Logo, a velocidade de chamada de variante pode ser grandemente aprimorada acelerando-se essa etapa em um ou mais FPGA ou mecanismos de processamento quântico, conforme descrito no presente documento. Entretanto, pode haver benefício adicional em acelerar outras etapas com computação intensiva em mecanismos adicionais e FPGA e/ou QP, para atingir uma aceleração maior de chamada de variante, ou uma porção da mesma, ou reduzir a carga de CPU/GPU e o número de núcleos de CPU/GPU exigido, ou ambos, conforme visto em relação à Figura 38.[0567] For example, with respect to variant calling, a pairwise HMM or PD HMM calculation is one of the most computationally intensive steps of a haplotype-based variant calling protocol. Therefore, the speed of variant calling can be greatly improved by accelerating this step on one or more FPGA or quantum processing engines, as described herein. However, there may be additional benefit in accelerating other computationally intensive steps on additional FPGA and/or QP engines, to achieve greater acceleration of variant calling, or a portion thereof, or to reduce the CPU/GPU load and the number of CPU/GPU cores required, or both, as seen with respect to Figure 38.

[0568] As funções com computação intensiva adicional, em relação à chamada de variante, que podem ser implantadas em FPGA e/ou mecanismos de processamento quântico incluem: detecção de região chamável, em que regiões de genoma de referência cobertas por profundidade e/ou qualidade adequadas de leituras alinhadas são selecionadas para processamento; detecção de região ativa, em que os loci de genoma de referência com evidência não trivial de possíveis variantes são identificados, e janelas de contexto suficiente em torno desses loci são selecionados como regiões ativas para processamento adicionalmente; De-Bruijn ou outra construção de gráfico de montagem, em que leituras que sobrepõem uma região ativa e/ou K-mers dessas leituras são montadas em um gráfico; preparação de gráfico de montagem, tal como caminhos de baixa cobertura ou baixa qualidade de recorte, reparando caminhos de cabeça e cauda pendentes unindo-se os mesmos em uma cadeia principal de referência no gráfico, transformação de K-mer em representação de sequência do gráfico, mesclando ramificações similares e simplificando de outro modo o gráfico; extraindo haplótipos candidatos a partir do gráfico de montagem; assim como alinhamento de haplótipos candidatos ao genoma de referência, tal como por alinhamento de Smith-Waterman, por exemplo, para determinar variantes (SNPs e/ou indels) a partir da referência representada por cada haplótipo, e sincronizar suas posições de nucleotídeo com a referência.[0568] Additional computationally intensive functions, relative to variant calling, that may be implemented in FPGA and/or quantum processing engines include: callable region detection, wherein reference genome regions covered by adequate depth and/or quality of aligned reads are selected for processing; hot region detection, wherein reference genome loci with nontrivial evidence of possible variants are identified, and sufficient context windows around those loci are selected as hot regions for further processing; De-Bruijn or other assembly graph construction, wherein reads overlapping an active region and/or K-mers of those reads are assembled into a graph; assembly graph preparation, such as low coverage or low quality clipping paths, repairing dangling head and tail paths by joining them into a reference backbone in the graph, transforming K-mer to sequence representation of the graph, merging similar branches, and otherwise simplifying the graph; extracting candidate haplotypes from the assembly graph; as well as aligning candidate haplotypes to the reference genome, such as by Smith-Waterman alignment, for example, to determine variants (SNPs and/or indels) from the reference represented by each haplotype, and synchronize their nucleotide positions with the reference.

[0569] Todas essas funções podem ser implantadas como mecanismos de hardware de alto desempenho dentro do FPGA e/ou por um ou mais circuitos quânticos de uma plataforma de computação quântica. Entretanto, chamar tal variedade de funções de aceleração de hardware a partir de muitos pontos de integração no software de chamada de variante pode tornar-se ineficaz em uma plataforma de CPU/GPU/QPU+FPGA frouxamente integrada e, portanto, uma plataforma de CPU/GPU/QPU+FPGA firmemente integradas pode ser desejável. Por exemplo, vários métodos de processamento graduais, tal como: construir, preparar e extrair haplótipos de um gráfico de De Bruijn, ou outro gráfico de montagem, poderiam se beneficiar fortemente de uma plataforma de CPU/GPU/QPU+FPGA firmemente integradas. Adicionalmente, os gráficos de montagem são estruturas de dados grandes e complexas, e passar os mesmos repetidamente entre a CPU e/ou GPU e o FPGA poderia se tornar dispendioso sem recurso e inibir a aceleração significativa.[0569] All of these functions can be implemented as high-performance hardware engines within the FPGA and/or by one or more quantum circuits of a quantum computing platform. However, calling such a variety of hardware acceleration functions from many integration points in the variant calling software may become inefficient on a loosely integrated CPU/GPU/QPU+FPGA platform, and therefore a tightly integrated CPU/GPU/QPU+FPGA platform may be desirable. For example, various piecemeal processing methods, such as constructing, preparing, and extracting haplotypes from a De Bruijn graph, or other assembly graph, could benefit greatly from a tightly integrated CPU/GPU/QPU+FPGA platform. Additionally, assembly graphs are large and complex data structures, and repeatedly passing them between the CPU and/or GPU and the FPGA could become resource-intensive and inhibit significant acceleration.

[0570] Logo, um modelo ideal para tal processamento de gráfico, empregando uma plataforma de CPU/GPU/QPU e/ou FPGA firmemente integrada, é manter tais gráficos em memória compartilhada coerente com cache para alterar processamento por funções de software de CPU e/ou GPU e/ou QPU e hardware de FPGA. Em tal caso, uma cadeia de software que processo um dado gráfico pode iterativamente comandar várias etapas de processamento de gráfico com computação intensiva por um mecanismo de hardware, e, então, o software poderia inspecionar os resultados e determina as etapas seguintes entre as chamadas de hardware, tal como exemplificado no processo da Figura 39. Esse modelo de processamento pode ser controlado por um sistema de gerenciamento de fluxo de trabalho adequadamente configurado e/ou pode ser configurado para corresponder a paradigmas de software, tal como um API de estrutura de dados ou uma interface de método orientada por objeto, mas com funções com computação intensiva sendo aceleradas por mecanismos de processamento de hardware e/ou quântico personalizado, o que é mais prático por ser implantado em uma plataforma de CPU e/ou GPU e/ou QPU +FPGA integrada firmemente, com memória compartilhada coerente com cache e interconexões de CPU/GPU/QPU/FPGA de alta largura de banda/baixa latência.[0570] Thus, an ideal model for such graph processing, employing a tightly integrated CPU/GPU/QPU and/or FPGA platform, is to maintain such graphs in cache-coherent shared memory for change processing by CPU and/or GPU and/or QPU software functions and FPGA hardware. In such a case, a software pipeline that processes a given graph could iteratively command multiple compute-intensive graph processing steps through a hardware engine, and then the software could inspect the results and determine the next steps between hardware calls, as exemplified in the process in Figure 39. This processing model could be controlled by a suitably configured workflow management system, and/or could be configured to match software paradigms such as a data structure API or an object-oriented method interface, but with compute-intensive functions being accelerated by custom hardware and/or quantum processing engines, which is most practical to deploy on a tightly integrated CPU and/or GPU and/or QPU + FPGA platform with cache-coherent shared memory and high-bandwidth/low-latency CPU/GPU/QPU/FPGA interconnects.

[0571] Consequentemente, adicionalmente a mapear e alinhar leituras sequenciadas a um genoma de referência, as leituras podem ser montadas "de novo", por exemplo, sem um genoma de referência, tal como detectando-se a sobreposição aparente entre as leituras, por exemplo, em um acúmulo, em que as mesmas estão completa ou quase completamente de acordo, e unindo-se as mesmas em sequências mas longas, contíguos, arcabouços ou gráficos. Essa montagem pode ser também realizada localmente, tal como com o uso de todas as leituras determinadas para mapear-se a um dado cromossomo ou porção das mesmas. A montagem dessa maneira pode também incorporar um genoma de referência, ou segmento do mesmo, na estrutura montada.[0571] Accordingly, in addition to mapping and aligning sequenced reads to a reference genome, the reads may be assembled "de novo", e.g., without a reference genome, such as by detecting apparent overlap between reads, e.g., in an assemblage, in which they are completely or nearly completely in agreement, and joining them into longer, contiguous sequences, scaffolds or graphs. Such assembly may also be performed locally, such as by using all reads determined to map to a given chromosome or portion thereof. Assembly in this manner may also incorporate a reference genome, or segment thereof, into the assembled structure.

[0572] Em tal caso, devido à complexidade de unir sequências de leituras que não estão completamente de acordo, uma estrutura de gráfico pode ser empregada, tal como em que leituras sobrepostas podem estar de acordo em uma única sequência em um segmento, mas se ramificar em múltiplas sequências em um segmento adjacente, conforme explicado acima. Tal gráfico de montagem, portanto, pode ser um gráfico de sequência, em que cada borda ou nó representa um nucleotídeo ou uma sequência de nucleotídeos que é considerada como unida contiguamente às sequências em bordas ou nós conectados. Em casos particulares, tal gráfico de montagem pode ser um gráfico de k-mer, em que cada nó representa um k-mer, ou sequência de nucleotídeos de (tipicamente) comprimento fixo k, e em que nós conectados são considerados como sobrepostos entre si em sequências mais longas observadas, tipicamente sobreposição por k-1 nucleotídeos. Em vários métodos, pode haver uma ou mais transformações realizadas entre um ou mais gráficos de sequência e gráficos de k-mer.[0572] In such a case, due to the complexity of joining sequences of reads that are not completely in agreement, a graph structure may be employed, such as where overlapping reads may agree on a single sequence in one segment, but branch into multiple sequences in an adjacent segment, as explained above. Such an assembly graph, therefore, may be a sequence graph, where each edge or node represents a nucleotide or sequence of nucleotides that is considered to be joined contiguously to the sequences at connected edges or nodes. In particular cases, such an assembly graph may be a k-mer graph, where each node represents a k-mer, or sequence of nucleotides of (typically) fixed length k, and where connected nodes are considered to overlap with each other in longer observed sequences, typically overlapping by k-1 nucleotides. In various methods, there may be one or more transformations performed between one or more sequence graphs and k-mer graphs.

[0573] Embora gráficos de montagem sejam empregados em chamada de variante baseada em haplótipo, e alguns dos métodos de processamento de gráfico empregados sejam similares, há diferenças importantes. Os gráficos de montagem de novo são, de modo geral, muito maiores e empregam k-mers mais longos. Enquanto os gráficos de montagem de chamada de variante sejam restringidos a serem razoavelmente estruturas e relativamente simples, tal como não tendo ciclos e fluindo da fonte ao destino ao longo de uma cadeia principal de sequência de referência, gráficos de montagem de novo tendem a ser mais complexos e estruturados, com ciclos, caminhos pendentes e outras anomalias não apenas permitidas, mas submetidas a análise especial. Coloração de gráfico de montagem de novo é algumas vezes empregada, atribuindo "cores" aos nós e bordas, significando, por exemplo, que a amostra biológica dos quais se originam ou correspondência com uma sequência de referência. Logo, uma variedade mais ampla de funções de análise e processamento de gráfico precisa ser empregada para gráficos de montagem de novo, frequentemente de modo iterativo ou recursivo, e especificamente devido ao tamanho e à complexidade de gráficos de montagem de novo, funções de processamento tendem a ser de computação extremamente intensiva.[0573] Although assembly graphs are employed in haplotype-based variant calling, and some of the graph processing methods employed are similar, there are important differences. De novo assembly graphs are generally much larger and employ longer k-mers. While variant calling assembly graphs are constrained to be reasonably structured and relatively simple, such as having no cycles and flowing from source to target along a reference sequence backbone, de novo assembly graphs tend to be more complex and structured, with cycles, dangling paths, and other anomalies not only allowed, but subject to special analysis. De novo assembly graph coloring is sometimes employed, assigning "colors" to nodes and edges, signifying, for example, the biological sample from which they originate or match a reference sequence. Therefore, a wider variety of graph analysis and processing functions need to be employed for de novo assembly graphs, often in an iterative or recursive fashion, and specifically due to the size and complexity of de novo assembly graphs, processing functions tend to be extremely computationally intensive.

[0574] Logo, conforme apresentado acima, um modelo ideal para tal processamento de gráfico, em uma plataforma de CPU/GPU/QPU+FPGA firmemente integrada, é manter tais gráficos em memória compartilhada coerente com cache para alternar o processamento entre as funções de software de CPU/GPU/QPU e hardware de FPGA. Em tal caso, uma cadeia de software que processa um dado gráfico pode comandar interativamente várias etapas processamento de gráfico com computação intensiva a serem realizadas por um mecanismo de hardware e, então, inspecionar os resultados para assim determinar as etapas seguintes a serem realizadas pelo hardware, tal como realizando-se chamadas de hardware. Como acima, esse modelo de processamento é grandemente beneficiado por implantação em uma plataforma de CPU+FPGA firmemente integrada, com memória compartilhada coerente com cache e interconexão de CPU/FPGA de alta largura de banda/baixa latência.[0574] Thus, as discussed above, an ideal model for such graph processing on a tightly integrated CPU/GPU/QPU+FPGA platform is to maintain such graphs in cache-coherent shared memory to alternate processing between CPU/GPU/QPU software functions and FPGA hardware. In such a case, a software chain processing a given graph can interactively command multiple compute-intensive graph processing steps to be performed by a hardware engine, and then inspect the results to determine the next steps to be performed by the hardware, such as by making hardware calls. As above, this processing model greatly benefits from implementation on a tightly integrated CPU+FPGA platform with cache-coherent shared memory and high-bandwidth/low-latency CPU/FPGA interconnect.

[0575] Adicionalmente, conforme descrito abaixo no presente documento, a análise terciária inclui processamento genômico que pode seguir a montagem de gráfico e/ou chamada de variante, que, em aplicações clínicas, pode incluir anotação de variante, previsão de fenótipo, teste de doença e/ou previsão de resposta a tratamento, conforme descrito no presente documento. As razões de ser benéfico realizar análise terciária em tal plataforma de CPU/GPU/QPU+FPGA firmemente integrada são que tal configuração de plataforma possibilita a aceleração eficaz de processamento primário e/ou secundário, que tem computação muito intensiva e é ideal para continuar com análise terciária na mesma plataforma, para conveniência e tempo de resposta reduzido, e minimizar a transmissão e cópia de arquivos de dados genômicos grandes. Logo, uma plataforma de CPU/GPU/QPU+FPGA frouxa ou firmemente integrada é uma boa escolha, mas uma plataforma firmemente acoplada pode incluir benefícios adicionais devido ao fato de que etapas e métodos de análise terciária variam amplamente de uma aplicação para outra, e em qualquer caso em que etapas com computação intensiva retardam a análise terciária, a aceleração de FPGA personalizado dessas etapas pode ser implantada de uma forma otimizada.[0575] Additionally, as described below herein, tertiary analysis includes genomic processing that may follow graph assembly and/or variant calling, which in clinical applications may include variant annotation, phenotype prediction, disease testing, and/or treatment response prediction as described herein. The reasons why it is beneficial to perform tertiary analysis on such a tightly integrated CPU/GPU/QPU+FPGA platform are that such a platform configuration enables effective acceleration of primary and/or secondary processing, which is computationally very intensive, and is ideal for continuing with tertiary analysis on the same platform for convenience and reduced turnaround time, and minimizing transmission and copying of large genomic data files. Therefore, a loosely or tightly coupled CPU/GPU/QPU+FPGA platform is a good choice, but a tightly coupled platform may include additional benefits due to the fact that tertiary analysis steps and methods vary widely from one application to another, and in any case where compute-intensive steps slow down tertiary analysis, custom FPGA acceleration of these steps can be implemented in an optimized way.

[0576] Por exemplo, um benefício particular para análise terciária em uma plataforma de CPU/GPU/QPU e/ou FPGA firmemente integrada é a capacidade para analisar novamente os dados genômicos iterativamente, alavancando a aceleração de CPU/GPU/QPU e/ou FPGA de processamento secundário, em resposta a resultados terciários parciais ou intermediários, que podem se beneficiar adicionalmente da configuração de integração firme. Por exemplo, após a análise terciária detectar um possível fenótipo ou doença, mas com confiança limitada quanto a se a detecção é verdadeira ou falsa, reanálise secundário focada pode ser realizada com esforço extremamente alto nas leituras e regiões de referência particulares que impactam a detecção, aprimorando, assim, a precisão e a confiança de chamadas de variante relevantes e, por sua vez aprimorando a confiança na chamada de detecção. Adicionalmente, se a análise terciária determinar as informações sobre genótipos de variante estrutural de ascendência do indivíduo analisado, a análise secundária pode ser repetida com o uso de um genoma de referência diferente ou modificado, que é mais adequado para o indivíduo específico, aumentando, assim, a precisão de chamadas de variante e aprimorando a precisão de outras etapas de análise terciária.[0576] For example, a particular benefit to tertiary analysis on a tightly integrated CPU/GPU/QPU and/or FPGA platform is the ability to iteratively reanalyze genomic data, leveraging CPU/GPU/QPU and/or FPGA secondary processing acceleration, in response to partial or intermediate tertiary results, which may further benefit from the tightly integrated configuration. For example, after tertiary analysis detects a possible phenotype or disease, but with limited confidence as to whether the detection is true or false, focused secondary reanalysis can be performed with extremely high effort on the particular reference reads and regions that impact detection, thereby improving the accuracy and confidence of relevant variant calling, and in turn improving confidence in detection calling. Additionally, if the tertiary analysis determines structural variant genotype information from the ancestry of the analyzed individual, the secondary analysis can be repeated using a different or modified reference genome that is more suitable for the specific individual, thereby increasing the accuracy of variant calling and improving the accuracy of other tertiary analysis steps.

[0577] Entretanto, se análise terciária for realizada em uma plataforma de apenas CPU após processamento primário e secundário (possivelmente acelerado em uma plataforma separada), então, é provável que a reanálise com ferramentas de processamento secundário seja muito lenta para ser útil na própria plataforma de análise terciária, e a alternativa é a transmissão a uma plataforma mais rápida, que é também proibitivamente lenta. Assim, na ausência de qualquer forma de hardware ou aceleração quântica na plataforma de análise terciária, processamento primário ou secundário precisa ser, de modo geral, concluído antes de a análise terciária começar, sem a possibilidade de reanálise fácil ou análise secundária iterativa e/ou segmentação de funções analíticas. Mas em uma plataforma de FPGA e/ou com aceleração quântica, e especialmente uma plataforma de CPU e/ou GPU e/ou QPU e/ou FPGA firmemente integrada em que processamento secundário é maximamente eficaz, análise iterativa se torna prática e útil.[0577] However, if tertiary analysis is performed on a CPU-only platform after primary and secondary processing (possibly accelerated on a separate platform), then reanalysis with secondary processing tools is likely to be too slow to be useful on the tertiary analysis platform itself, and the alternative is offloading to a faster platform, which is also prohibitively slow. Thus, in the absence of any form of hardware or quantum acceleration on the tertiary analysis platform, primary or secondary processing must generally be completed before tertiary analysis can begin, without the possibility of easy reanalysis or iterative secondary analysis and/or segmentation of analytical functions. But on an FPGA and/or quantum-accelerated platform, and especially a tightly integrated CPU and/or GPU and/or QPU and/or FPGA platform where secondary processing is maximally efficient, iterative analysis becomes practical and useful.

[0578] Consequentemente, conforme indicado acima, os módulos revelados no presente documento podem ser implantados no hardware do chip, tal como por meio de serem com fios no mesmo, e, em tais casos, sua implantação pode ser de forma que seu funcionamento possa ocorrer em uma velocidade mais rápida, com maior precisão, em comparação com quando implantados em software, tal como quando existem instruções mínimas a serem buscadas, lidas e/ou executadas. Adicionalmente, em vários casos, as funções a serem realizadas por um ou mais desses módulos podem ser distribuídas de modo que várias das funções possam ser configuradas de modo a serem implantadas pelo software de CPU e/ou GPU e/ou QPU hospedeira, enquanto, em outros casos, várias outras funções podem ser realizadas pelo hardware de um FPGA associado, tal como em que os dois ou mais dispositivos realizam suas respectivas funções um com o outro, tal como de uma forma ininterrupta. Para tais propósitos, a CPU, GPU, QPU e/ou FPGA ou ASIC ou ASIC estruturado podem ser firmemente acoplados, tal como por meio de uma interconexão de baixa latência e alta largura de banda, tal como uma QPI, CCVI, CAPI e similares. Consequentemente, em alguns casos, as funções altamente intensivas em computação a serem realizadas por um ou mais desses módulos podem ser realizadas por um processador quântico implantado por um ou mais circuitos quânticos.[0578] Accordingly, as indicated above, the modules disclosed herein may be implemented in the hardware of the chip, such as by being wired thereto, and in such cases their implementation may be such that their operation may occur at a faster speed, with greater accuracy, compared to when implemented in software, such as when there are minimal instructions to be fetched, read, and/or executed. Additionally, in various cases, the functions to be performed by one or more such modules may be distributed such that several of the functions may be configured to be implemented by the host CPU and/or GPU and/or QPU software, while in other cases, several other functions may be performed by the hardware of an associated FPGA, such as where the two or more devices perform their respective functions with each other, such as in a seamless manner. For such purposes, the CPU, GPU, QPU and/or FPGA or ASIC or structured ASIC may be tightly coupled, such as through a low-latency, high-bandwidth interconnect such as a QPI, CCVI, CAPI, and the like. Consequently, in some cases, the highly compute-intensive functions to be performed by one or more of these modules may be performed by a quantum processor implemented by one or more quantum circuits.

[0579] Logo, dada a implantação de processamento de hardware e/ou quântica única, os módulos da revelação podem funcionar diretamente de acordo com seus parâmetros operacionais, tal como sem precisas buscar, ler e/ou executar instruções, tal como quando implantado somente em software de CPU. Adicionalmente, os requisitos de memória e os tempos de processamento podem ser adicionalmente reduzidos, tal como em que as comunicações com o chip são por meio de arquivos, por exemplo, armazenados localmente no cache de FPGA/CPU/GPU/QPU, tal como de uma maneira coerente com cache, em vez de através de acesso extensivo a uma memória externa. Obviamente, em alguns casos, o chip e/ou o cartão pode ser dimensionado a fim de incluir mais memória, tal como mais memória em placa, a fim de aprimorar as capacidades de processamento paralelo, resultando, desse modo, em velocidades de processamento ainda mais rápidas. Por exemplo, em determinadas modalidades, um chip da revelação pode incluir uma DRAM embutida, de forma que o chip não tenha que depender da memória externa, o que resultaria, portanto, em um aumento adicional na velocidade de processamento, tal como quando um algoritmo de Burrows-Wheeler ou De Brujin Graph pode ser empregado, em vez de uma tabela de dispersão e função de hash, a qual pode, em diversos casos, depender de memória externa, por exemplo, hospedeira. Em tais casos, a operação de uma porção ou toda a segmentação pode ser realizada em 6 ou 10 ou 12 ou 15 ou 20 minutos ou menos, tal como do início ao fim.[0579] Thus, given the implementation of hardware and/or single quantum processing, the modules of the disclosure may operate directly according to their operating parameters, such as without needing to fetch, read and/or execute instructions, such as when implemented in CPU software only. Additionally, memory requirements and processing times may be further reduced, such as where communications with the chip are via files, e.g., stored locally in the FPGA/CPU/GPU/QPU cache, such as in a cache-coherent manner, rather than via extensive access to external memory. Of course, in some cases, the chip and/or card may be scaled to include more memory, such as more on-board memory, in order to enhance parallel processing capabilities, thereby resulting in even faster processing speeds. For example, in certain embodiments, a chip of the disclosure may include an embedded DRAM such that the chip does not have to rely on external memory, which would therefore result in a further increase in processing speed, such as when a Burrows-Wheeler or De Brujin Graph algorithm may be employed instead of a hash table and hash function, which may in many cases rely on external, e.g., host, memory. In such cases, the operation of a portion or all of the segmentation may be performed in 6 or 10 or 12 or 15 or 20 minutes or less, such as from start to finish.

[0580] Conforme indicado acima, existem diversos pontos diferentes em que qualquer dado módulo pode ser posicionado no hardware ou ser posicionado remotamente do mesmo, tal como em um servidor acessível na nuvem. Quando um dado módulo é posicionado no chip, por exemplo, com fio no chip, sua função pode ser realizada pelo hardware, entretanto, quando desejado, o módulo pode ser posicionado remotamente do chip, em que, nesse ponto, a plataforma pode incluir a instrumentalidade necessária para enviar os dados relevantes para um local remoto, tal como um servidor, por exemplo, servidor quântico, acessível por meio da nuvem, de forma que a funcionalidade de módulo particular possa ser engatada para processamento adicional dos dados, de acordo com os protocolos desejados selecionados por usuário. Consequentemente, parte da plataforma pode incluir uma interface baseada em web para o desempenho de uma ou mais tarefas relativas ao funcionamento de um ou mais dentre os módulos revelados no presente documento. Por exemplo, quando o mapeamento , o alinhamento e/ou a classificação são todos módulos que podem ocorrer no chip, em diversos casos, um ou mais dentre realinhamento local , marcação de duplicada , recalibração de núcleo de qualidade de base e/ou chamada de variante podem ocorrer na nuvem.[0580] As indicated above, there are a number of different points at which any given module may be positioned on the hardware or be positioned remotely from it, such as on a cloud-accessible server. When a given module is positioned on the chip, e.g., wired to the chip, its function may be performed by the hardware, however, when desired, the module may be positioned remotely from the chip, at which point the platform may include the necessary instrumentation to send the relevant data to a remote location, such as a server, e.g., quantum server, accessible via the cloud, so that the particular module functionality may be engaged for further processing of the data in accordance with desired user-selected protocols. Accordingly, part of the platform may include a web-based interface for performing one or more tasks relating to the operation of one or more of the modules disclosed herein. For example, when mapping, alignment, and/or classification are all modules that can occur on-chip, in many cases, one or more of local realignment, duplicate marking, base quality core recalibration, and/or variant calling can occur in the cloud.

[0581] Particularmente, uma vez que os dados genéticos foram gerados e/ou processados, por exemplo, em um ou mais protocolos de processamento primário e/ou secundário, tal como por meio de serem mapeados, alinhados e/ou classificados, tal como para produzir um ou mais arquivos de chamada de variante, por exemplo, para determinar como os dados de sequência genética de um sujeito é diferente de uma ou mais sequências de referência, um aspecto adicional da revelação pode ser direcionado a realizar uma ou mais outras funções analíticas nos dados genéticos gerados e/ou processados, tal como para processamento adicional, por exemplo, terciário, conforme retratado nas Figuras 40. Por exemplo, o sistema pode ser configurado para processamento adicional dos dados processados secundariamente e/ou gerados, tal como por execução do mesmo através de uma ou mais segmentações de análise de microarranjo 700, como um ou mais dentre uma segmentação de análise de microarranjo, uma segmentação de análise de genoma, por exemplo, de genoma inteiro, segmentação de análise de genotipagem, segmentação de análise de exoma, segmentação de análise de epigenoma, segmentação de análise de metagenoma, segmentação de análise de microbioma, segmentação de análise de genotipagem, incluindo genotipagem conjunta, segmentação de análises de variantes, incluindo segmentações variantes estruturais, segmentações de variantes somáticas, e segmentações de GATK e/ou MuTect2, assim como segmentações de sequenciamento de R e outras segmentações de análises genéticas.[0581] Particularly, once the genetic data has been generated and/or processed, e.g., in one or more primary and/or secondary processing protocols, such as by being mapped, aligned, and/or classified, such as to produce one or more variant call files, e.g., to determine how a subject's genetic sequence data is different from one or more reference sequences, a further aspect of the disclosure may be directed to performing one or more other analytical functions on the generated and/or processed genetic data, such as for further, e.g., tertiary, processing, as depicted in Figures 40 . For example, the system may be configured for further processing of the secondarily processed and/or generated data, such as by running it through one or more microarray analysis runs 700, such as one or more of a microarray analysis run, a genome, e.g., whole genome, analysis run, a genotyping analysis run, a genome ... exome, epigenome analysis segmentation, metagenome analysis segmentation, microbiome analysis segmentation, genotyping analysis segmentation including joint genotyping, variant analysis segmentation including structural variant segmentations, somatic variant segmentations, and GATK and/or MuTect2 segmentations, as well as R sequencing segmentations and other genetic analysis segmentations.

[0582] Adicionalmente, em diversos casos, uma camada adicional de processamento 800 pode ser fornecida, tal como para diagnóstico de doença, tratamento terapêutico e/ou prevenção profilática, tal como incluindo NIPT, NICU, Câncer, LDT, AgBio e outro tal diagnóstico, profilaxia e/ou tratamentos de doença que empregam os dados gerados por uma ou mais dentre as presentes tubulações primárias e/ou secundárias e/ou terciárias. Por exemplo, segmentações bioanalíticas particulares incluem segmentações de genoma, segmentações de epigenoma, segmentações de metagenoma, segmentações de genotipagem, variantes, por exemplo, segmentações de GATK/MuTect2 e outras tais segmentações. Logo, os dispositivos e os métodos revelados no presente documento podem ser usados para gerar dados de sequência genética, em que os dados podem ser, então, usados para gerar um ou mais arquivos de chamada de variante e/ou outros dados associados que podem ser adicionalmente submetidos à execução de outras tubulações de processamento terciário de acordo com os dispositivos e os métodos revelados no presente documento, tal como para diagnóstico de doença particular e/ou geral, assim como para tratamento profilático e/ou terapêutico e/ou modalidades de desenvolvimento. Consultar, por exemplo, as Figuras 41 B, C e 43.[0582] Additionally, in various instances, an additional layer of processing 800 may be provided, such as for disease diagnosis, therapeutic treatment, and/or prophylactic prevention, such as including NIPT, NICU, Cancer, LDT, AgBio, and other such disease diagnosis, prophylaxis, and/or treatments that employ data generated by one or more of the present primary and/or secondary and/or tertiary pipelines. For example, particular bioanalytical segmentations include genome segmentations, epigenome segmentations, metagenome segmentations, genotyping segmentations, variants, e.g., GATK/MuTect2 segmentations, and other such segmentations. Thus, the devices and methods disclosed herein can be used to generate genetic sequence data, which data can then be used to generate one or more variant call files and/or other associated data that can be further subjected to other tertiary processing pipelines in accordance with the devices and methods disclosed herein, such as for diagnosis of particular and/or general disease, as well as for prophylactic and/or therapeutic treatment and/or development modalities. See, for example, Figures 41 B, C and 43.

[0583] Conforme descrito acima, os métodos e/ou sistemas apresentados no presente documento podem incluir a geração e/ou aquisição de outro modo de dados de sequência genética. Tais dados podem ser gerados ou adquiridos de outro modo a partir de qualquer fonte adequada, tal como por um NGS ou "sequenciador em uma tecnologia de chip". Uma vez gerados e/ou adquiridos, os métodos e sistemas no presente documento podem incluir submeter os dados a processamento adicional, tal como por um ou mais protocolos de processamento secundário 600. Os protocolos de processamento secundário podem incluir um ou mais dentre mapeamento, alinhamento e classificação dos dados de sequência genética gerados, tal como para produzir um ou mais arquivos de chamada de variante, por exemplo, de modo a determinar como os dados de sequência genética de um sujeito diferem de uma ou mais sequências ou genomas de referência. Um aspecto adicional da revelação pode ser direcionado a realizar uma ou mais outras funções analíticas nos dados genéticos gerados e/ou processados, por exemplo, dados de resultado secundário, tal como para processamento adicional, por exemplo, processamento terciário 700/800, em que o processamento pode ser realizado em ou em associação com o mesmo chip ou conjunto de chip que aquele que aloja a tecnologia de sequenciador supracitada.[0583] As described above, the methods and/or systems presented herein may include generating and/or otherwise acquiring genetic sequence data. Such data may be generated or otherwise acquired from any suitable source, such as by an NGS or "sequencer on a chip" technology. Once generated and/or acquired, the methods and systems herein may include subjecting the data to further processing, such as by one or more secondary processing protocols 600. The secondary processing protocols may include one or more of mapping, aligning, and classifying the generated genetic sequence data, such as to produce one or more variant call files, for example, in order to determine how a subject's genetic sequence data differs from one or more reference sequences or genomes. An additional aspect of the disclosure may be directed to performing one or more other analytical functions on the generated and/or processed genetic data, e.g., secondary result data, such as for further processing, e.g., tertiary processing 700/800, wherein the processing may be performed on or in association with the same chip or chip array as that housing the aforementioned sequencer technology.

[0584] Consequentemente, em um primeiro caso, tal como em relação à geração, aquisição e/ou transmissão de dados de sequência genética, conforme apresentado nas Figuras 37 a 41, tais dados podem ser produzidos local ou remotamente e/ou os resultados dos mesmos podem ser, então, diretamente processados, tal como por meio de um recurso de computação local 100, ou podem ser transmitidos para um local remoto, tal como um recurso de computação remoto 300, para processamento adicional, por exemplo, para processamento secundário e/ou terciário, consultar as Figuras 42, Por exemplo, os dados gerados de sequência genética podem ser processados localmente e diretamente, tal como quando as funcionalidades de sequenciamento e processamento secundário estão alojadas no mesmo conjunto de chip e/ou dentro do mesmo dispositivo em sítio 10. Do mesmo modo, os dados gerados de sequência genética podem ser processados localmente e indiretamente, tal como quando as funcionalidades de sequenciamento e processamento secundário ocorrem separadamente por aparelhos distintos que compartilham a mesma instalação ou local, mas podem ser separados por um espaço apesar de conectados de modo comunicável, tal como por meio de uma rede local 10. Em um caso adicional, os dados de sequência genética podem ser derivados remotamente, tal como por um NGS remoto, e os dados resultantes podem ser transmitidos através de uma rede baseada em nuvem 30/50 para um local remoto fora de sítio 300, tal como separados geograficamente do sequenciador.[0584] Accordingly, in a first case, such as with respect to the generation, acquisition, and/or transmission of genetic sequence data as shown in Figures 37 to 41, such data may be generated locally or remotely and/or the results thereof may then be directly processed, such as by means of a local computing resource 100, or may be transmitted to a remote location, such as a remote computing resource 300, for further processing, e.g., for secondary and/or tertiary processing, see Figures 42, For example, the generated genetic sequence data may be processed locally and directly, such as when the sequencing and secondary processing functionalities are housed on the same chip set and/or within the same device at site 10. Likewise, the generated genetic sequence data may be processed locally and indirectly, such as when the sequencing and secondary processing functionalities occur separately by distinct apparatus that share the same facility or location, but may be separated by a space despite being connected in a manner that is not directly related to the same device. communicable manner, such as via a local area network 10. In a further case, genetic sequence data may be derived remotely, such as by a remote NGS, and the resulting data may be transmitted via a cloud-based network 30/50 to a remote off-site location 300, such as geographically separated from the sequencer.

[0585] Especificamente, conforme ilustrado na Figura 40A, em diversas modalidades, um aparelho de geração de dados, por exemplo, sequenciador de nucleotídeos 110, pode ser fornecido no local, tal como quando o sequenciador é um “sequenciador em um chip” ou um NGS, em que o sequenciador é associado a um recurso de computação local 100 direta ou indiretamente, tal como por meio de uma conexão de rede local 10/30. O recurso de computação local 100 pode incluir ou ser de outro modo associado a um ou mais mecanismos de geração de dados 110 e/ou aquisição de dados 120. Tais mecanismos podem ser qualquer mecanismo configurado para gerar e/ou adquirir de outro modo dados, tais como dados analógicos, digitais e/ou eletromagnéticos relacionados a uma ou mais sequências genéticas de um sujeito ou grupo de sujeitos, tal como quando dados de sequência genética estão em um formato de arquivo BCL ou FASTQ.[0585] Specifically, as illustrated in Figure 40A, in various embodiments, a data generation apparatus, e.g., nucleotide sequencer 110, may be provided on-site, such as when the sequencer is a “sequencer on a chip” or an NGS, wherein the sequencer is associated with a local computing resource 100 directly or indirectly, such as via a local network connection 10/30. The local computing resource 100 may include or be otherwise associated with one or more data generation engines 110 and/or data acquisition engines 120. Such engines may be any engine configured to generate and/or otherwise acquire data, such as analog, digital, and/or electromagnetic data related to one or more genetic sequences of a subject or group of subjects, such as when genetic sequence data is in a BCL or FASTQ file format.

[0586] Por exemplo, tal mecanismo de geração de dados 110 pode ser um processador primário, tal como um sequenciador, tal como um NGS, um sequenciador em um chip ou outro mecanismo semelhante para gerar informações de sequência genética. Adicionalmente, tais mecanismos de aquisição de dados 120 podem ser qualquer mecanismo configurado para receber dados, tais como informações de sequência genética geradas, e/ou em conjunto com o gerador de dados 110 e/ou o recurso de computação 100 que tem capacidade para submeter os mesmos a um ou mais protocolos de processamento secundário, tal como um aparelho de segmentação de processamento secundário configurado para operar um mapeador, um alinhador, um classificador e/ou um protocolo de chamador de variante nos dados de sequência gerados e/ou adquiridos, conforme descrito no presente documento. Em diversos casos, os aparelhos de geração de dados 110 e/ou aquisição de dados 120 podem ser conectados por rede em conjunto, tal como através de uma rede local 10, tal como para armazenamento local 200, ou podem ser conectados por rede em conjunto através de uma rede baseada em nuvem e/ou local 30, tal como para transmitir e/ou receber dados, tais como dados digitais relacionados ao processamento primário e/ou secundário de informações de sequência genética, tal como para ou de um local remoto, tal como para processamento 300 e/ou armazenamento 400 remoto. Em diversas modalidades, um ou mais desses componentes podem ser acoplados de modo comunicável em conjunto por uma rede híbrida, conforme descrito no presente documento.[0586] For example, such a data generation engine 110 may be a primary processor, such as a sequencer, such as an NGS, a sequencer on a chip, or other similar engine for generating genetic sequence information. Additionally, such data acquisition engines 120 may be any engine configured to receive data, such as generated genetic sequence information, and/or in conjunction with the data generator 110 and/or the computing resource 100 capable of subjecting the same to one or more secondary processing protocols, such as a secondary processing segmentation apparatus configured to operate a mapper, an aligner, a classifier, and/or a variant caller protocol on the generated and/or acquired sequence data, as described herein. In various instances, data generation apparatus 110 and/or data acquisition apparatus 120 may be networked together, such as through a local area network 10, such as for local storage 200, or may be networked together through a cloud-based and/or local area network 30, such as to transmit and/or receive data, such as digital data related to primary and/or secondary processing of genetic sequence information, such as to or from a remote location, such as for processing 300 and/or remote storage 400. In various embodiments, one or more of these components may be communicably coupled together by a hybrid network, as described herein.

[0587] O recurso de computação local 100 também pode incluir ou ser de outro modo associado a um compilador 130 e/ou um processador 140, tal como um compilador 130 configurado para compilar os dados gerados e/ou adquiridos e/ou dados associados aos mesmos, e um processador 140 configurado para processar os dados gerados e/ou adquiridos e/ou compilados e/ou controlar o sistema 1 e seus componentes, conforme descrito no presente documento, tal como para realizar processamento primário, secundário e/ou terciário. Por exemplo, qualquer compilador adequado pode ser empregado, entretanto, em certos casos, outras eficácias podem ser atingidas não apenas implantando-se uma configuração de acoplamento firme, tal como discutido acima, para a transferência eficaz e coerente de dados entre componentes de sistema, mas pode ser adicionalmente atingido implantando-se uma configuração de compilador de linguagem de computador no momento exato (JIT). Ademais, em certos casos, o processador 140 pode incluir um sistema de gerenciamento de fluxo de trabalho para controlar o funcionamento dos vários componentes de sistema em relação aos dados gerados, recebidos e/ou a serem processados através dos vários estágios das segmentações de plataforma.[0587] The local computing resource 100 may also include or be otherwise associated with a compiler 130 and/or a processor 140, such as a compiler 130 configured to compile the generated and/or acquired data and/or data associated therewith, and a processor 140 configured to process the generated and/or acquired and/or compiled data and/or control the system 1 and its components, as described herein, such as to perform primary, secondary, and/or tertiary processing. For example, any suitable compiler may be employed, however, in certain cases, further efficiencies may be achieved not only by implementing a tightly coupled configuration, as discussed above, for efficient and coherent transfer of data between system components, but may additionally be achieved by implementing a just-in-time (JIT) computer language compiler configuration. Furthermore, in certain instances, processor 140 may include a workflow management system to control the operation of the various system components with respect to data generated, received, and/or to be processed through the various stages of the platform segmentations.

[0588] Especificamente, conforme usado no presente documento, no momento exato (JIT) refere-se a um dispositivo, sistema e/ou método para converter formatos de arquivo adquiridos e/ou gerados um a partir do outro. Em uma estrutura de uso amplo, o sistema JIT revelado no presente documento pode incluir um compilador 130, ou outra arquitetura de computação, por exemplo, um programa de processamento, que pode ser implantada de uma maneira a converter vários códigos de uma forma em outra. Por exemplo, em uma implantação, um compilador JIT pode funcionar para converter código de bytes ou outro código de programa que contém instruções que precisam ser interpretadas, em instruções que podem ser enviadas diretamente a um processador associado 140 para execução imediata, tal como sem a necessidade para interpretação das instruções pela linguagem de máquina particular. Particularmente, após um programa de codificação, por exemplo, um programa Java, ter sido gravado, os demonstrativos de linguagem de fonte podem ser compilados por um compilador, por exemplo, compilador Java, em código de bytes, em vez de compilados em código que contém instruções que correspondem a qualquer dada linguagem de processamento da plataforma de hardware particular. Essa ação de compilação de código de bytes, portanto, é um código independente de plataforma que pode ser enviado a qualquer plataforma e executado nessa plataforma independentemente de seu processamento subjacente. Portanto, um compilador adequado pode ser um compilador que é configurado de modo a compilar o código de bytes em código executável específico para plataforma que pode, então, ser executado imediatamente. Nesse caso, o compilador JIT pode funcionar para converter logo um formato de arquivo em outro, tal como "imediatamente".[0588] Specifically, as used herein, just-in-time (JIT) refers to a device, system, and/or method for converting acquired and/or generated file formats from one another. In a broad usage framework, the JIT system disclosed herein may include a compiler 130, or other computing architecture, e.g., a processing program, that may be implemented in a manner to convert various codes from one form to another. For example, in one implementation, a JIT compiler may function to convert byte code or other program code that contains instructions that need to be interpreted, into instructions that can be sent directly to an associated processor 140 for immediate execution, such as without the need for interpretation of the instructions by the particular machine language. In particular, after a coding program, e.g. a Java program, has been written, the source language statements may be compiled by a compiler, e.g. a Java compiler, into byte code, rather than compiled into code containing instructions that correspond to any given processing language of the particular hardware platform. This byte code compilation action is therefore platform-independent code that can be shipped to any platform and executed on that platform independently of its underlying processing. Thus, a suitable compiler may be a compiler that is configured to compile the byte code into platform-specific executable code that can then be executed immediately. In this case, the JIT compiler may function to convert one file format to another as soon as possible, such as "on the fly".

[0589] Portanto, um compilador adequadamente configurado, conforme descrito no presente documento, tem a capacidade de superar várias deficiências na técnica. Especificamente, programas de compilação anteriores que foram gravados em uma linguagem específica tiveram que ser compilados novamente e/ou regravados em cada plataforma de computador específica na qual os mesmos foram gravados. No presente sistema de compilação, o compilador pode ser configurado de modo a ter que gravar e compilar um programa apenas uma vez, e, uma vez gravado em uma forma particular, pode ser convertido em uma ou mais outras formas quase imediatamente. Mais especificamente, o compilador 130 pode ser um JIT, ou pode estar em outro formato de compilador de tradução dinâmica similar, que tem a capacidade de gravar instruções em uma linguagem de plataforma desconhecida que não tem que ser compilada novamente e/ou regravada dependente da plataforma de computador específica na qual a mesma é implantada. Por exemplo, em um modelo de uso particular, o compilador pode ser configurado para interpretar código de bytes compilados e/ou outras instruções codificadas, em instruções que são compreensíveis por um dado processador particular para a conversão de um formato de arquivo em outro, independentemente da plataforma de computação. Principalmente, o sistema JIT no presente documento tem a capacidade para receber um arquivo genético, tal como representando um código genético, por exemplo, em que o arquivo é um arquivo BCL ou FASTQ, por exemplo, gerado a partir de um sequenciador genético, e convertendo rapidamente o mesmo em outra forma, tal como em um arquivo SAM, BAM e/ou CRAM, tal como com o uso dos métodos revelados no presente documento.[0589] Therefore, a properly configured compiler as described herein has the ability to overcome several deficiencies in the art. Specifically, previously compiled programs that were written in a specific language had to be recompiled and/or rewritten on each specific computer platform on which they were written. In the present compilation system, the compiler may be configured so that it only has to write and compile a program once, and once written in a particular form, it can be converted to one or more other forms almost immediately. More specifically, the compiler 130 may be a JIT, or may be in another similar dynamic translation compiler format, that has the ability to write instructions in a platform-unknown language that do not have to be recompiled and/or rewritten dependent on the specific computer platform on which it is deployed. For example, in a particular usage model, the compiler may be configured to interpret compiled byte code and/or other encoded instructions into instructions that are understandable by a given particular processor for converting one file format to another, regardless of the computing platform. In particular, the JIT system herein has the capability of receiving a genetic file, such as representing genetic code, for example, where the file is a BCL or FASTQ file, for example, generated from a genetic sequencer, and rapidly converting the same to another form, such as a SAM, BAM, and/or CRAM file, such as using the methods disclosed herein.

[0590] Particularmente, em vários casos, o sistema revelado no presente documento pode incluir um primeiro e/ou um segundo compilador 130a e 130b, tal como uma máquina de compilação virtual, que manipula uma ou uma pluralidade de conversões de instrução de código de bytes em um momento. Por exemplo, o uso de um compilador no momento exato do tipo Java, ou outro segundo compilador adequadamente configurado, dentro da presente plataforma de sistema, permitirá a compilação das instruções em código de bytes que pode, então, ser convertido no código de sistema particular, por exemplo, como se programa tenha sido inicialmente compilado nessa plataforma. Consequentemente, uma vez que o código foi compilado e/ou (compilado novamente, tal como pelo compilador (ou compiladores) JIT 130), o mesmo funcionará rapidamente no processador de computador 140. Portanto, em várias modalidades, a compilação no momento exato (JIT), ou outra compilação de tradução dinâmica, pode ser configurada de modo a ser realizada durante a execução de um determinado programa, por exemplo, no tempo de execução, em vez de antes da execução. Em tal caso, isso pode incluir a etapa (ou etapas) da tradução para código de máquina ou tradução para outro formato, que pode, então, ser executada diretamente, permitindo, assim, um ou mais dentre interpretação e/ou compilação antes do tempo (AOT).[0590] Particularly, in various instances, the system disclosed herein may include a first and/or a second compiler 130a and 130b, such as a virtual compilation machine, that handles one or a plurality of byte code instruction conversions at a time. For example, use of a Java-type just-in-time compiler, or other suitably configured second compiler, within the present system platform will allow for the compilation of instructions into byte code that can then be converted into the particular system code, e.g., as if the program had been initially compiled on that platform. Accordingly, once the code has been compiled and/or (recompiled, such as by the JIT compiler(s) 130), it will run quickly on the computer processor 140. Therefore, in various embodiments, just-in-time (JIT) compilation, or other dynamic translation compilation, may be configured to be performed during the execution of a given program, e.g., at runtime, rather than prior to execution. In such a case, this may include the step (or steps) of translation to machine code or translation to another format, which can then be performed directly, thus allowing one or more of interpretation and/or ahead-of-time (AOT) compilation.

[0591] Mais particularmente, conforme implantado dentro do presente sistema, um típico fluxo de dados de sequenciamento de genoma produz dados em um ou mais formatos de arquivo, derivado de uma ou mais plataformas de computação, tal como em um formato de arquivo BCL, FASTQ, SAM, BAM, CRAM e/ou VCF ou seus equivalentes. Por exemplo, um típico sequenciador de DNA 110, por exemplo, um NGS, produz sinais brutos representando bases chamadas que são designadas no presente documento como leituras, tal como em um arquivo BCL e/ou FASTQ, que podem ser opcional e adicionalmente processados, por exemplo, processamento de imagens intensificado, e/ou compactados 150. Igualmente, as leituras dos arquivos BCL/FASTQ gerados podem, então, ser adicionalmente processadas dentro do sistema, conforme descrito no presente documento, de modo a produzir dados de mapeamento e/ou alinhamento, tais dados produzidos, por exemplo, das leituras mapeadas e alinhas, podem estar em um formato de arquivo SAM ou BAM ou, alternativamente, um formato de arquivo CRAM. Ademais, o arquivo SAM ou BAM pode, então, ser processado, tal como através de um procedimento de chamada de variante, de modo a produzir um arquivo de chamada de variante, tal como um arquivo VCF ou um arquivo gVCF. Consequentemente, todos esses arquivos BCL, FASTQ, SAM, BAM, CRAM e/ou VCF produzidos, uma vez produzidos, são arquivos (extremamente) grandes que precisam, todos, ser armazenados, tal como na arquitetura de memória de sistema local 200 ou remotamente 400. O armazenamento de qualquer um desses arquivos é dispendioso. O armazenamento de todos esses formatos de arquivo é extremamente dispendioso.[0591] More particularly, as implemented within the present system, a typical genome sequencing data stream produces data in one or more file formats, derived from one or more computing platforms, such as in a BCL, FASTQ, SAM, BAM, CRAM, and/or VCF file format or their equivalents. For example, a typical DNA sequencer 110, e.g., an NGS, produces raw signals representing called bases that are designated herein as reads, such as in a BCL and/or FASTQ file, which may optionally be further processed, e.g., enhanced image processing, and/or compressed 150. Likewise, the reads from the generated BCL/FASTQ files may then be further processed within the system, as described herein, to produce mapping and/or alignment data, such data produced, e.g., from the mapped and aligned reads, may be in a SAM or BAM file format or, alternatively, a CRAM file format. Furthermore, the SAM or BAM file may then be processed, such as through a variant calling procedure, to produce a variant calling file, such as a VCF file or a gVCF file. Consequently, all of these produced BCL, FASTQ, SAM, BAM, CRAM, and/or VCF files, once produced, are (extremely) large files that all need to be stored, such as in the local system memory architecture 200 or remotely 400. Storing any of these files is expensive. Storing all of these file formats is extremely expensive.

[0592] Conforme indicado, no momento exato (JIT) ou outra análise de compilação de tradução dinâmica ou compilação dupla pode ser configurada e implantada no presente documento de modo a reduzir tais altos custos de armazenamento. Por exemplo, um esquema de análise JIT pode ser implantado no presente documento de modo a armazenar dados em apenas um formato (por exemplo, um formato de arquivo FASTQ ou BAM, etc. compactado), ao mesmo tempo que fornece acesso a um ou mais formatos de arquivo (por exemplo, BCL, FASTQ, SAM, BAM, CRAM e/ou VCF, etc.). Esse processo de conversão de arquivo rápido pode ser efetuado processando-se rapidamente os dados genômicos utilizando as respectivas plataformas de aceleração de hardware e/ou quânticas reveladas no presente documento, por exemplo, tal como para mapeamento, alinhamento, classificação e/ou chamada de variante (ou funções de componente dos mesmos, tal como desduplicação, HMM e Smith-Waterman, compactação e descompactação e similares), em mecanismos de hardware em um circuito integrado, tal como um FPGA, ou por um processador quântico. Portanto, implantando-se JIT outra análise similar juntamente com tal aceleração, os dados genômicos podem ser processados de modo a gerar formatos de arquivo desejados imediatamente, a velocidades comparáveis ao acesso de arquivo normal. Assim, economias de armazenamento consideráveis podem ser realizadas pelo processamento do tipo JIT com pouca ou nenhuma perda de velocidade de acesso.[0592] As indicated, just-in-time (JIT) or other dynamic translation compilation or dual compilation analysis may be configured and implemented herein so as to reduce such high storage costs. For example, a JIT analysis scheme may be implemented herein so as to store data in only one format (e.g., a compressed FASTQ or BAM file format, etc.), while providing access to one or more file formats (e.g., BCL, FASTQ, SAM, BAM, CRAM, and/or VCF, etc.). Such a fast file conversion process can be accomplished by rapidly processing the genomic data using the respective hardware and/or quantum acceleration platforms disclosed herein, e.g., such as for mapping, alignment, classification, and/or variant calling (or component functions thereof, such as deduplication, HMM and Smith-Waterman, compression and decompression, and the like), in hardware engines on an integrated circuit, such as an FPGA, or by a quantum processor. Therefore, by implementing JIT or other similar analysis together with such acceleration, the genomic data can be processed to generate desired file formats on the fly, at speeds comparable to normal file access. Thus, considerable storage savings can be realized by JIT-type processing with little or no loss of access speed.

[0593] Particularmente, duas opções gerais são úteis para o armazenamento subjacente dos dados genômicos produzidos no presente documento de modo a serem acessíveis para processamento do tipo JIT, as mesmas incluem o armazenamento de leituras desalinhadas (por exemplo, que podem incluir FASTQ compactado, ou arquivos SAM, BAM ou CRAM compactados desalinhados), e o armazenamento de leituras alinhadas (por exemplo, que podem incluir arquivos BAM ou CRAM compactados). Entretanto, já que o processamento acelerado revelado no presente documento permite que qualquer um dos formatos de arquivo referidos a seja rapidamente derivado, por exemplo, imediatamente, o formato de arquivo subjacente para armazenamento pode ser selecionado de modo a alcançar o menor tamanho de arquivo compactado, diminuindo, assim, a despesa do armazenamento. Portanto, por causa do tamanho de arquivo comparativamente menor para dados de leitura não processados, por exemplo, brutos desalinhadas, há uma vantagem de armazenar leituras desalinhadas de modo que os campos de dados sejam minimizados. Igualmente, há uma vantagem de armazenar os dados processados e compactados, tal como em um formato de arquivo CRAM.[0593] In particular, two general options are useful for the underlying storage of the genomic data produced herein so as to be accessible for JIT-type processing, these include the storage of unaligned reads (e.g., which may include compressed FASTQ, or unaligned compressed SAM, BAM, or CRAM files), and the storage of aligned reads (e.g., which may include compressed BAM or CRAM files). However, since the accelerated processing disclosed herein allows any of the file formats referred to to be rapidly derived, e.g., on the fly, the underlying file format for storage may be selected so as to achieve the smallest compressed file size, thereby decreasing the storage overhead. Therefore, because of the comparatively smaller file size for unprocessed, e.g., unaligned raw read data, there is an advantage to storing unaligned reads so that data fields are minimized. Likewise, there is an advantage of storing the processed and compressed data, such as in a CRAM file format.

[0594] Mais particularmente, em vista das rápidas velocidades de processamento alcançáveis pelos dispositivos, sistemas e métodos de seu uso revelados no presente documento, em muitos casos, pode não haver necessidade de armazenar informações mapeadas e/ou de alinhamento para cada e toda leitura, devido ao fato de que essas informações podem ser rapidamente derivadas mediante necessidade, tal como imediatamente. Ademais, embora um formato de arquivo FASTQ compactado (por exemplo, FASTQ.gz) seja comumente usado para armazenamento de dados de sequência genética, tais dados de leitura desalinhados podem ser armazenados em formatos compactados mais avançados também, tal como após mapeamento e/ou alinhamento em arquivos SAM, BAM ou CRAM, o que pode reduzir adicionalmente o tamanho do arquivo, tal como pelo uso de representação binária compacta e/ou mais métodos de compactação alvejada. Portanto, esses formatos de arquivo podem ser compactados antes do armazenamento, ser descompactados após o armazenamento e processados rapidamente, tal como imediatamente, de modo a converter um formato de arquivo a partir de outro.[0594] More particularly, in view of the rapid processing speeds achievable by the devices, systems, and methods of their use disclosed herein, in many cases there may be no need to store mapping and/or alignment information for each and every read, because such information can be rapidly derived upon need, such as immediately. Furthermore, although a compressed FASTQ file format (e.g., FASTQ.gz) is commonly used for storage of genetic sequence data, such unaligned read data may be stored in more advanced compressed formats as well, such as after mapping and/or alignment in SAM, BAM, or CRAM files, which may further reduce file size, such as by the use of compact binary representation and/or more targeted compression methods. Therefore, such file formats may be compressed prior to storage, decompressed after storage, and processed rapidly, such as immediately, to convert one file format from another.

[0595] Uma vantagem de armazenar leituras alinhadas é que muito ou todo o conteúdo de sequência de cada leitura pode ser omitido. Especificamente, a eficiência do sistema pode ser aumentada e espaço de armazenamento economizado por apenas armazenar as diferenças entre as sequências de leitura e o genoma de referência selecionado, tal como em posições de alinhamento de variante indicadas da leitura. Mais especificamente, já que as diferenças da referência são usualmente esparsas, a posição alinhada e a lista de diferenças podem ser frequentemente mais compactamente armazenadas do que a sequência de leitura original. Portanto, em vários casos, o armazenamento de um formato de leitura alinhado, por exemplo, ao armazenar dados relacionados às diferenças das leituras alinhadas, pode ser preferencial ao armazenamento de dados de leitura desalinhados. Em tal caso, se um formato de leitura e/ou chamada de variante alinhado é usado como o formato de armazenamento subjacente, tal como em um procedimento JIT, outros formatos, tal como um SAM, BAM e/ou CRAM, formatos de arquivo compactados, podem também ser usados.[0595] One advantage of storing aligned reads is that much or all of the sequence content of each read can be omitted. Specifically, system efficiency can be increased and storage space saved by only storing the differences between the read sequences and the selected reference genome, such as at indicated variant alignment positions of the read. More specifically, since differences from the reference are usually sparse, the aligned position and list of differences can often be more compactly stored than the original read sequence. Therefore, in many cases, storing an aligned read format, e.g., when storing data related to the differences of aligned reads, may be preferable to storing unaligned read data. In such a case, if an aligned read and/or variant call format is used as the underlying storage format, such as in a JIT procedure, other formats, such as a SAM, BAM, and/or CRAM compressed file formats, may also be used.

[0596] Juntamente com os dados de arquivo de leitura alinhados e/ou desalinhados a serem armazenados, uma ampla variedade de outros dados, tais como metadados derivados das várias computações determinadas no presente documento, pode também ser armazenada. Tais dados computados podem incluir dados mapeados, de alinhamento e/ou processamento subsequente lidos, tais como pontuações de alinhamento, confiança de mapeamento, distância de edição da referência, etc. Em certos casos, tais metadados e/ou outras informações extras não precisam ser retidos no armazenamento subjacente para análise JIT, tal como naqueles casos em que os mesmos precisam ser reproduzidos imediatamente, tal como pelo processamento de dados acelerado descrito no presente documento.[0596] Along with the aligned and/or unaligned read file data to be stored, a wide variety of other data, such as metadata derived from the various computations set forth herein, may also be stored. Such computed data may include mapped, alignment, and/or subsequent read processing data, such as alignment scores, mapping confidence, edit distance from reference, etc. In certain cases, such metadata and/or other extra information need not be retained in the underlying storage for JIT analysis, such as in those cases where it needs to be reproduced immediately, such as by the accelerated data processing described herein.

[0597] Em relação aos metadados, esses dados podem ser um arquivo pequeno que instrui o sistema quanto a como ir para frente e para trás de um formato de arquivo em conversão para outro formato de arquivo. Portanto, o arquivo de metadados permite que o sistema crie uma versão compatível com bit de qualquer outro tipo de arquivo. Por exemplo, avançando a partir de um arquivo de dados de origem, o sistema precisa apenas acessar e implantar as instruções dos metadados. Juntamente com a rápida conversão de formato de arquivo, JIT também habilita a rápida compactação e/ou descompactação e/ou armazenamento, tal como em um cache de memória dropbox de genômica.[0597] Regarding metadata, this data may be a small file that instructs the system how to go back and forth from one file format in conversion to another file format. Thus, the metadata file allows the system to create a bit-compatible version of any other file type. For example, moving forward from a source data file, the system only needs to access and implement the metadata instructions. Along with fast file format conversion, JIT also enables fast compression and/or decompression and/or storage, such as in a genomics dropbox memory cache.

[0598] Conforme discutido em maiores detalhes abaixo, uma vez que os dados de sequência são gerados 110, os mesmos podem ser armazenados localmente 200 e/ou podem ser tornados acessíveis para armazenamento remotamente, tal como em um cache de memória do tipo dropbox acessível na nuvem 400. Por exemplo, uma vez no dropbox genômico, os dados podem aparecer como acessíveis na nuvem 50 e podem, então, ser adicionalmente processados, por exemplo, de modo substancialmente imediato. Isso é particularmente útil quando há uma pluralidade de sistemas de mapeamento/alinhamento/classificação/chamada de variante 100/300, tal como com um em cada lado da interface de nuvem 50 facilitando a transferência por upload e processamento automáticos dos dados, que podem ser adicionalmente processados, tal como com o uso da tecnologia JIT descrito no presente documento.[0598] As discussed in greater detail below, once sequence data is generated 110, it may be stored locally 200 and/or may be made accessible for storage remotely, such as in a cloud-accessible dropbox-type memory cache 400. For example, once in the genomic dropbox, the data may appear as accessible in the cloud 50 and may then be further processed, e.g., substantially immediately. This is particularly useful when there are a plurality of mapping/alignment/classification/variant calling systems 100/300, such as with one on each side of the cloud interface 50 facilitating automatic upload and processing of the data, which may be further processed, such as using the JIT technology described herein.

[0599] Por exemplo, um formato de armazenamento subjacente para processamento e/ou compilação JIT pode conter apenas campos de dados mínimos, tal como nome de leitura, pontuações de qualidade de base, posição de alinhamento e/ou orientação na referência, e uma lista de diferenças da referência, tal como em que cada campo pode ser compactado de uma maneira ideal para seu tipo de dados. Vários outros metadados podem ser incluídos e/ou associados de outro modo com o arquivo de armazenamento. Em tal caso, o armazenamento subjacente para análise JIT pode estar em um sistema de arquivo local 200, tal como em unidades de disco rígido e unidades de estado sólido, ou um recurso de armazenamento de rede, tal como um NAS ou objeto ou sistema de armazenamento do tipo Dropbox 400. Particularmente, quando vários formatos de arquivo, tais como BCL, FASTQ, SAM, BAM, CRAM, VCF, etc., foram produzidos para um conjunto de dados genômicos, que pode ser submetido a processamento e/ou armazenamento JIT, o JIT ou outro sistema de compilação e/ou análise similar pode ser configurado de modo a converter os dados em um único formato de armazenamento subjacente para armazenamento. Dados adicionais, tais como metadados e/ou outras informações (que podem ser pequenas) necessárias para reproduzir todos os outros formatos desejados por processamento de dados genômicos acelerado podem também estar associados ao campo e ser armazenados. Tais informações adicionais podem incluir um ou mais dentre: uma lista de formatos de arquivo a serem reproduzidos, comandos de processamento de dados para reproduzir cada formato, ID exclusiva (por exemplo, URL ou hash MD5/SHA) de genoma de referência, várias definições de parâmetro, tal como para mapeamento, alinhamento, classificação, chamada de variante e/ou qualquer outro processamento, conforme descrito no presente documento, sementes de randomização para etapas de processamento, por exemplo, utilizando pseudorrandomização, para reproduzir deterministicamente os mesmos resultados, Interface de usuário e similares.[0599] For example, an underlying storage format for JIT processing and/or compilation may contain only minimal data fields, such as read name, base quality scores, alignment position and/or orientation in the reference, and a list of differences from the reference, such as where each field can be compressed in a manner optimal for its data type. Various other metadata may be included and/or otherwise associated with the storage file. In such a case, the underlying storage for JIT analysis may be on a local file system 200, such as on hard disk drives and solid state drives, or a network storage resource, such as a NAS or object or Dropbox-type storage system 400. Particularly, when multiple file formats, such as BCL, FASTQ, SAM, BAM, CRAM, VCF, etc., have been produced for a genomic data set, which may be subjected to JIT processing and/or storage, the JIT or other similar compilation and/or analysis system may be configured to convert the data into a single underlying storage format for storage. Additional data, such as metadata and/or other information (which may be small) necessary to reproduce all other formats desired by accelerated genomic data processing may also be associated with the field and stored. Such additional information may include one or more of: a list of file formats to be reproduced, data processing commands to reproduce each format, unique ID (e.g., URL or MD5/SHA hash) of reference genome, various parameter settings, such as for mapping, alignment, classification, variant calling, and/or any other processing as described herein, randomization seeds for processing steps, e.g., using pseudorandomization, to deterministically reproduce the same results, User interface, and the like.

[0600] Em vários casos, os dados a serem armazenados e/ou recuperados em um JIT ou processamento de tradução dinâmica e/ou sistema de análise similar podem ser apresentados ao usuário ou outras aplicações, em uma variedade de maneiras. Por exemplo, uma opção é ter o armazenamento de análise JIT em um formato de arquivo de "objeto JIT” padrão ou customizado, tal como para armazenamento e/ou recuperação como um SAM, BAM, CRAM ou outro formato de arquivo customizado, e fornecer ferramentas de usuário para converter rapidamente o objeto JIT no formato desejado (por exemplo, em um armazenamento temporário local 200) com o uso do processamento acelerado revelado no presente documento. Outra opção é apresentar a aparência de múltiplos formatos de arquivo, tais como BCL, FASTQ, SAM, BAM, CRAM, VCF, etc. ao usuário, e aplicativos de usuário, de modo que o acesso de sistema de arquivo a vários formatos de arquivo utilize um procedimento JIT, assim, apenas um tipo de arquivo precisa ser salvo, e, a partir desse tipo de arquivo, todos os outros arquivos podem ser gerados imediatamente. Uma opção adicional é produzir ferramentas de usuário que aceitam de outro modo formatos de arquivo específicos (BCL, FASTQ, SAM, BAM, CRAM, VCF, etc.) que têm a capacidade de serem apresentados como um objeto JIT em vez disso e podem chamar automaticamente a análise JIT para obter os dados no formato de dados desejado, por exemplo, BCL, FASTQ, SAM, BAM, CRAM, VCF, etc. automaticamente quando chamado.[0600] In various cases, the data to be stored and/or retrieved in a JIT or similar dynamic translation processing and/or analysis system may be presented to the user or other applications in a variety of ways. For example, one option is to have the JIT analysis store a standard or custom "JIT object" file format, such as for storage and/or retrieval as a SAM, BAM, CRAM, or other custom file format, and provide user tools to quickly convert the JIT object to the desired format (e.g., in a local temporary store 200) using the accelerated processing disclosed herein. Another option is to present the appearance of multiple file formats, such as BCL, FASTQ, SAM, BAM, CRAM, VCF, etc., to the user and user applications, so that file system access to multiple file formats utilizes one JIT procedure, so that only one file type needs to be saved, and from that file type, all other files can be generated immediately. An additional option is to produce user tools that otherwise accept specific file formats (BCL, FASTQ, SAM, BAM, CRAM, VCF, etc.) that have the ability to be presented as a JIT object instead and can automatically call JIT analysis to obtain the data in the desired data format, e.g. BCL, FASTQ, SAM, BAM, CRAM, VCF, etc. automatically when called.

[0601] Consequentemente, os procedimentos JIT são úteis para fornecer acesso a múltiplos formatos de arquivo, por exemplo, BCL, FASTQ, SAM, BAM, CRAM, VCF e similares, a partir de um único formato de arquivo processando-se rapidamente o formato de arquivo compactado armazenado subjacente. Adicionalmente, JIT permanece útil mesmo se apenas um único formato de arquivo tiver que ser acessado, devido ao fato de que a compactação é ainda alcançada em relação ao armazenamento direto do formato acessado. Em tal caso, o formato de armazenamento de arquivo subjacente pode ser diferente do formato de arquivo acessado e/ou pode conter menos metadados e/ou pode ser compactado mais eficientemente do que o formato acessado. Ademais, em tal caso, conforme discutido acima, o arquivo é compactado antes do armazenamento e descompactado mediante recuperação, por exemplo, automaticamente.[0601] Accordingly, JIT procedures are useful for providing access to multiple file formats, e.g., BCL, FASTQ, SAM, BAM, CRAM, VCF, and the like, from a single file format by quickly processing the underlying stored compressed file format. Additionally, JIT remains useful even if only a single file format is to be accessed, due to the fact that compression is still achieved relative to direct storage of the accessed format. In such a case, the underlying file storage format may be different from the accessed file format and/or may contain less metadata and/or may be compressed more efficiently than the accessed format. Furthermore, in such a case, as discussed above, the file is compressed prior to storage and decompressed upon retrieval, e.g., automatically.

[0602] Em vários casos, os métodos de análise JIT, conforme fornecido no presente documento, podem também ser usados para transmissão de dados genômicos, através da internet ou outra rede, para minimizar o tempo de transmissão e diminuir a largura de banda de rede consumida. Particularmente, em uma aplicação de armazenamento, um único formato de arquivo subjacente compactado pode ser armazenado e/ou um ou mais formatos podem ser acessados por meio de descompactação e/ou processamento de dados genômicos acelerado. Similarmente, na aplicação de transmissão, apenas um único formato de arquivo subjacente compactado precisa ser transmitido, por exemplo, de um nó de rede de fonte para um nó de rede de destino, tal como em que o formato subjacente pode ser escolhido primariamente para o menor tamanho de arquivo compactado, e/ou em que todos os formatos de arquivo desejados podem ser gerados no nó de destino por ou para processamento de dados genômicos, tal como imediatamente. Dessa maneira, apenas um formato de arquivo de dados compactado precisa ser usado para armazenamento e/ou transferência, a partir de tal formato de arquivo, os outros vários formatos de arquivo podem ser derivados.[0602] In various instances, the JIT analysis methods as provided herein may also be used for transmission of genomic data, over the Internet or other network, to minimize transmission time and decrease consumed network bandwidth. In particular, in a storage application, a single compressed underlying file format may be stored and/or one or more formats may be accessed via decompression and/or accelerated genomic data processing. Similarly, in the transmission application, only a single compressed underlying file format need be transmitted, e.g., from a source network node to a destination network node, such as where the underlying format may be chosen primarily for the smallest compressed file size, and/or where all desired file formats may be generated at the destination node by or for processing genomic data, such as immediately. In this way, only one compressed data file format needs to be used for storage and/or transfer, from such a file format the other various file formats can be derived.

[0603] Consequentemente, em vista da Figura 40A, o processamento acelerado de dados genômicos de hardware e/ou quântico, conforme descrito no presente documento, pode ser utilizado no (ou pelo) nó de rede de fonte, para gerar e/ou compactar o formato subjacente para transmissão, e o nó de rede de destino, para descompactar e/ou gerar outros formatos de arquivo desejados por processamento de dados genômicos acelerado. No entanto, JIT ou outra análise de tradução dinâmica continua a ser útil na aplicação de transmissão mesmo se apenas um dentre o nó de fonte e o nó de destino utiliza processamento acelerado de dados genômicos de hardware e/ou quântico. Por exemplo, um servidor de dados que envia grandes quantidades de dados genômicos pode utilizar processamento acelerado de dados genômicos de hardware e/ou quântico de modo a gerar o formato subjacente compactado para transmissão para vários destinos. Em tais casos, cada destino pode usar processamento de dados genômicos de software mais lento para gerar outros formatos de dados desejados. Portanto, embora a vantagem de velocidade da análise JIT seja diminuída no nó de destino, o tempo de transmissão e a utilização de rede ainda são utilmente reduzidos, e o nó de fonte tem a capacidade para fornecer muitas transmissões eficientemente devido a seu aparelho de processamento acelerado de dados genômicos de hardware e/ou quântico correspondente.[0603] Accordingly, in view of Figure 40A, hardware and/or quantum accelerated genomic data processing as described herein may be utilized at (or by) the source network node to generate and/or compress the underlying format for transmission, and the destination network node to decompress and/or generate other desired file formats by accelerated genomic data processing. However, JIT or other dynamic translation analysis remains useful in the transmission application even if only one of the source node and the destination node utilizes hardware and/or quantum accelerated genomic data processing. For example, a data server sending large amounts of genomic data may utilize hardware and/or quantum accelerated genomic data processing to generate the compressed underlying format for transmission to multiple destinations. In such cases, each destination may use slower software genomic data processing to generate other desired data formats. Therefore, although the speed advantage of JIT analysis is diminished at the destination node, transmission time and network utilization are still usefully reduced, and the source node has the ability to provide many transmissions efficiently due to its corresponding hardware and/or quantum accelerated genomic data processing apparatus.

[0604] Ademais, em outro exemplo, um servidor de dados que recebe transmissões por upload de grandes quantidades de dados genômicos, por exemplo, de várias fontes, pode utilizar armazenamento e/ou processamento acelerado de dados genômicos de hardware e/ou quântico, ao mesmo tempo que os vários nós de fonte podem usar software mais lento executado em uma CPU/GPU para gerar o formato de arquivo subjacente compactado para transmissão. Alternativamente, o processamento acelerado de dados genômicos de hardware e/ou quântico pode ser utilizado por um ou mais nós de rede intermediários, tal como um servidor de gateway, entre os nós de fonte e destino, para transmitir e/ou receber dados genômicos in em um formato de arquivo subjacente compactado, de acordo com o JIT ou outro método de análise de tradução dinâmica, ganhando, assim, os benefícios de tempo de transmissão e utilização de rede reduzidos sem sobrecarregar os ditos nós de rede intermediários com processamento de software excessivo.[0604] Furthermore, in another example, a data server receiving uploaded transmissions of large amounts of genomic data, e.g., from multiple sources, may utilize hardware and/or quantum accelerated genomic data storage and/or processing, while the multiple source nodes may utilize slower software running on a CPU/GPU to generate the compressed underlying file format for transmission. Alternatively, hardware and/or quantum accelerated genomic data processing may be utilized by one or more intermediate network nodes, such as a gateway server, between the source and destination nodes to transmit and/or receive genomic data in a compressed underlying file format, in accordance with JIT or another dynamic translation analysis method, thereby gaining the benefits of reduced transmission time and network utilization without burdening said intermediate network nodes with excessive software processing.

[0605] Logo, conforme pode ser observado em relação à Figura 40A, em certos casos, o recurso de computação local 100 pode incluir um compilador 130, tal como um compilador JIT e pode incluir adicionalmente uma unidade de compressor 150 que é configurada para compactar dados, tais como dados gerados e/ou primários adquiridos e/ou processados secundários (ou dados terciários), tais dados podem ser compactados, tal como antes da transferência através de uma rede local 10 e/ou de nuvem 30 e/ou baseada em nuvem híbrida 50, tal como em um procedimento de análise JIT, e podem ser descompactados subsequentemente à transferência e/ou antes do uso.[0605] Thus, as can be seen with respect to Figure 40A, in certain instances, the local computing resource 100 may include a compiler 130, such as a JIT compiler, and may further include a compressor unit 150 that is configured to compress data, such as primary generated and/or acquired and/or processed secondary data (or tertiary data), such data may be compressed, such as prior to transfer over a local network 10 and/or cloud 30 and/or hybrid cloud-based network 50, such as in a JIT analysis procedure, and may be decompressed subsequent to transfer and/or prior to use.

[0606] Conforme descrito acima, em vários casos, o sistema pode incluir um primeiro circuito integrado e/ou quântico 100 tal como para realizar uma operação de mapeamento, alinhamento, classificação e/ou chamada de variante, de modo a gerar um ou mais dentre dados mapeados, alinhados, classificados, desduplicados e/ou submetidos à chamada de variante. Adicionalmente, o sistema pode incluir um circuito integrado e/ou quântico adicional 300, tal como para empregar os dados de resultados no desempenho de uma ou mais análises de segmentação de genômica e/ou bioinformática, tal como para processamento terciário. Por exemplo, os dados de resultado gerados pelo primeiro circuito integrado e/ou quântico 100 podem ser usados, por exemplo, pelo primeiro ou por um segundo circuitos integrados e/ou quânticos 300, no desempenho de um procedimento de processamento de segmentação de genômica e/ou bioinformática adicional. Especificamente, o processamento secundário de dados de genômica pode ser realizado por um primeiro processador acelerado de hardware e/ou quântico 100 de modo a produzir dados de resultados, e o processamento terciário pode ser realizado nesses dados de resultados, tal como em que o processamento adicional é realizado por uma CPU e/ou GPU e/ou QPU 300 que é acoplada de modo operacional ao primeiro circuito integrado. Em tal caso, o segundo circuito 300 pode ser configurado para realizar o processamento terciário dos dados de variação de genômica produzidos pelo primeiro circuito 100. Consequentemente, os dados de resultados derivados do primeiro servido integrado atuam como um mecanismo de análise acionando as etapas de processamento adicionais descritas no presente documento em referência ao processamento terciário, tal como pelo segundo circuito de processamento integrado e/ou quântico 300.[0606] As described above, in various instances, the system may include a first integrated and/or quantum circuit 100 such as for performing a mapping, alignment, classification, and/or variant calling operation to generate one or more of the mapped, aligned, classified, deduplicated, and/or variant called data. Additionally, the system may include an additional integrated and/or quantum circuit 300 such as for employing the result data in performing one or more genomic and/or bioinformatics segmentation analyses, such as for tertiary processing. For example, the result data generated by the first integrated and/or quantum circuit 100 may be used, for example, by the first or a second integrated and/or quantum circuit 300 in performing an additional genomic and/or bioinformatics segmentation processing procedure. Specifically, secondary processing of genomic data may be performed by a first hardware accelerated and/or quantum processor 100 to produce results data, and tertiary processing may be performed on such results data, such as wherein the additional processing is performed by a CPU and/or GPU and/or QPU 300 that is operatively coupled to the first integrated circuit. In such a case, the second circuit 300 may be configured to perform tertiary processing of the genomic variation data produced by the first circuit 100. Accordingly, the results data derived from the first integrated server acts as an analysis engine driving the additional processing steps described herein with reference to tertiary processing, such as by the second integrated and/or quantum processing circuit 300.

[0607] Entretanto, os dados gerados em cada uma dessas etapas de processo primário e/ou secundário e/ou terciário podem ser imensos, exigindo custos de recurso e/ou memória muito altos, tal como para o armazenamento, ou local 200 ou remotamente 400. Por exemplo, em uma primeira etapa de processamento primário, os dados de sequência de ácidos nucleicos gerados 110, tal como em um formato de arquivo BCL e/ou FASTQ, podem ser recebidos 120, tal como de um NGS 110. Independentemente do formato de arquivo desses dados de sequência, os dados podem ser empregados em um protocolo de processamento secundário conforme descrito no presente documento. A capacidade para receber e processar dados de sequência primários diretamente de um NGS, tal como em um formato de arquivo BCL e/ou FASTQ, é bastante útil. Particularmente, em vez de converter o arquivo de dados de sequência do NGS, por exemplo, BCL, em um arquivo FASTQ, o arquivo pode ser diretamente recebido do NGS, por exemplo, como um arquivo BCL, e pode ser processado, tal como sendo recebido e convertido pelo sistema JIT, por exemplo, imediatamente, em um arquivo FASTQ que pode, então, ser processado, conforme descrito no presente documento, tal como para produzir dados de resultados mapeados, alinhados, classificados, desduplicados e/ou submetidos à chamada de variante que podem, então, ser compactados, tal como em um arquivo SAM, BAM, e/ou CRAM e/ou podem ser submetidos a processamento adicional, tal como por uma ou mais das segmentações de processamento terciário de genômica reveladas.[0607] However, the data generated in each of these primary and/or secondary and/or tertiary processing steps may be immense, requiring very high resource and/or memory costs, such as for storage, either locally 200 or remotely 400. For example, in a first primary processing step, generated nucleic acid sequence data 110, such as in a BCL and/or FASTQ file format, may be received 120, such as from an NGS 110. Regardless of the file format of this sequence data, the data may be employed in a secondary processing protocol as described herein. The ability to receive and process primary sequence data directly from an NGS, such as in a BCL and/or FASTQ file format, is quite useful. In particular, instead of converting the NGS sequence data file, e.g., BCL, to a FASTQ file, the file may be directly received from NGS, e.g., as a BCL file, and may be processed, such as by being received and converted by the JIT system, e.g., immediately, to a FASTQ file which may then be processed, as described herein, such as to produce mapped, aligned, classified, deduplicated, and/or variant-called result data which may then be compressed, such as in a SAM, BAM, and/or CRAM file, and/or may be subjected to further processing, such as by one or more of the disclosed genomic tertiary processing segments.

[0608] Consequentemente, tais dados uma vez produzidos precisam ser armazenados de alguma maneira. Entretanto, tal armazenamento não é apenas intensivo em recurso, é também dispendioso. Especificamente, em um protocolo de genômica típico, os dados sequenciados, uma vez gerados, são armazenados como um grande arquivo FASTQ. Então, uma vez processado, tal como sendo submetido a um protocolo de mapeamento e/ou alinhamento, um arquivo BAM é criado, tal arquivo é também tipicamente armazenado, aumentando a despesa de armazenamento de dados genômicos, tal como tendo que armazenar tanto um arquivo FASTQ quanto um BAM. Ademais, uma vez que o arquivo BAM é processado, tal como sendo submetido ao protocolo de chamada de variante, um arquivo VCF é produzido, tal VCF também precisa tipicamente ser armazenado. Em tal caso, a fim de fornecer adequadamente e fazer uso dos dados genéticos gerados, todos os três arquivos FASTQ, BAM e VCF podem precisar ser armazenados, ou local 200 ou remotamente 400. Adicionalmente, o arquivo BCL original pode também ser armazenado. Tal armazenamento é ineficiente assim como sendo dispendioso e intensivo em recurso de memória.[0608] Consequently, such data once produced needs to be stored in some manner. However, such storage is not only resource intensive, it is also expensive. Specifically, in a typical genomics protocol, the sequenced data, once generated, is stored as a large FASTQ file. Then, once processed, such as by being subjected to a mapping and/or alignment protocol, a BAM file is created, such a file is also typically stored, increasing the expense of genomic data storage, such as having to store both a FASTQ and a BAM file. Furthermore, once the BAM file is processed, such as by being subjected to the variant calling protocol, a VCF file is produced, such a VCF also typically needs to be stored. In such a case, in order to adequately provide and make use of the generated genetic data, all three of the FASTQ, BAM and VCF files may need to be stored, either locally 200 or remotely 400. Additionally, the original BCL file may also be stored. Such storage is inefficient as well as being expensive and memory resource intensive.

[0609] Entretanto, a potência computacional das arquiteturas de processamento de hardware e/ou quânticas implantadas no presente documento, juntamente com a compilação, compactação e armazenamento JIT, atenua significativamente essas ineficiências, custos de recurso e despesas. Por exemplo, em vista dos métodos implantados e as velocidades de processamento alcançadas pelos presentes circuitos integrados acelerados, tal como para a conversão de um arquivo BCL em um arquivo FASTQ, e, então, a conversão de um arquivo FASTQ em um arquivo SAM ou BAM, e, então, a conversão de um arquivo BAM em um arquivo CRAM e/ou VCF, e de volta, o presente sistema reduz significativamente o número de recursos de computação e/ou os tamanhos de arquivo necessários para o processamento e/ou armazenamento eficientes de tais dados. Os benefícios desses sistemas e métodos são adicionalmente aumentados pelo fato de que apenas um formato de arquivo, por exemplo, um BCL, FASTQ, SAM, BAM, CRAM e/ou VCF, precisa ser armazenado, a partir do qual todos os outros formatos de arquivo podem ser derivados e processados. Particularmente, apenas um formato de arquivo precisa ser salvo e, a partir de tal arquivo, qualquer um dos outros formatos de arquivo pode ser gerado rapidamente, por exemplo, imediatamente, em conformidade com os métodos revelados no presente documento, tal como em um formato de compilação no momento exato, ou JIT.[0609] However, the computational power of the hardware and/or quantum processing architectures deployed herein, coupled with JIT compilation, compression, and storage, significantly mitigates these inefficiencies, resource costs, and expenses. For example, in view of the methods deployed and the processing speeds achieved by the present accelerated integrated circuits, such as for converting a BCL file to a FASTQ file, and then converting a FASTQ file to a SAM or BAM file, and then converting a BAM file to a CRAM and/or VCF file, and back again, the present system significantly reduces the number of computing resources and/or file sizes required for efficient processing and/or storage of such data. The benefits of these systems and methods are further enhanced by the fact that only one file format, e.g., a BCL, FASTQ, SAM, BAM, CRAM, and/or VCF, needs to be stored, from which all other file formats can be derived and processed. In particular, only one file format needs to be saved, and from such a file, any of the other file formats can be generated quickly, e.g., immediately, in accordance with the methods disclosed herein, such as in a just-in-time, or JIT, compilation format.

[0610] Por exemplo, em conformidade com os métodos anteriores típicos, uma grande quantidade de recursos de computação, por exemplo, fazendas de servidores e grandes bancos de memória, é necessário o processamento e armazenamento de arquivos FASTQ sendo gerados por um sequenciador NGS. Particularmente, em um caso típico, uma vez que o NGS produz o grande arquivo FASTQ, a fazenda de servidores seria, então, empregada para receber e converter o arquivo FASTQ em um arquivo BAM e/ou CRAM, tal processamento pode levar até um dia ou mais. Entretanto, uma vez produzido, o próprio arquivo BAM deve, então, ser armazenado, exigindo tempo e recursos adicionais. Igualmente, o arquivo BAM ou CRAM pode ser processado de maneira a gerar um VCF, o que pode também levar até outro dia ou mais, e tal arquivo precisará também ser armazenado, incorrendo, assim, em custos e despesas adicionais. Mais particularmente, em um caso típico, o arquivo FASTQ para um genoma humano consume cerca de 90 GB de armazenamento, por arquivo. Igualmente, um arquivo BAM de genoma humano típico pode consumir cerca de 160 GB. O arquivo VCF pode também precisar ser armazenado, embora tais arquivos sejam bastante menores do que os arquivos FASTQ e/ou BAM. Os arquivos SAM e CRAM podem também ser gerados através dos procedimentos de processamento secundário, e os mesmos também podem precisar ser armazenados.[0610] For example, in accordance with the typical prior methods, a large amount of computing resources, e.g., server farms and large memory banks, are required for processing and storing FASTQ files being generated by an NGS sequencer. In particular, in a typical case, once the NGS produces the large FASTQ file, the server farm would then be employed to receive and convert the FASTQ file into a BAM and/or CRAM file, such processing may take up to a day or more. However, once produced, the BAM file itself must then be stored, requiring additional time and resources. Likewise, the BAM or CRAM file may be processed to generate a VCF, which may also take up to another day or more, and such a file will also need to be stored, thereby incurring additional costs and expenses. More particularly, in a typical case, the FASTQ file for a human genome consumes about 90 GB of storage per file. Likewise, a typical human genome BAM file may consume about 160 GB. VCF files may also need to be stored, although such files are much smaller than FASTQ and/or BAM files. SAM and CRAM files may also be generated through secondary processing procedures, and these may also need to be stored.

[0611] Antes das tecnologias fornecidas no presente documento, foi computacionalmente intensivo ir de uma etapa para outra, por exemplo, de um formato de arquivo para outro, e, portanto, todos os dados para esses formatos de arquivo teriam tipicamente que ser armazenados. Isso é, em parte, devido ao fato de que, se um usuário quiser voltar e regenerar um ou mais dos arquivos, seria exigida uma grande quantidade de recursos de computação e tempo para refazer os processos envolvidos para regenerar os vários arquivos incorrendo, assim, em uma alta despesa monetária. Ademais, quando esses arquivos são compactados antes do armazenamento, tal compactação pode levar de cerca de 2 a cerca de 5 a cerca de 10 ou mais horas, com aproximadamente a mesma quantidade de tempo exigida para descompactação, antes da reutilização. Por causa dessas altas despesas, usuários típicos não compactariam tais arquivos antes do armazenamento e armazenariam também tipicamente todos os dois, três ou mais formatos de arquivo, por exemplo, BCL, FASTQ, BAM, VCF, incorrendo em custos aumentados através do tempo aumentado.[0611] Prior to the technologies provided herein, it was computationally intensive to go from one step to another, e.g., from one file format to another, and therefore all of the data for those file formats would typically have to be stored. This is in part due to the fact that if a user wanted to go back and regenerate one or more of the files, it would require a large amount of computing resources and time to redo the processes involved in regenerating the various files, thus incurring a high monetary expense. Furthermore, when such files are compressed prior to storage, such compression can take from about 2 to about 5 to about 10 or more hours, with about the same amount of time required for decompression prior to reuse. Because of this high expense, typical users would not compress such files prior to storage and would also typically store all two, three or more file formats, e.g., BCL, FASTQ, BAM, VCF, incurring increased costs through the increased time.

[0612] Consequentemente, os protocolos JIT empregados no presente documento fazem uso das velocidades de processamento aceleradas alcançadas pelos presentes aceleradores de hardware e/ou quânticos, de modo a alcançar eficiência aumentada, em tempo e custos reduzidos quanto para processamento quanto para armazenamento. Em vez de armazenar 2, 3 ou mais cópias dos mesmos dados gerais em diferentes formatos de arquivo, apenas um formato de arquivo precisa ser armazenado, e imediatamente, qualquer um dos outros tipos de arquivo pode ser gerado, tal como usando as plataformas de processamento acelerado discutidas no presente documento. Particularmente, a partir do armazenamento de um arquivo FASTQ, os presentes dispositivos e sistemas tornam fácil voltar para um arquivo BCL, ou avançar para um arquivo BAM e, então, adicionalmente a um VCF, tal como em menos de 30 minutos, tal como dentro de 20 minutos, ou cerca de 15 ou 10 minutos ou menos.[0612] Accordingly, the JIT protocols employed herein make use of the accelerated processing speeds achieved by the present hardware and/or quantum accelerators in order to achieve increased efficiency, reduced time and costs for both processing and storage. Instead of storing 2, 3 or more copies of the same general data in different file formats, only one file format needs to be stored, and immediately, any of the other file types can be generated, such as using the accelerated processing platforms discussed herein. In particular, from the storage of a FASTQ file, the present devices and systems make it easy to go back to a BCL file, or forward to a BAM file and then further to a VCF, such as in less than 30 minutes, such as within 20 minutes, or about 15 or 10 minutes or less.

[0613] Portanto, com o uso das segmentações e da velocidade do processamento oferecido pelos mecanismos de processamento com fio/quântico revelados no presente documento, apenas um único formato de arquivo precisa ser armazenado, ao mesmo tempo que os outros formatos de arquivo podem ser fácil e rapidamente gerados a partir do mesmo. Então, em vez de precisar armazenar todos os três formatos de arquivo, um único formato de arquivo precisa ser armazenado a partir do qual qualquer outro formato de arquivo pode ser regenerado, tal como imediatamente, no momento exato para as etapas de processamento adicionais desejadas pelo usuário. Consequentemente, o sistema pode ser configurado para facilitar o uso de modo que, se um usuário simplesmente interagir com uma interface gráfica de usuário, tal como apresentado em um visor associado do dispositivo, por exemplo, o usuário clica no botão FASTQ, BAM, VCF, etc. apresentado na GUI, o formato de arquivo desejado pode ser apresentado, ao mesmo tempo que, no plano de fundo, um ou mais dos mecanismos de processamento do sistema podem estar realizando as etapas de processamento aceleradas necessárias para regenerar o arquivo solicitação no formato de arquivo solicitado do arquivo armazenado.[0613] Therefore, using the segmentations and processing speed offered by the wired/quantum processing engines disclosed herein, only a single file format need be stored, while other file formats can be easily and quickly generated from it. Then, instead of needing to store all three file formats, a single file format need be stored from which any other file format can be regenerated, such as immediately, at the exact time for additional processing steps desired by the user. Accordingly, the system can be configured for ease of use so that if a user simply interacts with a graphical user interface, such as presented on an associated display of the device, e.g., the user clicks on the FASTQ, BAM, VCF, etc. button presented on the GUI, the desired file format can be presented, while in the background, one or more of the system's processing engines can be performing the accelerated processing steps necessary to regenerate the requested file in the requested file format from the stored file.

[0614] Tipicamente, um ou mais dentre uma versão compactada de um arquivo BCL, FASTQ, SAM, BAM, CRAM e/ou VCF serão salvos, juntamente com um metarquivo pequeno que inclui todas as configurações de como o sistema foi executado para criar o arquivo compactado e/ou armazenado. Tais dados de metarquivo detalham como o formato de arquivo particular, por exemplo, arquivo FASTQ e/ou BAM, foi gerado e/ou quais etapas seriam necessárias para ir para trás ou para frente de modo a gerar qualquer um dos outros formatos de arquivo. Esse processo é descrito em mais detalhes no presente documento abaixo. De tal maneira, o processo pode proceder para frente ou ser revertido indo para trás com o uso da configuração armazenada no metarquivo. Isso pode ser uma redução de cerca de 80% ou mais no custo econômico e de armazenamento se a função de computação for enfeixada com as funções de armazenamento.[0614] Typically, one or more of a compressed version of a BCL, FASTQ, SAM, BAM, CRAM and/or VCF file will be saved, along with a small metafile that includes all the settings of how the system was run to create the compressed and/or stored file. Such metafile data details how the particular file format, e.g., FASTQ and/or BAM file, was generated and/or what steps would be required to go backwards or forwards in order to generate any of the other file formats. This process is described in more detail in this document below. In this manner, the process can proceed forwards or be reversed by going backwards using the settings stored in the metafile. This can be a reduction of about 80% or more in economic and storage cost if the computing function is bundled with the storage functions.

[0615] Consequentemente, em vista do anterior e conforme pode ser observado em relação à Figura 40A, um sistema de servidor baseado em nuvem para análise e armazenamento de dados é fornecido. Por exemplo, com o uso de sistema de servidor acessível na nuvem, conforme revelado no presente documento, um usuário pode se conectar com um dispositivo de armazenamento, tal como para o armazenamento de dados de entrada. Por exemplo, um usuário remoto pode acessar o sistema de modo a inserir dados de genômica e/ou bioinformática no sistema, tal como para armazenamento e/ou processamento dos mesmos. Particularmente, um usuário remoto do sistema, por exemplo, que usa recurso de computação local 100, pode acessar o sistema 1 de modo a transferir por upload os dados genômicos, por exemplo, tais como um ou mais genomas sequenciados de um ou mais indivíduos. Conforme descrito em detalhes abaixo, o sistema pode incluir uma interface de usuário, por exemplo, acessando uma API adequadamente configurada, que permitirá que um usuário acesse a plataforma BioIT de modo a transferir por upload os dados a serem processados, controlar os parâmetros do processamento e/ou transferir por download a saída, por exemplo, dados de resultados, a partir da plataforma.[0615] Accordingly, in view of the foregoing and as can be seen with respect to Figure 40A, a cloud-based server system for data analysis and storage is provided. For example, using a cloud-accessible server system as disclosed herein, a user may connect to a storage device, such as for storing input data. For example, a remote user may access the system in order to input genomic and/or bioinformatics data into the system, such as for storing and/or processing the same. In particular, a remote user of the system, e.g. using local computing resource 100, may access the system 1 in order to upload genomic data, e.g., such as one or more sequenced genomes of one or more individuals. As described in detail below, the system may include a user interface, e.g., accessing a suitably configured API, that will allow a user to access the BioIT platform in order to upload data to be processed, control processing parameters, and/or download output, e.g., results data, from the platform.

[0616] Especificamente, o sistema pode incluir uma API, por exemplo, um objeto S3 ou "do tipo S3" que permite acesso a uma ou mais memórias do sistema, para o armazenamento 400 e/ou recebimento dos arquivos armazenados. Por exemplo, um objeto de API acessível na nuvem pode estar presente, tal como em que a API é configurável de modo a armazenar arquivos de dados na nuvem 50, tal como em um ou mais buckets de armazenamento 500, por exemplo, um bucket S3. Consequentemente, o sistema pode ser configurado de modo a permitir que o usuário tenha acesso a arquivos remotamente armazenados, por exemplo, por meio de uma API do tipo S3 ou S3, tal como acessando a API por meio de uma interface baseada em nuvem em um dispositivo de computação pessoal.[0616] Specifically, the system may include an API, e.g., an S3 or "S3-like" object that allows access to one or more system memories for storing 400 and/or receiving stored files. For example, a cloud-accessible API object may be present, such as wherein the API is configurable to store data files in the cloud 50, such as in one or more storage buckets 500, e.g., an S3 bucket. Accordingly, the system may be configured to allow a user to access remotely stored files, e.g., via an S3 or S3-like API, such as by accessing the API via a cloud-based interface on a personal computing device.

[0617] Tal API, portanto, pode ser configurada para permitir acesso à nuvem 50 para conectar, assim, o usuário a um ou mais dos servidores baseados em nuvem 300 revelados no presente documento, tal como transferir por upload e/ou download um determinado arquivo armazenado, por exemplo, de modo a tornar os arquivos acessíveis entre o servidor de nuvem 300 e o disco rígido local 100. Isso pode ser útil, por exemplo, para permitir que um usurário remoto forneça, acesse dados e/ou transfira por download dados no ou a partir do servidor 300 e execute adicionalmente um ou mais aplicativos e/ou cálculos nesses dados, ou localmente 100 ou no servidor 300, e então chamar a API para enviar os dados transformados de volta para ou da nuvem 50, por exemplo, para armazenamento 200 e/ou processamento adicional. Isso é especificamente útil para a recuperação, análises e o armazenamento de dados de genômica.[0617] Such an API may therefore be configured to allow access to the cloud 50 to thereby connect the user to one or more of the cloud-based servers 300 disclosed herein, such as uploading and/or downloading a particular stored file, for example, so as to make the files accessible between the cloud server 300 and the local hard drive 100. This may be useful, for example, to allow a remote user to provide, access data and/or download data on or from the server 300 and further perform one or more applications and/or computations on that data, either locally 100 or on the server 300, and then call the API to send the transformed data back to or from the cloud 50, for example, for storage 200 and/or further processing. This is particularly useful for the retrieval, analysis and storage of genomics data.

[0618] Entretanto, o típico armazenamento de dados baseado em nuvem, por exemplo, armazenamento "S3", é dispendioso. Essa despesa é aumentada ao armazenar grandes quantidades de dados associados aos campos de genômica e bioinformática, em que tais custos se tornam proibitivos. Adicionalmente, o tempo exigido para registrar, transferir por upload e/ou download os dados para uso, por exemplo, ou local 100 ou remotamente 300, e/ou para armazenamento 400 também torna tais soluções de armazenamento baseadas em nuvem menos atraentes. As presentes soluções reveladas no presente documento superam essas e outras tais necessidades.[0618] However, typical cloud-based data storage, e.g., "S3" storage, is expensive. This expense is compounded when storing large amounts of data associated with the fields of genomics and bioinformatics, where such costs become prohibitive. Additionally, the time required to record, upload, and/or download the data for use, e.g., either locally 100 or remotely 300, and/or for storage 400 also makes such cloud-based storage solutions less attractive. The present solutions disclosed herein overcome these and other such needs.

[0619] Particularmente, em vez de passar por um "S3" típico ou outra API de objeto baseada em nuvem típica, é apresentada no presente documento uma API compatível com S3 alternativa, que pode ser implantada de modo a reduzir a velocidade de transmissão e/ou o custo do armazenamento dos dados. Em tal instância, quando um usuário quer armazenar um arquivo, em veze de passar por uma API baseada em nuvem típica, por exemplo, S3, o sistema de API de serviço alternativo, por exemplo, a API compatível com S3 proprietária revelada no presente documento, iniciará uma instância de computação, por exemplo, uma instância de CPU e/ou FPGA do sistema, que funcionará para compactar o arquivo, gerará um índice de metadados em relação à indicação de quais são os dados e/ou de como o arquivo foi gerado, etc. e armazenará o arquivo compactado por meio de um bucket do tipo armazenamento compatível com S3 400. Consequentemente, é apresentado no presente documento um serviço baseado em nuvem 50 que emprega uma instância de computação 300, que pode ser iniciada por uma API alternativa, de modo a compactar dados antes do armazenamento 400 e/ou descompactar dados mediante recuperação. Em tal instância, o que é armazenado, portanto, não é o arquivo real, mas, em vez disso, o que é armazenado é uma versão compactada do arquivo original.[0619] In particular, rather than going through a typical "S3" or other cloud-based object API, an alternative S3-compatible API is disclosed herein that can be implemented to reduce the transmission speed and/or cost of storing the data. In such an instance, when a user wants to store a file, rather than going through a typical cloud-based API, e.g., S3, the alternative service API system, e.g., the proprietary S3-compatible API disclosed herein, will launch a compute instance, e.g., a CPU and/or FPGA instance of the system, that will work to compress the file, generate a metadata index regarding what the data is and/or how the file was generated, etc. and will store the compressed file via an S3-compatible storage-type bucket 400. Accordingly, disclosed herein is a cloud-based service 50 that employs a compute instance 300, which may be initiated via an alternative API, in order to compress data prior to storage 400 and/or decompress data upon retrieval. In such an instance, what is therefore stored is not the actual file, but rather what is stored is a compressed version of the original file.

[0620] Especificamente, em tal instância, o arquivo inicial pode estar em um primeiro formato, que pode ser carregado no sistema por meio da API compatível com S3 proprietária, que recebe o arquivo, por exemplo, um arquivo F1, e pode, então, realizar uma função de computação no arquivo e/ou, então, compactar o arquivo, tal como por meio de um mecanismo de processamento de CPU/GPU/QPU/FPGA adequadamente configurado 300, que, então, prepara o arquivo compactado para armazenamento, como um arquivo compactado, por exemplo, arquivo F1 compactado. Entretanto, quando o arquivo compactado e armazenado precisa ser recuperado, o mesmo pode, então, ser descompactado, tal arquivo descompactado pode, então, ser retornado para o usuário. A vantagem desse sistema de compactação e descompactação aceleradas é que o armazenamento 400 do arquivo compactado significa uma incrível economia em custos de armazenamento, tal vantagem é tornada possível pelas funcionalidades de computação e/ou compactação alcançadas pelos sistemas revelados no presente documento.[0620] Specifically, in such an instance, the initial file may be in a first format, which may be uploaded to the system via the proprietary S3-compatible API, which receives the file, e.g., an F1 file, and may then perform a compute function on the file and/or compress the file, such as via a suitably configured CPU/GPU/QPU/FPGA processing engine 300, which then prepares the compressed file for storage as a compressed file, e.g., a compressed F1 file. However, when the compressed and stored file needs to be retrieved, it may then be decompressed, and such decompressed file may then be returned to the user. The advantage of such an accelerated compression and decompression system is that storage 400 of the compressed file results in significant savings in storage costs, such advantage being made possible by the compute and/or compression functionalities achieved by the systems disclosed herein.

[0621] Portanto, devido às funcionalidades de computação e/ou compactação rápidas e eficientes alcançadas pelos sistemas, o usuário não precisa nem saber que o arquivo está sendo compactado antes do armazenamento e subsequentemente descompactado após o armazenamento e apresentado na interface do usuário. Particularmente, o sistema funciona tão rápida e eficientemente que o usuário não precisa estar ciente da multiplicidade de etapas de compactação, computação e/ou descompactação que ocorrem ao armazenar e/ou recuperar os dados solicitados, para o usuário, isso tudo parece ininterrupto e rápido. Entretanto, o fato de que o presente sistema de armazenamento custará menos e será mais eficiente do que os sistemas de armazenamento anteriores será evidente.[0621] Therefore, due to the fast and efficient computation and/or compression functionalities achieved by the systems, the user need not even know that the file is being compressed prior to storage and subsequently decompressed after storage and presented in the user interface. In particular, the system operates so quickly and efficiently that the user need not be aware of the multitude of compression, computation and/or decompression steps that occur when storing and/or retrieving the requested data; to the user, this all appears seamless and fast. However, the fact that the present storage system will cost less and be more efficient than previous storage systems will be evident.

[0622] Consequentemente, em vista do exposto acima, serviços de armazenamento baseados em objeto são fornecidos no presente documento, em que os serviços de armazenamento podem ser oferecidos a custos mais baixos, combinando-se uma instância de computação e/ou compactação juntamente com uma funcionalidade de armazenamento. Em tal instância, os custos de armazenamento típicos podem ser substituídos por custos de computação, que são oferecidos em um nível muito mais baixo, devido ao fato de que, conforme apresentado no presente documento, os custos de computação podem ser implantados de uma maneira acelerada, tal como por uma plataforma de computação quântica e/ou FPGA 300, conforme descrito no presente documento. Portanto, as plataformas aceleradas reveladas no presente documento podem ser configuradas como um sistema de armazenamento e recuperação rápido e eficiente que permite o armazenamento compactado de dados que podem ser tanto compactados e armazenados como rapidamente descompactados e recuperados a custos muito mais baixos e com maior eficiência e velocidade. Isso é particularmente útil em relação ao armazenamento de dados de genômica 400 e é compatível com as funcionalidades de processamento No Momento Exato reveladas no presente documento, acima. Portanto, em conformidade com os dispositivos, sistemas e métodos revelados no presente documento, um serviço armazenamento é um objetivo que pode ser fornecido, em que o serviço de armazenamento implanta uma funcionalidade de compactação rápida, tal como compactação específica para genômica de modo a armazenas dados de resultados de processamento de genômica.[0622] Accordingly, in view of the above, object-based storage services are provided herein, wherein storage services can be offered at lower costs by combining a compute and/or compression instance together with storage functionality. In such an instance, typical storage costs can be replaced by compute costs, which are offered at a much lower level, due to the fact that, as disclosed herein, compute costs can be implemented in an accelerated manner, such as by a quantum computing platform and/or FPGA 300, as described herein. Therefore, the accelerated platforms disclosed herein can be configured as a fast and efficient storage and retrieval system that enables compressed storage of data that can be both compressed and stored and rapidly decompressed and retrieved at much lower costs and with greater efficiency and speed. This is particularly useful with respect to the storage of genomic data 400 and is compatible with the Just-In-Time processing functionalities disclosed herein, above. Therefore, in accordance with the devices, systems, and methods disclosed herein, a storage service is an objective that may be provided, wherein the storage service implements fast compression functionality, such as genomics-specific compression, in order to store genomic processing result data.

[0623] Mais particularmente, conforme pode ser observado em relação à Figura 40A, em uma implantação exemplificativa, os sistemas BioIT fornecidos no presente documento podem ser configurados de modo que um sistema de servidor de segmentação 300, por exemplo, uma porção do mesmo, recebe a solicitação na API, por exemplo, API compatível com S3, que é operacionalmente conectada um banco de dados 400 que é adaptado para associar o arquivo inicial (F1) à versão compactada do arquivo (CF1), por exemplo, com base nos metadados acoplados. De modo semelhante, uma vez que os arquivos CF1 originais são descompactados e processados, os arquivos (F2) de dados de resultados resultantes podem, então, ser compactados e armazenados como um arquivo CF2. Consequentemente, quando a recuperação do arquivo é desejada do banco de dados 400, o servidor 300 tem uma API que já associou o arquivo original ao arquivo compactado por meio de metadados apropriadamente configurados, portanto, quando a recuperação é solicitada, um controlador de gerenciamento de fluxo de trabalho (WMS) do sistema iniciará a instância de computação 300, que iniciará a instância de computação apropriada de modo a realizar quaisquer computações necessárias e/ou descompactar o arquivo para processamento adicional, transmissão e/ou apresentação ao usuário solicitante 100.[0623] More particularly, as can be seen with respect to Figure 40A, in an exemplary implementation, the BioIT systems provided herein may be configured such that a segmentation server system 300, e.g., a portion thereof, receives the request on the API, e.g., S3-compatible API, which is operatively connected to a database 400 that is adapted to associate the initial file (F1) with the compressed version of the file (CF1), e.g., based on coupled metadata. Similarly, once the original CF1 files are decompressed and processed, the resulting results data files (F2) may then be compressed and stored as a CF2 file. Accordingly, when retrieval of the file is desired from the database 400, the server 300 has an API that has already associated the original file with the compressed file via appropriately configured metadata, so when retrieval is requested, a workflow management controller (WMS) of the system will start the compute instance 300, which will start the appropriate compute instance so as to perform any necessary computations and/or decompress the file for further processing, transmission, and/or presentation to the requesting user 100.

[0624] Portanto, em várias modalidades, um método exemplificativo pode incluir uma ou mais etapas, em qualquer ordem lógica: 1) A solicitação entra através da API, por exemplo, API compatível com S3, 2) a API se comunica com o WMS, 3) o WMS popula o banco de dados e inicia a instância (ou instâncias) de computação, 4) a instância (ou instâncias) de computação realiza a compactação indispensável no arquivo F1 e gera os metadados característicos e/ou outras associações de arquivo relevantes (X), por exemplo, para produzir um arquivo CF1 X1, 4) preparando, assim, os dados para o armazenamento 400. Esse processo pode, então, ser repetido para os arquivos F2, F3, Fn, por exemplo, outras informações processadas, de modo que o WMS saiba como o arquivo compactado foi gerado, assim como onde e como o mesmo foi armazenado. Deve ser observado que um recurso exclusivo desse sistema é que diversos usuários diferentes 100 podem ser ter acesso aos dados armazenados 400 de modo substancialmente simultâneo. Por exemplo, os sistemas e métodos de compactação revelados no presente documento são úteis em conjunto com as plataformas BioT reveladas no presente documento, através das quais, em qualquer momento durante o processamento, os dados de resultados podem ser compactados e armazenados em conformidade com os métodos no presente documento, e acessíveis a outros, com as permissões corretas.[0624] Thus, in various embodiments, an exemplary method may include one or more steps, in any logical order: 1) The request comes in via the API, e.g., S3-compatible API, 2) the API communicates with the WMS, 3) the WMS populates the database and starts the compute instance (or instances), 4) the compute instance (or instances) performs the required compression on the file F1 and generates the characteristic metadata and/or other relevant file associations (X), e.g., to produce a CF1 file X1, 4) thereby preparing the data for storage 400. This process may then be repeated for files F2, F3, Fn, e.g., other processed information, so that the WMS knows how the compressed file was generated, as well as where and how it was stored. It should be noted that a unique feature of this system is that multiple different users 100 may have access to the stored data 400 substantially simultaneously. For example, the compression systems and methods disclosed herein are useful in conjunction with the BioT platforms disclosed herein, through which, at any time during processing, result data can be compressed and stored in accordance with the methods herein, and accessible to others, with the correct permissions.

[0625] Em relação à realização da análise genômica, um usuário 100 pode acessar o sistema 300 no presente documento, por exemplo, por meio de uma API de análise genômica, tal como um S3 ou API compatível com S3, transferir por upload dados genômicos, tal como em um arquivo BCL e/ou FASTQ ou outro formato de arquivo e solicitar, assim, o desempenho de uma ou mais operações de genômica, tais como um mapeamento, alinhamento, classificação, desduplicação, chamada de variante e/ou outras operações. O sistema 300 recebe a solicitação em uma API de gerenciador de fluxo de trabalho, o sistema de gerenciador de fluxo de trabalho avalia as solicitações entrantes, indexa os trabalhos, forma uma fila, aloca os recursos, por exemplo, alocação de instância, e gera o fluxo de segmentação. Consequentemente, quando uma solicitação entra e é pré-processada e colocada em fila, um alocador de instância, por exemplo, API, processará, então, as várias instâncias específicas para trabalho, descritas em mais detalhes no presente documento abaixo, em conformidade com os projetos de trabalho. Portanto, uma vez que os trabalhos são indexados, colocados em fila e/ou armazenados em um banco de dados apropriado 400, o gerenciador de fluxo de trabalho extrairá, então, os dados do armazenamento 400, por exemplo, armazenamento compatível com S3 ou S3, colocará em funcionamento uma instância apropriada, que recupera o arquivo, e executará os processos apropriados nos dados para realizar um ou mais dos trabalhos solicitados.[0625] In connection with performing genomic analysis, a user 100 may access system 300 herein, for example, via a genomic analysis API, such as an S3 or S3-compatible API, upload genomic data, such as in a BCL and/or FASTQ file or other file format, and thereby request the performance of one or more genomic operations, such as mapping, alignment, classification, deduplication, variant calling, and/or other operations. System 300 receives the request on a workflow manager API, the workflow manager system evaluates the incoming requests, indexes the jobs, forms a queue, allocates resources, e.g., instance allocation, and generates the segmentation workflow. Accordingly, when a request comes in and is pre-processed and queued, an instance allocator, e.g., API, will then process the various job-specific instances, described in more detail in this document below, in accordance with the job designs. Therefore, once the jobs are indexed, queued, and/or stored in an appropriate database 400, the workflow manager will then pull the data from storage 400, e.g., S3 or S3-compatible storage, spin up an appropriate instance, which retrieves the file, and performs the appropriate processes on the data to perform one or more of the requested jobs.

[0626] Adicionalmente, quando é solicitada que uma pluralidade de trabalhos seja realizada nos dados, exigindo o desempenho de uma pluralidade de instâncias, então, uma vez que a primeira instância realizou suas operações, os dados de resultados podem ser compactados e armazenados, tal como em uma instância de memória apropriada, por exemplo, um primeiro banco de dados, tal como um dispositivo de armazenamento elástico ou flexível, de modo a esperar enquanto a instância (ou instâncias) de segmentação adicional é processada e recupera os dados de resultados para processamento adicional, tal como em conformidade com os sistemas e métodos revelados no presente documento acima. Ademais, na medida em que novas solicitações entram e/ou trabalhos atuais começam a serem executados, o sistema de gerenciamento de fluxo de trabalho estará constantemente atualizando a fila de modo a alocar os trabalhos às instâncias apropriadas, por meio de uma API de alocador de instância, de modo a manter os dados fluindo através do sistema e os processos do sistema funcionando de modo eficiente.[0626] Additionally, when a plurality of jobs are requested to be performed on the data, requiring the performance of a plurality of instances, then once the first instance has performed its operations, the result data may be compressed and stored, such as in an appropriate memory instance, e.g., a first database, such as an elastic or flexible storage device, so as to wait while the additional segmentation instance (or instances) are processed and retrieve the result data for further processing, such as in accordance with the systems and methods disclosed herein above. Furthermore, as new requests come in and/or current jobs begin to execute, the workflow management system will be constantly updating the queue so as to allocate jobs to the appropriate instances, via an instance allocator API, so as to keep data flowing through the system and the system processes running efficiently.

[0627] De modo semelhante, o sistema 300 pode estar constante levando os dados de resultados e armazenando os dados 200/400, por exemplo, em um primeiro ou um segundo banco de dados, antes do processamento adicional e/ou transmissão, tal como a transmissão de volta para o solicitante original 100 ou uma parte designada. Em certos casos, os dados de resultados podem ser compactados, conforme revelado no presente documento, antes do armazenamento 400 e/ou da transmissão. Ademais, conforme indicado acima, os arquivos de dados de resultados gerados quando compactados podem incluir metadados apropriados e/ou outros dados associados, em que dados de resultados podem ser diferentemente designados na medida em que os mesmos fluem através do sistema, tal como indo de um arquivo F1 para um arquivo F1C para um arquivo F2, para um arquivo F2C e assim por diante, na medida em que os dados são processados e se movem através da segmentação de plataforma, por exemplo, conforme direcionado por uma API de associações de arquivo.[0627] Similarly, the system 300 may be constantly taking the results data and storing the data 200/400, for example, in a first or second database, prior to further processing and/or transmission, such as transmission back to the original requester 100 or a designated party. In certain cases, the results data may be compressed, as disclosed herein, prior to storage 400 and/or transmission. Furthermore, as noted above, the results data files generated when compressed may include appropriate metadata and/or other associated data, wherein the results data may be differently named as it flows through the system, such as going from an F1 file to an F1C file to an F2 file to an F2C file, and so on, as the data is processed and moves through the platform segmentation, for example, as directed by a file associations API.

[0628] Consequentemente, por causa das APIs dedicadas proprietárias, conforme revelado no presente documento, o sistema pode ter uma cadeia principal comum à qual outros serviços podem ser acoplados e/ou recursos adicionais, por exemplo, instâncias, podem ser colocados online de modo a garantir que todas as operações de segmentação funcionem suave e eficientemente. Igualmente, quando desejado, os arquivos de dados de resultados compactados e armazenados podem ser chamados, através do qual, o gerenciador de fluxo de trabalho processará a instância de banco de dados de computação e/ou descompactação apropriada para descompactar dados de resultados para apresentação ao solicitante. É observado que, em vários casos, a instância de computação e compactação especificada, assim como a instância de computação e descompactação especificada, pode ser uma única instância ou múltiplas instâncias e pode ser implantada como uma CPU, FPGA ou CPU/FPGA firmemente acoplados, CPU/CPU firmemente acopladas ou FPGA/FPGA firmemente acoplados. Em certos casos, uma ou mais dessas ou outras instâncias reveladas no presente documento podem ser implantadas como uma unidade de processamento quântica.[0628] Accordingly, because of the proprietary dedicated APIs as disclosed herein, the system may have a common backbone to which other services may be coupled and/or additional resources, e.g., instances, may be brought online so as to ensure that all segmentation operations run smoothly and efficiently. Likewise, when desired, the compressed and stored result data files may be called, whereby the workflow manager will process the appropriate compute and/or decompress database instance to decompress result data for presentation to the requester. It is noted that in various cases, the specified compute and compression instance, as well as the specified compute and decompress instance, may be a single instance or multiple instances and may be deployed as a CPU, FPGA, or tightly coupled CPU/FPGA, tightly coupled CPU/CPU, or tightly coupled FPGA/FPGA. In certain cases, one or more of these or other instances disclosed herein may be deployed as a quantum processing unit.

[0629] Consequentemente, em vista das revelações no presente documento, em um aspecto, um dispositivo para realizar uma ou mais de uma multiplicidade de funções na realização de operações de análise de sequência genômica é fornecido. Por exemplo, uma vez que os dados foram recebidos, por exemplo, por um usurário remoto 100, e/ou armazenados 400 dentro do sistema baseado em nuvem, os dados de entrada podem ser acessados pelo WMS e podem ser preparados para processamento adicional, por exemplo, para análise secundária, os resultados do mesmo podem, então, ser transmitidos de volta para o usuário local 100, por exemplo, após serem compactados, armazenados 400 e/ou submetidos a processamento adicional, por exemplo, processamento terciário pelo sistema servidor 300.[0629] Accordingly, in view of the disclosures herein, in one aspect, a device for performing one or more of a plurality of functions in performing genomic sequence analysis operations is provided. For example, once data has been received, e.g., by a remote user 100, and/or stored 400 within the cloud-based system, the input data may be accessed by the WMS and may be prepared for further processing, e.g., for secondary analysis, the results thereof may then be transmitted back to the local user 100, e.g., after being compressed, stored 400, and/or subjected to further processing, e.g., tertiary processing, by the server system 300.

[0630] Em certos casos, as etapas de processamento secundárias reveladas no presente documento, em implantações particulares, podem ser realizadas por um recurso de computação local 100 e podem ser implantadas por software e/ou hardware, tal como sendo executadas por um recurso de computação adequado 200, em que o recurso de computação 200 inclui um núcleo de CPUs, tal como de cerca de 4 a cerca de 14 a cerca de 24 ou mais núcleos de CPU e pode incluir adicionalmente um ou mais FPGAs. O recurso de computação adequado local 100 pode ser configurado para acessar um bloco de armazenamento grande 200, tal como 120 GBs de memória RAM, cujo acesso pode ser direto, tal como sendo diretamente acoplado ao mesmo, ou indiretamente, tal como sendo comunicavelmente acoplado ao mesmo através de uma rede baseada em nuvem local 30.[0630] In certain cases, the secondary processing steps disclosed herein, in particular implementations, may be performed by a local computing resource 100 and may be implemented by software and/or hardware, such as being performed by a suitable computing resource 200, wherein the computing resource 200 includes a CPU core, such as from about 4 to about 14 to about 24 or more CPU cores, and may further include one or more FPGAs. The suitable local computing resource 100 may be configured to access a large storage block 200, such as 120 GBs of RAM, which access may be direct, such as being directly coupled thereto, or indirectly, such as being communicably coupled thereto via a local cloud-based network 30.

[0631] Especificamente, dentro de um sistema local, dados podem ser transmitidos para e a partir da memória 200 por meio de unidades de SSD adequadamente configuradas que são adaptadas para gravar dados de trabalhos de processamento em, por exemplo, trabalhos de genômica a serem processados e ler os dados de resultados processados da memória 200. Em várias modalidades, o recurso de computação local 100 pode ser comunicavelmente acoplado a um sequenciador 110de onde um arquivo BCL e/ou FASTQ pode ser obtido, por exemplo, a partir do sequenciador e gravado nas unidades de SSD, diretamente, tal como através de uma interconexão adequadamente configurada. O recurso de computação local 100 pode, então, realizar uma ou mais operações de processamento secundárias nos dados. Por exemplo, em uma modalidade, o recurso de computação local é um servidor LINUX® que tem 24 CPUs, tais CPUs podem ser acoplados a um FPGA adequadamente configurável que é adaptado para realizar uma ou mais das operações de processamento secundárias reveladas no presente documento.[0631] Specifically, within a local system, data may be transmitted to and from memory 200 via suitably configured SSD drives that are adapted to write processing job data to, e.g., genomics jobs to be processed and read processed result data from memory 200. In various embodiments, local computing resource 100 may be communicably coupled to a sequencer 110 from which a BCL and/or FASTQ file may be obtained, e.g., from the sequencer and written to the SSD drives, directly, such as via a suitably configured interconnect. Local computing resource 100 may then perform one or more secondary processing operations on the data. For example, in one embodiment, local computing resource is a LINUX® server that has 24 CPUs, such CPUs may be coupled to a suitably configurable FPGA that is adapted to perform one or more of the secondary processing operations disclosed herein.

[0632] Portanto, em casos particulares, o dispositivo de computação local 100 pode ser uma solução de computação de "bancada de trabalho" que tem um chipset BioIT que é configurado para realizar um ou mais dentre o processamento secundário e/ou terciário nos dados de genética. Por exemplo, conforme revelado no presente documento, o recurso de computação 100 pode estar associado a um cartão PCIe que é inserido no dispositivo de computação de modo a estar, assim, associado ao um ou mais núcleos internos de CPUs, GPUs, QPU e/ou memórias associadas. Particularmente, os componentes do dispositivo de computação 100 incluindo as unidades de processamento, memórias associadas e/ou cartão (ou cartões) PCIe associado, que tem um ou mais chipsets FPGA/ASIC no mesmo, podem estar um em comunicação com o outro, todos os quais podem ser fornecidos dentro de um alojamento, tal como de uma maneira compilada que é típica dentro da técnica. Mais particularmente, a compilação pode ser configurada para uso em bancada de trabalho, ou, em vários casos, a mesma pode ser configurada e fornecida e/ou utilizável dentro de um bastidor para servidor remotamente acessível. Em outras modalidades, os conjuntos de chip de CPU/FPGA/Memória e/ou cartão (ou cartões) expresso interconectado associado podem ser associados a um dispositivo de sequenciamento de Nova Geração a fim de formar uma unidade com o mesmo.[0632] Therefore, in particular cases, the local computing device 100 may be a "workbench" computing solution having a BioIT chipset that is configured to perform one or more of the secondary and/or tertiary processing on the genetic data. For example, as disclosed herein, the computing resource 100 may be associated with a PCIe card that is inserted into the computing device so as to be thereby associated with one or more internal CPU cores, GPUs, QPUs, and/or associated memories. Particularly, the components of the computing device 100 including the processing units, associated memories, and/or associated PCIe card(s), having one or more FPGA/ASIC chipsets therein, may be in communication with each other, all of which may be provided within a housing, such as in a compiled manner that is typical within the art. More particularly, the build may be configured for workbench use, or in various cases, it may be configured and provided and/or usable within a remotely accessible server rack. In other embodiments, the CPU/FPGA/Memory chip sets and/or associated interconnected express card(s) may be associated with a Next Generation sequencing device to form a unit therewith.

[0633] Consequentemente, em um caso particular, uma compilação de área de trabalho pode incluir uma pluralidade de CPUs/GPUs/QPUs acopladas a um ou mais FPGAs, tais como 4 CPUs/GPUs, ou 8, ou 12, 16, 20, 22, ou 24 CPUs, ou mais, que podem ser acopladas a 1, ou 2, ou 3, ou mais FPGAs, tal como dentro de um único alojamento. Especificamente, em um caso particular, um recurso de computação de compilação é fornecido em que o recurso de computação inclui 24 núcleos de CPU, um FPGA reconfigurável, um banco de dados, por exemplo, RAM128x8, um ou mais SSDs, tal como em que o FPGA é adaptado para ser pelo menos parcialmente reconfigurável entre operações, tal como entre realizar o mapeamento e o alinhamento. Portanto, em tal caso, os arquivos BCL e/ou FASTQ gerados pelo aparelho de sequenciamento 110 podem ser lidos na CPU e/ou transferidos para o FPGA, para processamento, e os dados de resultados dos mesmos podem ser lidos de volta para a CPU associada por meio das unidades de SSD. Consequentemente, nessa modalidade, o sistema de computação local 100 pode ser configurada para descarregar várias funcionalidades de alta computação a um FPGA associado, aumentando, assim, a velocidade, precisão e eficiência do processamento de bioinformática. Entretanto, embora uma solução de compilação de área de trabalho 100 seja útil, por exemplo, em uma instalação local, a mesma pode não ser adequada para ser acessada por uma pluralidade de usuários que podem ser localizados remotamente da compilação.[0633] Accordingly, in a particular case, a desktop build may include a plurality of CPUs/GPUs/QPUs coupled to one or more FPGAs, such as 4 CPUs/GPUs, or 8, or 12, 16, 20, 22, or 24 CPUs, or more, which may be coupled to 1, or 2, or 3, or more FPGAs, such as within a single housing. Specifically, in a particular case, a build compute resource is provided wherein the compute resource includes 24 CPU cores, a reconfigurable FPGA, a database, e.g., 128x8 RAM, one or more SSDs, such as wherein the FPGA is adapted to be at least partially reconfigurable between operations, such as between performing mapping and alignment. Therefore, in such a case, the BCL and/or FASTQ files generated by the sequencing apparatus 110 may be read into the CPU and/or transferred to the FPGA for processing, and the result data thereof may be read back to the associated CPU via the SSD drives. Accordingly, in this embodiment, the local computing system 100 may be configured to offload various high-computing functionalities to an associated FPGA, thereby increasing the speed, accuracy, and efficiency of the bioinformatics processing. However, while a desktop compilation solution 100 is useful, for example, in a local installation, it may not be suitable for access by a plurality of users who may be located remotely from the compilation.

[0634] Particularmente, em vários casos, uma solução de servidor baseado em nuvem 50 pode ser fornecida, tal como quando o servidor 300 pode ser acessível remotamente. Consequentemente, em casos particulares, um ou mais dos circuitos integrados (CPU, FPGA, QPU) revelados no presente documento podem ser fornecidos e configurados para serem acessados por meio de uma interface baseada em nuvem 50. Portanto, em casos particulares, um recurso de computação de compilação de bancada de trabalho, conforme descrito acima, pode ser fornecido em que a configuração de compilação é adaptada de modo a ser portátil à nuvem e acessível remotamente. Entretanto, tal configuração pode não ser suficiente para manipular uma grande quantidade de tráfego de usurários remotos. Consequentemente, em outros casos, um ou mais dos circuitos integrados revelados no presente documento podem ser configuráveis como uma solução baseada em servidor 300 configurável como parte de um bastidor para servidores, tais como quando o sistema acessível pelo servidor é configurado para ser acessado remotamente, tal como por meio da nuvem 50.[0634] Particularly, in various instances, a cloud-based server solution 50 may be provided, such as when the server 300 may be remotely accessible. Accordingly, in particular instances, one or more of the integrated circuits (CPU, FPGA, QPU) disclosed herein may be provided and configured to be accessed via a cloud-based interface 50. Therefore, in particular instances, a workbench build computing resource as described above may be provided wherein the build configuration is adapted to be portable to the cloud and remotely accessible. However, such a configuration may not be sufficient to handle a large amount of traffic from remote users. Accordingly, in other instances, one or more of the integrated circuits disclosed herein may be configurable as a server-based solution 300 configurable as part of a server rack, such as when the server-accessible system is configured to be remotely accessed, such as via the cloud 50.

[0635] Por exemplo, em uma modalidade, um recurso de computação ou servidor local 100, que tem um ou mais, por exemplo, uma multiplicidade, de núcleos de CPU e/ou núcleos de GPU e/ou QPU e memórias associadas podem ser fornecidas em conjunto com um ou mais dentre os FPGAs/ASICs revelados no presente documento. Particularmente, conforme indicado acima, em uma implantação, uma compilação de área de trabalho pode ser fornecida, em que a compilação inclui uma compilação de 18 a 20 a 24 ou mais núcleos de CPU /GPU que tem SSDs, RAM 128 x 8 e um ou mais circuitos de FPGA/ASIC BioIT e inclui adicionalmente um módulo de comunicações adequadamente configurado que tem transmissores, receptores, antenas, assim como WIFI, Bluetooth e/ou capacidades de comunicações celulares que são adaptadas de modo a permitirem que a compilação seja acessível remotamente. Nessa implantação, tal como quando um único FPGA é fornecido, o FPGA (ou FPGAs) pode ser adaptado para ser reconfigurado, tal como parcialmente reconfigurado, entre uma ou mais dentre as diversas etapas da segmentação de análise genômica.[0635] For example, in one embodiment, a local computing resource or server 100 having one or more, e.g., a plurality, of CPU cores and/or GPU cores and/or QPU and associated memories may be provided in conjunction with one or more of the FPGAs/ASICs disclosed herein. Particularly, as noted above, in one deployment, a desktop build may be provided, wherein the build includes a build of 18 to 20 to 24 or more CPU/GPU cores having SSDs, 128 x 8 RAM, and one or more BioIT FPGA/ASIC circuitry, and further includes a suitably configured communications module having transmitters, receivers, antennas, as well as WIFI, Bluetooth, and/or cellular communications capabilities that are adapted to allow the build to be remotely accessible. In this implementation, such as when a single FPGA is provided, the FPGA (or FPGAs) can be adapted to be reconfigured, such as partially reconfigured, between one or more of the various stages of genomic analysis segmentation.

[0636] Entretanto, em outros casos, um sistema de servidor é fornecido e pode incluir até cerca de 20 a 24 a 30 a 34 a 36 ou mais núcleos de CPU/GPU e cerca de 972 GB de RAM, ou mais, que podem estar associados a um ou mais, tal como cerca de dois ou quatro ou cerca de seis ou cerca de oito ou mais FPGAs, tais FPGAs podem ser configuráveis conforme descrito no presente documento. Por exemplo, em uma implantação, a um ou mais FPGAs podem ser adaptados para serem reconfigurados, tal como parcialmente reconfigurado, entre uma ou mais dentre as diversas etapas da segmentação de análise genômica. Entretanto, em várias outras implantações, um conjunto de FPGAs dedicados pode ser fornecido, tal como em que cada FPGA é dedicado para realizar uma operação BioIT específica, tal como mapeamento, alinhamento, chamada de variante, etc., tornando óbvio, assim, a etapa de reconfiguração.[0636] However, in other instances, a server system is provided and may include up to about 20-24-30-34-36 or more CPU/GPU cores and about 972 GB of RAM, or more, which may be associated with one or more, such as about two or four or about six or about eight or more FPGAs, such FPGAs being configurable as described herein. For example, in one implementation, the one or more FPGAs may be adapted to be reconfigured, such as partially reconfigured, between one or more of the various steps of the genomic analysis segmentation. However, in various other implementations, a set of dedicated FPGAs may be provided, such as where each FPGA is dedicated to performing a specific BioIT operation, such as mapping, alignment, variant calling, etc., thereby making the reconfiguration step obvious.

[0637] Consequentemente, em vários casos, um ou mais FPGAs podem ser fornecidos, tal como em que o FPGA (ou FPGAs) é adaptado de modo a ser reconfigurável entre várias operações de segmentação. Entretanto, em outros casos, um ou mais dos FPGAs podem ser configurados de modo a serem dedicados para realizar uma ou mais funções sem a necessidade de serem parcial ou completamente configurados. Por exemplo, os FPGAs fornecidos no presente documento podem ser configurados a fim de serem dedicados a realizar uma ou mais operações computacionalmente intensivas na segmentação de BioIT, tal como quando um FPGA é fornecido e dedicado a realizar uma operação de mapeamento e outro FPGA é fornecido e configurado para realizar uma operação de alinhamento, embora, em alguns casos, um único FPGA possa ser fornecido e configurado para ser pelo menos parcialmente reconfigurado entre realizar uma operação tanto de mapeamento quanto de alinhamento.[0637] Accordingly, in various cases, one or more FPGAs may be provided, such as where the FPGA(s) is adapted to be reconfigurable between various slicing operations. However, in other cases, one or more of the FPGAs may be configured to be dedicated to performing one or more functions without the need to be partially or fully configured. For example, the FPGAs provided herein may be configured to be dedicated to performing one or more computationally intensive operations in BioIT slicing, such as where one FPGA is provided and dedicated to performing a mapping operation and another FPGA is provided and configured to perform an alignment operation, although in some cases a single FPGA may be provided and configured to be at least partially reconfigured between performing both a mapping and an alignment operation.

[0638] Adicionalmente, outras operações na segmentação que podem também ser realizadas por FPGAs reconfiguráveis ou dedicados podem incluir realizar uma operação de conversão/transposição de BCL, uma operação de Smith-Waterman, uma operação HMM, uma operação de realinhamento local e/ou várias outras operações de chamada de variante. Do mesmo modo, diversas das operações de segmentação podem ser configuradas para serem realizadas por uma ou mais dentre as CPUs/GPUs/QPUs associadas do sistema. Tais operações podem ser uma ou mais operações menos computacionalmente intensivas da segmentação, tal como para realizar uma classificação, uma desduplicação e outras operações de chamada de variante. Logo, o sistema abrangente pode ser configurado para realizar uma combinação de operações parte por meio de CPU/GPU/QPU e parte por meio de hardware, tal como por meio de um FPGA/ASIC do sistema.[0638] Additionally, other operations in the segmentation that may also be performed by reconfigurable or dedicated FPGAs may include performing a BCL conversion/transposition operation, a Smith-Waterman operation, an HMM operation, a local realignment operation, and/or various other variant calling operations. Likewise, various of the segmentation operations may be configured to be performed by one or more of the associated CPUs/GPUs/QPUs of the system. Such operations may be one or more less computationally intensive operations of the segmentation, such as to perform a sort, a deduplication, and other variant calling operations. Thus, the comprehensive system may be configured to perform a combination of operations partly via the CPU/GPU/QPU and partly via hardware, such as via an FPGA/ASIC of the system.

[0639] Consequentemente, conforme pode ser observado em relação à Figura 40B, em várias implantações do sistema baseado em nuvem 50, o sistema pode incluir uma pluralidade de recursos de computação, incluindo uma pluralidade de instâncias e/ou níveis de instâncias, tal como em que as instâncias e/ou camadas de instâncias são configuradas para realizar uma ou mais das operações de segmentação BioIT reveladas no presente documento. Por exemplo, em diversas implantações do sistema, diversas instâncias de CPU/GPU/QPU e/ou circuito integrado com fio podem ser fornecidas para realizar funções dedicadas da análise de segmentação genômica fornecidas no presente documento. Por exemplo, diversas exemplo de FPGA podem ser fornecidas para realizar operações de análise genômica dedicadas, tais como uma instância de FPGA para realizar mapeamento, outra para realizar alinhamento, outra para realizar realinhamento local e/ou outras operações de Smith-Waterman, outra para realizar operações de HMM e semelhantes.[0639] Accordingly, as can be seen with respect to Figure 40B, in various deployments of the cloud-based system 50, the system may include a plurality of computing resources, including a plurality of instances and/or tiers of instances, such as wherein the instances and/or tiers of instances are configured to perform one or more of the BioIT segmentation operations disclosed herein. For example, in various deployments of the system, multiple CPU/GPU/QPU and/or wired integrated circuit instances may be provided to perform dedicated genomic segmentation analysis functions provided herein. For example, multiple FPGA instances may be provided to perform dedicated genomic analysis operations, such as one FPGA instance to perform mapping, another to perform alignment, another to perform local realignment and/or other Smith-Waterman operations, another to perform HMM operations, and the like.

[0640] Do mesmo modo, diversas instâncias de CPU/GPU/QPU podem ser fornecidas realizar operações de análise genômica dedicadas, tais como instância de CPU/GPU/QPU para realizar processamento de sinal, classificação, desduplicação, compressão, diversas operações de chamada de variante e semelhantes. Em tais casos, uma memória ou memórias associadas podem ser fornecidas, tais como entre as diversas etapas de computação da segmentação, para receber dados de resultados conforme os mesmos são computados, compilados e processados através do sistema, tal como entre as diversas instâncias de CPU e/ou FPGA e/ou camadas dos mesmos. Adicionalmente, deve ser observado que o tamanho das diversas instâncias de CPU e/ou FPGA pode variar dependendo das necessidades computacionais do sistema baseado em nuvem e pode estar na faixa de pequena a média a grande a muito grande, e o número de instâncias de CPU/GPU/QPU e FPGA/ASIC pode variar do mesmo modo.[0640] Similarly, multiple CPU/GPU/QPU instances may be provided to perform dedicated genomic analysis operations, such as a CPU/GPU/QPU instance to perform signal processing, classification, deduplication, compression, various variant calling operations, and the like. In such cases, an associated memory or memories may be provided, such as between the various segmentation computation steps, to receive result data as it is computed, compiled, and processed through the system, such as between the multiple CPU and/or FPGA instances and/or layers thereof. Additionally, it should be noted that the size of the multiple CPU and/or FPGA instances may vary depending on the computational needs of the cloud-based system and may range from small to medium to large to very large, and the number of CPU/GPU/QPU and FPGA/ASIC instances may vary accordingly.

[0641] Adicionalmente, conforme pode ser observado em relação à Figura 40B, o sistema pode incluir adicionalmente um gerenciador de fluxo de trabalho que é configurado para programar e direcionar o movimento de dados através do sistema e de uma instância para a outra e/ou de uma memória para a outra. Em alguns casos, a memória pode ser uma pluralidade de memórias que são memórias dedicadas que são específicas de instância e, em outros casos, a memória pode ser uma ou mais memórias que são configuradas para serem elásticas e, portanto, ter capacidade para ser comutada de uma instância para outra, tal como uma memória de armazenamento de bloco elástica comutável. Em ainda outros casos, a memória pode ser não específica de instância e, portanto, ter capacidade para ser acoplada de modo comunicável a uma pluralidade de instâncias, tais como para armazenamento de arquivo elástico.[0641] Additionally, as can be seen with respect to Figure 40B, the system may further include a workflow manager that is configured to schedule and direct the movement of data through the system and from one instance to another and/or from one memory to another. In some cases, the memory may be a plurality of memories that are dedicated memories that are instance-specific, and in other cases, the memory may be one or more memories that are configured to be elastic and thus have the ability to be switched from one instance to another, such as a switchable elastic block storage memory. In still other cases, the memory may be non-instance-specific and thus have the ability to be communicably coupled to a plurality of instances, such as for elastic file storage.

[0642] Adicionalmente, o gerenciador de fluxo de trabalho pode ser uma própria instância dedicada, tal como um núcleo de CPU/GPU/QPU que é dedicado e/ou configurado para determinar quais trabalhos precisam ser realizados e quando e quais recursos serão utilizados no desempenho desses trabalhos, assim como para enfileirar os trabalhos e direcionar os mesmos de recurso a recurso, por exemplo, instância a instância. O gerenciador de fluxo de trabalho pode incluir ou pode ser de outro modo configurado como um estimador de carga e/ou formar um nó de controle elástico que é uma instância dedicada que pode ser operada por um processador, por exemplo, um núcleo de CPU/GPU/QPU. Em diversos casos, o gerenciador de fluxo de trabalho pode ter um banco de dados conectado ao mesmo, o qual pode ser configurado para gerenciar todos os trabalhos que precisam ser, estão sendo ou foram processados. Logo, o gerenciador WMS pode ser configurado para detectar e gerenciar como os dados fluem através do sistema, determinando como alocar recursos de sistema e quando colocar mais recursos online.[0642] Additionally, the workflow manager may be a dedicated instance itself, such as a CPU/GPU/QPU core that is dedicated and/or configured to determine what jobs need to be performed and when and what resources will be used to perform those jobs, as well as to queue the jobs and direct them from resource to resource, e.g., instance to instance. The workflow manager may include or may be otherwise configured as a load estimator and/or form an elastic control node that is a dedicated instance that may be operated by a processor, e.g., a CPU/GPU/QPU core. In many cases, the workflow manager may have a database connected to it, which may be configured to manage all jobs that need to be, are being, or have been processed. Thus, the WMS manager may be configured to detect and manage how data flows through the system, determining how to allocate system resources and when to bring more resources online.

[0643] Conforme indicado acima, em certos casos, uma solução baseada em servidor e/ou bancada de trabalho pode ser fornecida em que o dispositivo de computação inclui uma pluralidade de X servidores de núcleo de CPU que têm um tamanho Y que podem ser configurados para alimentar um ou mais FPGAs com um tamanho de Z, em que X, Y e Z são números que podem variar dependendo das necessidades de processamento do sistema, mas devem ser selecionados e/ou configurados de outro modo para serem otimizados, por exemplo, 10, 14, 18, 20, 24, 30, etc. Por exemplo, configurações de sistema típicas são otimizadas para realizar as operações BioIT do sistema descrito no presente documento. Especificamente, certas configurações de sistema foram otimizadas de modo a maximizar o fluxo de dados de várias instâncias de CPU/GPU/QPU para vários circuitos integrados, tais como FPGAs, do sistema, em que os tamanhos da CPU e/ou FPGA podem variar um em relação ao outro com base nas necessidades de processamento do sistema. Por exemplo, um ou mais dentre a CPU e/ou FPGA podem ter um tamanho que é relativamente pequeno, médio, grande, extra grande ou extra-extra-grande. Mais especificamente, a arquitetura do sistema pode ser configurado de modo que os hardwares de CPU/FPGA sejam dimensionados e configurados para funcionar de uma maneira idealmente eficiente de modo a manter ambas as plataformas de instância ocupadas durante todos os tempo de execução, tal como em que as CPUs superam em número o FPGA (ou FPGAs) 4 para 1 , 8 para 1, 16 para 1, 32 para 1, 64 para 2, etc.[0643] As indicated above, in certain instances, a server and/or workbench-based solution may be provided wherein the computing device includes a plurality of X CPU core servers having a size of Y that may be configured to power one or more FPGAs having a size of Z, wherein X, Y, and Z are numbers that may vary depending on the processing needs of the system but should be selected and/or otherwise configured to be optimized, e.g., 10, 14, 18, 20, 24, 30, etc. For example, typical system configurations are optimized to perform the BioIT operations of the system described herein. Specifically, certain system configurations have been optimized so as to maximize data flow from multiple CPU/GPU/QPU instances to multiple integrated circuits, such as FPGAs, of the system, wherein the CPU and/or FPGA sizes may vary relative to each other based on the processing needs of the system. For example, one or more of the CPU and/or FPGA may have a size that is relatively small, medium, large, extra large, or extra-extra large. More specifically, the system architecture may be configured such that the CPU/FPGA hardware is sized and configured to operate in an optimally efficient manner so as to keep both instance platforms busy at all times, such as where the CPUs outnumber the FPGA(s) 4 to 1, 8 to 1, 16 to 1, 32 to 1, 64 to 2, etc.

[0644] Logo, embora seja geralmente bom ter capacidades de FPGA grandes, entretanto, pode não ser eficiente ter um FPGA de alta capacidade para processar dados, se houver dados suficientes que precisam ser processados sendo alimentados no sistema. Em tal caso, apenas um FPGA único ou parcial pode ser implantado. Particularmente, em uma disposição ideal, o sistema de gerenciamento de fluxo de trabalho direciona o fluxo de dados a CPUs e/ou FPGAs identificados que são configurados de modo a manter o sistema e seus componentes computando em tempo integral. Por exemplo, em uma configuração exemplificativa, um ou mais, por exemplo, 2, 3 ou 4 ou mais núcleos CPU/GPU/QPU podem ser configurados para alimentar dados em um FPGA pequeno, médio, grande, extra grande ou uma porção dos mesmos. Especificamente, em uma modalidade, uma instância específica para CPU pode ser fornecida, tal como para realizar uma ou mais das operações de processamento BiolT reveladas no presente documento, tal como em que a instância de CPU é acessível na nuvem e inclui até 4, 8, 16, 24, 30, 36 núcleos de CPU, tais núcleos podem ser configurados ou não para serem operacionalmente acoplados a uma porção de um ou mais FPGAs.[0644] Thus, while it is generally good to have large FPGA capabilities, however, it may not be efficient to have a high-capacity FPGA to process data if there is sufficient data that needs to be processed being fed into the system. In such a case, only a single or partial FPGA may be deployed. In particular, in an ideal arrangement, the workflow management system directs the data flow to identified CPUs and/or FPGAs that are configured to keep the system and its components computing full-time. For example, in an exemplary configuration, one or more, e.g., 2, 3, or 4 or more CPU/GPU/QPU cores may be configured to feed data to a small, medium, large, extra-large FPGA, or a portion thereof. Specifically, in one embodiment, a specific CPU instance may be provided, such as for performing one or more of the BiolT processing operations disclosed herein, such as wherein the CPU instance is accessible in the cloud and includes up to 4, 8, 16, 24, 30, 36 CPU cores, such cores may or may not be configured to be operationally coupled to a portion of one or more FPGAs.

[0645] Por exemplo, um bastidor para servidores acessível na nuvem 300 pode ser fornecido em que o servidor inclui uma instância de núcleo de CPU que tem cerca de 4 núcleos de CPU a cerca de 16 a cerca de 24 núcleos de CPU que são operacionalmente conectados a uma instância de FPGA. Por exemplo, uma instância de FPGA pode ser fornecida, tal como em que um tamanho médio de um FPGA é X, e o FPGA incluído pode ser de um tamanho de cerca de 1/8X, X, 2,5X até 8X, ou até mesmo cerca de 16X, ou mais. Em vários casos, núcleos de CPU/GPU/QPU adicionais e/ou FPGAs podem ser incluídos e/ou fornecidos como uma instância combinada, tal como em que há uma grande quantidade de dados para processar, e em que o número de núcleos de CPU é selecionado de modo a manter o FPGA (ou FPGAs) ocupado em tempo integral. Portanto, a razão entre CPUs e FPGA (ou FPGAs) pode ser proporcionada sendo combinada de maneira a otimizar o fluxo de dados e, assim, o sistema pode ser configurado de modo a ser elasticamente aumentado ou diminuído conforme necessário, por exemplo, para minimizar despesas em mesmo tempo que se otimiza a utilização com base no fluxo de trabalho.[0645] For example, a cloud accessible server rack 300 may be provided wherein the server includes a CPU core instance having from about 4 CPU cores to about 16 to about 24 CPU cores that are operatively connected to an FPGA instance. For example, an FPGA instance may be provided, such as wherein an average size of an FPGA is X, and the included FPGA may be of a size of about 1/8X, X, 2.5X up to 8X, or even about 16X, or more. In various cases, additional CPU/GPU/QPU cores and/or FPGAs may be included and/or provided as a combined instance, such as wherein there is a large amount of data to process, and wherein the number of CPU cores is selected so as to keep the FPGA(s) busy at all times. Therefore, the ratio of CPUs to FPGAs (or FPGAs) can be provided by being matched in a way that optimizes data flow, and thus the system can be configured to be elastically scaled up or down as needed, for example, to minimize overhead while optimizing utilization based on workflow.

[0646] Entretanto, quando a CPU (ou CPUs) não gera trabalho o suficiente para manter o FPGA ocupado e/ou completamente utilizado, a configuração será menos que ideal. É fornecida no presente documento, portanto, uma arquitetura flexível de uma ou mais instâncias, que podem ser diretamente acopladas umas às outras, ou podem ter a capacidade de serem acopladas umas às outras, de uma maneira que é adaptada de modo que o software/hardware de CPU/FPGA sejam executados de modo eficiente de modo a garantir que as presentes CPUs/GPUs/QPUs alimentam idealmente o FPGA (ou FPGAs) disponível, e/ou uma porção do mesmo, de modo a manter ambas as plataformas de instância ocupadas durante todos os tempos de execução. Em seguida, permitir que tal sistema seja acessível a partir da nuvem garantirá que uma pluralidade de dados seja fornecida ao sistema de modo a ser colocada em fila pelo gerenciador de fluxo de trabalho e direcionada para os recursos de CPU/FPGA específicos que são configurados e têm a capacidade para receber e processar os dados de uma maneira idealmente eficiente.[0646] However, when the CPU(s) does not generate enough work to keep the FPGA busy and/or fully utilized, the configuration will be less than ideal. Provided herein, therefore, is a flexible architecture of one or more instances, which may be directly coupled to each other, or may have the ability to be coupled to each other, in a manner that is tailored so that the CPU/FPGA software/hardware runs efficiently so as to ensure that the present CPUs/GPUs/QPUs optimally feed the available FPGA(s), and/or a portion thereof, so as to keep both instance platforms busy at all times of execution. Then, enabling such a system to be accessible from the cloud will ensure that a plurality of data is provided to the system so that it can be queued by the workflow manager and directed to the specific CPU/FPGA resources that are configured and have the capacity to receive and process the data in an optimally efficient manner.

[0647] Por exemplo, em algumas configurações, instâncias acessíveis na nuvem podem incluir uma pluralidade de números e tamanhos de CPUs/GPUs/QPUs, e adicionalmente, pode haver instâncias acessíveis na nuvem que incluem uma pluralidade de números e tamanhos de FPGAs (ou ASICs) e/ou QPUs. Pode até mesmo haver instâncias que tenham uma combinação dessas instâncias. Entretanto, em várias iterações, as instâncias de CPU/GPU/QPU e/ou FPGA/QPU e/ou misturadas fornecidas podem ter muito mais de uma instância e/ou muito menos da outra instância para executar eficientemente as presentes plataformas de processamento de segmentação BioIT reveladas no presente documento. Consequentemente, são apresentados no presente documento sistemas e arquiteturas, combinações flexíveis dos mesmos e/ou métodos para implantar os mesmos para a formação e uso eficientes de uma plataforma de processamento de bioinformática e/ou genômica de segmentações, tal como é tornado acessível por meio da nuvem 50.[0647] For example, in some configurations, cloud-accessible instances may include a plurality of numbers and sizes of CPUs/GPUs/QPUs, and additionally, there may be cloud-accessible instances that include a plurality of numbers and sizes of FPGAs (or ASICs) and/or QPUs. There may even be instances that have a combination of such instances. However, in various iterations, the provided CPU/GPU/QPU and/or FPGA/QPU and/or mixed instances may have far more of one instance and/or far less of the other instance to efficiently execute the present BioIT segmentation processing platforms disclosed herein. Accordingly, systems and architectures, flexible combinations thereof, and/or methods for deploying the same for efficient formation and use of a bioinformatics and/or genomics segmentation processing platform as made accessible via the cloud 50 are disclosed herein.

[0648] Em tais sistemas, o número e as configurações das CPU (ou CPUs)/GPUs/QPUs selecionadas podem ser selecionados e configurados para processar as operações menos computacionalmente intensivas, e o número e as configurações de FPGA (ou FPGAs) e/ou QPUs podem ser adaptados para manipular as tarefas computacionalmente intensivas, tal como em que os dados são passados de modo ininterrupto para frente e para trás entre as instâncias de CPU/GPU/QPU e FPGA/QPU. Adicionalmente, uma ou mais memórias podem ser fornecidas para armazenamento de dados, por exemplo, dados de resultados, entre as várias etapas dos procedimentos e/ou entre os vários tipos de instância diferentes, evitando, assim, um período substancial de latência de instância. Especificamente, durante mapeamento e alinhamento, muito pouco da CPU/GPU é utilizado, devido à natureza intensiva das computações, em que essas tarefas são configuradas para serem realizadas pelas implantações de hardware. Do mesmo modo, durante chamada de variante, as tarefas podem ser divididas de tal forma para serem distribuídas de modo aproximadamente uniforme entre as instâncias de CPU/FPGA em suas tarefas, tal como quando operações de Smith-Waterman e HMM podem ser realizadas pelo hardware e diversas outras operações podem ser realizadas por software operado em uma ou mais instâncias de CPU/GPU/QPU.[0648] In such systems, the number and configurations of selected CPU(s)/GPUs/QPUs may be selected and configured to process the least computationally intensive operations, and the number and configurations of FPGA(s) and/or QPUs may be adapted to handle computationally intensive tasks, such as where data is seamlessly passed back and forth between CPU/GPU/QPU and FPGA/QPU instances. Additionally, one or more memories may be provided for storing data, e.g., results data, between the various steps of the procedures and/or between the various different instance types, thereby avoiding a substantial period of instance latency. Specifically, during mapping and alignment, very little of the CPU/GPU is utilized due to the intensive nature of the computations that these tasks are configured to be performed by the hardware implementations. Likewise, during variant calling, tasks can be divided in such a way as to be approximately evenly distributed among the CPU/FPGA instances in their tasks, such as when Smith-Waterman and HMM operations can be performed by hardware and various other operations can be performed by software running on one or more CPU/GPU/QPU instances.

[0649] Consequentemente, os parâmetros de arquitetura apresentados no presente documento não são necessariamente limitados à arquitetura de um conjunto, mas, em vez disso, o sistema é configurado a fim de ter mais flexibilidade para organizar suas implantações e depender do gerenciador de fluxo de trabalho para determinar quais instâncias estão ativas quando, como e por quanto tempo, e direcionar quais computações são realizadas em quais instâncias. Por exemplo, o número de CPUs e/ou FPGAs a serem colocados online, e operacionalmente acoplados uns aos outros, deve ser selecionado e configurado de tal maneira que as CPUs e os FPGAs ativados, assim como seu software/hardware atendentes, sejam mantidas idealmente ocupadas. Particularmente, o número de CPUs, e seu funcionamento, deve ser configurado de modo a manter o número de FPGAs, ou uma porção dos mesmos, ocupado em tempo integral, de modo que as CPUs estejam ideal e eficientemente alimentando o FPGA (ou FPGAs) de modo a manter ambas as instâncias e suas partes componentes funcionando de modo proficiente.[0649] Accordingly, the architectural parameters presented herein are not necessarily limited to the architecture of a cluster, but rather the system is configured to have more flexibility in organizing its deployments and relying on the workflow manager to determine which instances are active when, how, and for how long, and direct which computations are performed on which instances. For example, the number of CPUs and/or FPGAs to be brought online, and operationally coupled to each other, should be selected and configured in such a manner that the activated CPUs and FPGAs, as well as their attendant software/hardware, are kept optimally busy. In particular, the number of CPUs, and their operation, should be configured so as to keep the number of FPGAs, or a portion thereof, busy at all times, such that the CPUs are optimally and efficiently feeding the FPGA(s) so as to keep both instances and their component parts running proficiently.

[0650] Portanto, dessa maneira, o controlador de gerenciamento de fluxo de trabalho do sistema pode ser configurado para avaliar o fluxo de trabalho e organizar e dividir o mesmo de modo que as tarefas que podem ser mais idealmente realizadas pelas CPUs/GPUs/QPUs sejam direcionadas ao número de CPUs necessárias de modo a realizar idealmente essas operações e que as tarefas que podem ser mais idealmente realizadas pelo FPGA (ou FPGAs)/ASICs/QPUs sejam direcionadas ao número de FPGAs necessárias de modo a realizar idealmente essas operações. Uma memória elástica e/ou eficiente pode ser adicionalmente incluída para transmitir eficientemente os resultados dessas operações de uma instância para a outra. Dessa maneira, uma combinação de máquinas e memórias pode ser configurada e combinada de modo a ser idealmente escalada com base na extensão do trabalho a ser realizado, e a configuração e o uso ideais das instâncias de modo a realizar melhor esse trabalho de modo eficiente e mais econômico.[0650] Thus, in this manner, the workflow management controller of the system may be configured to evaluate the workflow and organize and divide the workflow such that the tasks that can most optimally be performed by the CPUs/GPUs/QPUs are directed to the number of CPUs required to optimally perform those operations, and the tasks that can most optimally be performed by the FPGA(s)/ASICs/QPUs are directed to the number of FPGAs required to optimally perform those operations. An elastic and/or efficient memory may be additionally included to efficiently transmit the results of these operations from one instance to another. In this manner, a combination of machines and memories may be configured and combined to optimally scale based on the extent of the work to be performed, and the optimal configuration and use of the instances to best perform that work efficiently and cost effectively.

[0651] Especificamente, as arquiteturas baseadas em nuvem apresentadas no presente documento mostram que várias deficiências conhecidas em ofertas arquitetônicas anteriores podem causar ineficiências que podem ser superadas permitindo flexivelmente que mais instâncias de núcleo de CPU/GPU/QPU acessem várias instâncias de hardware diferentes, por exemplo, de FPGAs, ou porções dos mesmos, que foram organizadas de uma maneira mais intencional de modo a serem otimizadas sendo implantadas nesse formato. Por exemplo, o sistema pode ser configurado de modo que haja uma maior proporção de instâncias de CPU/GPU disponíveis que podem ser acessíveis remotamente de modo a estarem ocupadas em tempo integral produzindo dados de resultados que podem ser idealmente alimentados à instância (ou instâncias) de FPGA/QPU disponível de modo a manter a instância (ou instâncias) de FPGA selecionada ocupada em tempo integral. Portanto, é desejável fornecer uma arquitetura estruturada que é tão eficiente quanto possível e está ocupada em tempo integral. Deve ser observado que configurações em que pouquíssimas CPUs alimentam em muitíssimos FPGAs, de forma que um ou mais dos FPGAs que estão sendo subutilizadas não sejam eficientes e devam ser evitadas.[0651] Specifically, the cloud-based architectures presented herein show that several known shortcomings in prior architectural offerings can cause inefficiencies that can be overcome by flexibly allowing more CPU/GPU/QPU core instances to access multiple different hardware instances, e.g., FPGAs, or portions thereof, that have been organized in a more intentional manner so as to be optimized for deployment in that format. For example, the system may be configured such that there is a higher proportion of available CPU/GPU instances that can be remotely accessible so as to be busy full-time producing results data that can be optimally fed to the available FPGA/QPU instance(s) so as to keep the selected FPGA instance(s) busy full-time. Therefore, it is desirable to provide a structured architecture that is as efficient as possible and busy full-time. It should be noted that configurations where very few CPUs feed into very many FPGAs, such that one or more of the FPGAs are being underutilized, are not efficient and should be avoided.

[0652] Em uma implantação, conforme pode ser observado em relação à Figura 40B, a arquitetura pode ser configurada a fim de incluir virtualmente diversas camadas ou níveis diferentes, tais como um primeiro nível que tem um primeiro número de X núcleos de CPU, por exemplo, de 4 a cerca de 30 núcleos de CPU, e um segundo nível que tem de1 a12 ou mais instâncias de FPGA, em que o tamanho dos FPGAs pode estar na faixa de pequeno a médio a grande, etc. Um terceiro nível de núcleos de CPU e/ou um quarto nível de FPGAs adicionais e assim por diante também pode estar incluído. Logo, existem muitas instâncias disponíveis no servidor baseado em nuvem 300, tais instâncias que incluem simplesmente CPUs ou GPUs e/ou instâncias que incluem FPGAs e/ou combinações das mesmas, tais como em um ou mais níveis descritos no presente documento. Consequentemente, de uma forma tal como essa, a arquitetura pode ser organizada de modo flexível e elástico de forma que as funções de computação mais intensivas específicas sejam realizadas pelas instâncias de hardware ou QPUs e essas funções que podem ser operadas através das CPUs são direcionadas à CPU/QPU apropriada no nível apropriado para propósitos de processamento geral e, quando necessário, o número de instâncias de CPU/FPGA pode ser aumentado ou diminuído dentro do sistema conforme seja necessário.[0652] In a deployment, as can be seen with respect to Figure 40B, the architecture can be configured to include virtually several different layers or tiers, such as a first tier that has a first number of X CPU cores, e.g., from 4 to about 30 CPU cores, and a second tier that has from 1 to 12 or more FPGA instances, where the size of the FPGAs can be in the range of small to medium to large, etc. A third tier of CPU cores and/or a fourth tier of additional FPGAs and so on can also be included. Thus, there are many instances available on the cloud-based server 300, such instances that include simply CPUs or GPUs and/or instances that include FPGAs and/or combinations thereof, such as in one or more tiers described herein. Consequently, in such a way, the architecture can be organized in a flexible and elastic way so that specific more intensive computing functions are performed by the hardware instances or QPUs and those functions that can be operated by the CPUs are directed to the appropriate CPU/QPU at the appropriate level for general processing purposes and, when necessary, the number of CPU/FPGA instances can be increased or decreased within the system as needed.

[0653] Por exemplo, uma arquitetura pode ser elasticamente dimensionada para minimizar a despesa do sistema e maximizar, ao mesmo tempo, a utilização ideal. Especificamente, a arquitetura pode ser configurada para maximizar eficiência e reduzir latência combinando-se as diversas instâncias em diversos níveis virtuais diferentes. Particularmente, uma pluralidade, por exemplo, uma parte significativa e/ou todas, das instâncias de CPU/GPU de Nível 1 podem ser configuradas para alimentação nas diversas instâncias de FPGA de Nível 2, que foram especificamente configuradas para realizar funções específicas, tal como um FPGA de mapeamento e um FPGA de alinhamento. Em um nível adicional, uma ou mais CPUs adicionais (ou o mesmo que o Nível 1) podem ser fornecidas, tal como para realizar uma classificação e/ou operações de desduplicação e/ou várias operações de chamada de variante. Ainda adicionalmente, uma ou mais camadas adicionais de FPGAs podem ser configuradas para realizar um Needleman-Wunsch, Smith-Waterman, um HMM, operação de chamada de variante e similares. Portanto, as CPUs de primeiro nível podem ser engatadas para formar um nível inicial de uma análise de genômica, tal como para realizar etapas de processamento geral, incluindo a colocação em fila e a preparação de dados para análise de segmentação adicional, tais dados, uma vez processados por uma ou uma multiplicidade de CPUs, podem ser alimentados em um ou mais níveis adicionais de instâncias de FPGA dedicadas, tal como em que a instância de FPGA é configurada para realizar funções de computação intensiva.[0653] For example, an architecture may be elastically scaled to minimize system overhead while maximizing optimal utilization. Specifically, the architecture may be configured to maximize efficiency and reduce latency by combining the multiple instances into multiple different virtual tiers. In particular, a plurality, e.g., a significant portion and/or all, of the Tier 1 CPU/GPU instances may be configured to feed into the multiple Tier 2 FPGA instances, which have been specifically configured to perform specific functions, such as a mapping FPGA and an alignment FPGA. At a further tier, one or more additional CPUs (or the same as Tier 1) may be provided, such as to perform a sort and/or deduplication operations and/or various variant calling operations. Still further, one or more additional tiers of FPGAs may be configured to perform a Needleman-Wunsch, Smith-Waterman, an HMM, variant calling operation, and the like. Therefore, the first-tier CPUs may be engaged to form an initial level of a genomics analysis, such as to perform general processing steps, including queuing and preparing data for further segmentation analysis, such data, once processed by one or a plurality of CPUs, may be fed to one or more additional levels of dedicated FPGA instances, such as where the FPGA instance is configured to perform compute-intensive functions.

[0654] Dessa forma, em uma implantação particular, as instâncias de CPU/GPU na segmentação roteiam dados, uma vez preparados, à uma ou duas instâncias de mapeamento e alinhamento de FPGA de Nível 2. Uma vez que o mapeamento foi realizado, os dados de resultado podem ser armazenados em uma memória e/ou, então, alimentados em uma instância de alinhamento, em que o alinhamento pode ser realizado, por exemplo, por pelo menos uma instância de FPGA de Nível 2 dedicada. Do mesmo modo, os dados mapeados e alinhados processados podem ser, então, armazenados em uma memória e/ou direcionados para uma instância de CPU de Nível 3 para processamento adicional, a qual pode ser a mesma instância de Nível 1 ou uma instância diferente, tal como para realizar uma função de análise genômica menos intensa em processamento, tal como para realizar uma função de classificação. Adicionalmente, uma vez que as CPUs de Nível 3 realizaram seu processamento, os dados resultantes podem ser, então, direcionados de volta para as outras instâncias de Nível 2 dos FPGAs ou para uma instância de FPGA de Nível 4, tal como para funções intensas de processamento genômico adicionais, tais como para realizar uma função de processamento de Needleman-Wunsch (NW), SmithWaterman (SW), por exemplo, em uma instância de FPGA dedicado a NW ou SW. Do mesmo modo, uma vez que a análise de SW foi realizada, tal como por meio de um FPGA dedicado a SW, então, os dados processados podem ser enviados para uma ou mais memórias associadas e/ou adicionalmente para baixo da segmentação de processamento, tal como para outra, por exemplo, Nível 4 ou 5 ou de volta para o Nível 1 ou 3, instância de CPU e/ou FPGA, tal como para realizar análise de HMM e/ou Variante Chamada, tal como em um FPGA dedicado e/ou camada adicional de núcleo de processamento de CPU.[0654] Thus, in a particular implementation, the CPU/GPU instances in the slicer route data, once prepared, to one or two Tier 2 FPGA mapping and alignment instances. Once mapping has been performed, the result data may be stored in memory and/or otherwise fed to an alignment instance, where alignment may be performed, for example, by at least one dedicated Tier 2 FPGA instance. Likewise, the processed mapped and aligned data may then be stored in memory and/or directed to a Tier 3 CPU instance for further processing, which may be the same Tier 1 instance or a different instance, such as to perform a less compute-intensive genomic analysis function, such as to perform a classification function. Additionally, once the Level 3 CPUs have performed their processing, the resulting data may then be routed back to the other Level 2 FPGA instances or to a Level 4 FPGA instance, such as for additional genomic processing intensive functions, such as to perform a Needleman-Wunsch (NW), SmithWaterman (SW) processing function, for example, on a dedicated NW or SW FPGA instance. Likewise, once SW analysis has been performed, such as via a dedicated SW FPGA, then the processed data may be sent to one or more associated memories and/or further down the processing thread, such as to another, e.g., Level 4 or 5, or back to the Level 1 or 3 CPU and/or FPGA instance, such as to perform HMM and/or Variant Call analysis, such as on a dedicated FPGA and/or additional layer of CPU processing core.

[0655] De uma forma tal como essa, os problemas de latência e eficiência podem ser superados combinando-se os diversos casos diferentes, em um ou mais níveis diferentes, a fim de fornecer uma plataforma de segmentação para processamento genômico. Tal configuração pode envolver mais de uma instância de escalonamento e/ou combinação, em que as instâncias podem ser configuradas de forma que as mesmas se especializem na realização de funções dedicadas. Em tal caso, a instância de FPGA de Mapeamento realiza mapeamento apenas e, da mesma forma, a instância de FPGA de alinhamento realiza apenas alinhamento e, assim por diante, em vez de uma única instância que realiza processamento de ponta a ponta da segmentação. Porém, em outras configurações, um ou mais dos FPGAs podem ser pelo menos parcialmente reconfiguradas, tais como entre realizar as tarefas de segmentação. Por exemplo, em certas modalidades, como as análises de genômica a serem realizadas no presente documento são um processo de múltiplas etapas, o código de um FPGA pode ser configurado de modo a ser alterado na metade do processo de processamento, tal como quando o FPGA conclui a operação de mapeamento, o mesmo pode ser reconfigurado de modo a realizar um ou mais dentre alinhamento, chamada de variante, Smith-Waterman, HMM e similares.[0655] In such a manner, latency and efficiency issues may be overcome by combining the various different instances, at one or more different levels, in order to provide a segmentation platform for genomic processing. Such a configuration may involve more than one scaling and/or combining instance, where the instances may be configured such that they specialize in performing dedicated functions. In such a case, the Mapping FPGA instance performs only mapping, and similarly, the Alignment FPGA instance performs only alignment, and so on, rather than a single instance performing end-to-end segmentation processing. However, in other configurations, one or more of the FPGAs may be at least partially reconfigured, such as between performing segmentation tasks. For example, in certain embodiments, as the genomic analyses to be performed herein are a multi-step process, the code of an FPGA may be configured to be changed midway through the processing process, such as when the FPGA completes the mapping operation, it may be reconfigured to perform one or more of alignment, variant calling, Smith-Waterman, HMM, and the like.

[0656] Logo, o gerenciador de segmentação, por exemplo, sistema de gerenciamento de fluxo de trabalho, pode funcionar para gerenciar a fila de solicitações de processamento genômico que é formulada pela CPU de Nível I casos a fim de serem quebradas em trabalhos distintos, agregadas e serem roteadas para a CPU específica de trabalho apropriado e, então, para as instâncias de FPGA específica de trabalho para processamento adicional, tal como para mapeamento e/ou alinhamento, por exemplo, em Nível 2, em que os dados mapeados e alinhados, uma vez processados, podem ser enviados para trás ou para frente para o próximo nível de processamento por CPU/FPGA dos dados de resultados, tal como para o desempenho de diversas etapas no módulo de chamada de variante.[0656] Thus, the segmentation manager, e.g., workflow management system, may function to manage the queue of genomic processing requests that are formulated by Level I CPU instances to be broken into distinct jobs, aggregated, and routed to the appropriate job-specific CPU and then to job-specific FPGA instances for further processing, such as for mapping and/or alignment, e.g., at Level 2, wherein the mapped and aligned data, once processed, may be sent backward or forward to the next level of CPU/FPGA processing of the result data, such as for performance of various steps in the variant calling module.

[0657] Por exemplo, a função de chamada de variante pode ser dividida em uma pluralidade de operações, as quais podem ser realizadas em software, então, direcionadas a processamento de Smith-Waterman e/ou HMM em um ou mais casos de hardware de FPGA e, então, podem ser enviadas para uma CPU para operações de chamada de variante contínuas, tal como quando toda a plataforma é elástica e/ou eficazmente dimensionada e implantada para minimizar o custo das instâncias de FPGA caros, enquanto se maximiza a utilização, minimiza a latência e, portanto, otimiza operações. Consequentemente, dessa forma, menos instâncias de hardware são necessárias devido a suas capacidades de processamento puras e especificidade com fio e, portanto, o número de FPGAs para o número de CPUs podem ser minimizadas e seu uso, por exemplo, dos FPGAs, pode ser maximizado e, portanto, o sistema otimizado a fim de manter todas as instâncias ocupadas em tempo integral. Tal configuração é idealmente projetada para análise de processamento genômico, especialmente para mapeamento, alinhamento e chamada de variante.[0657] For example, the variant calling function may be split into a plurality of operations, which may be performed in software, then routed to Smith-Waterman and/or HMM processing on one or more FPGA hardware instances, and then may be dispatched to a CPU for continuous variant calling operations, such as when the entire platform is elastic and/or efficiently scaled and deployed to minimize the cost of expensive FPGA instances, while maximizing utilization, minimizing latency, and thus optimizing operations. Consequently, in this way, fewer hardware instances are required due to their pure processing capabilities and wired specificity, and thus the number of FPGAs to the number of CPUs may be minimized and their usage of, e.g., the FPGAs may be maximized, and thus the system optimized to keep all instances busy at all times. Such a configuration is ideally designed for genomic processing analysis, especially for mapping, alignment, and variant calling.

[0658] Um elemento estrutural adicional que pode ser incluído, por exemplo, como uma fixação, à arquitetura de segmentação, revelada no presente documento, é um ou mais módulos de memória elásticos e/ou eficazes, os quais podem ser configurados para funcionar para fornecer armazenamento de bloco dos dados, por exemplo, dados de resultados, uma vez que os mesmos são transicionados através da segmentação. Consequentemente, um ou mais Armazenamentos de Dados de Bloco Elásticos (EBDS) e/ou um ou mais módulos de armazenamento de dados de bloco eficientes (flexíveis) podem ser inseridos entre um ou mais dos níveis de processamento, por exemplo, entre as diferentes instâncias e/ou níveis de instância. Em tal caso, o dispositivo de armazenamento pode ser configurado de modo que os dados sejam processados e os resultados sejam obtidos, os resultados processados podem ser direcionados ao dispositivo de armazenamento antes de serem roteados para o próximo nível de processamento, tal como por um módulo de processamento de FPGA dedicado. O mesmo dispositivo de armazenamento pode ser empregado entre todas as instâncias, ou níveis de instância, ou uma multiplicidade de dispositivos de armazenamento pode ser empregada entre as diversas instâncias e/ou níveis de instância, tal como para armazenar e/ou compilar e/ou para enfileirar os dados de resultados. Consequentemente, uma ou mais memórias podem ser fornecidas de modo que várias instâncias do sistema possam ser acopladas e/ou ter acesso à mesma memória de modo a terem a capacidade para ver e acessar arquivos iguais ou similares. Portanto, uma ou mais memórias elásticas (memórias com a capacidade para serem acopladas a uma pluralidade de instâncias sequencialmente) e/ou memórias eficientes (memórias com a capacidade para serem acopladas a uma pluralidade de instâncias simultaneamente) podem estar presentes, através das quais, as várias instâncias do sistema são configuradas para ler e gravar em memória igual ou similar.[0658] An additional structural element that may be included, e.g., as an attachment, to the slicing architecture disclosed herein is one or more elastic and/or efficient memory modules, which may be configured to function to provide block storage of the data, e.g., results data, as it is transitioned through the slicing. Accordingly, one or more Elastic Block Data Stores (EBDS) and/or one or more efficient (flexible) block data storage modules may be inserted between one or more of the processing levels, e.g., between different instances and/or instance levels. In such a case, the storage device may be configured such that as data is processed and results are obtained, the processed results may be directed to the storage device before being routed to the next processing level, such as by a dedicated FPGA processing module. The same storage device may be employed across all instances, or instance levels, or a plurality of storage devices may be employed across multiple instances and/or instance levels, such as for storing and/or compiling and/or queuing results data. Accordingly, one or more memories may be provided such that multiple instances of the system may be coupled to and/or have access to the same memory so as to have the ability to view and access the same or similar files. Accordingly, one or more elastic memories (memories with the ability to be coupled to a plurality of instances sequentially) and/or efficient memories (memories with the ability to be coupled to a plurality of instances simultaneously) may be present, whereby multiple instances of the system are configured to read from and write to the same or similar memory.

[0659] Por exemplo, em uma modalidade exemplificativa em relação às configurações que empregam tais memórias elásticas, antes de enviar dados diretamente a partir de uma instância e/ou um nível de processamento para outro, os dados podem ser roteados para um EBDS, ou outro dispositivo ou estrutura de memória, por exemplo, um bloco de memória eficaz, para armazenamento e, doravante, roteados para o módulo de processamento com fio apropriado. Especificamente, um armazenamento de bloco módulo pode ser fixado a um nó para armazenamento em memória em que os dados podem ser escritos ao BSD para armazenamento em um nível e o BSD pode ser invertido para outro nó para rotear os dados armazenados para o próximo nível de processamento. Dessa forma, um ou mais, por exemplo, múltiplos, módulos de BDS podem ser incluídos na segmentação e configurados para serem invertidos de um nó para o outro a fim de participar na transição de dados através da segmentação.[0659] For example, in an exemplary embodiment with respect to configurations employing such elastic memories, prior to sending data directly from one instance and/or one processing tier to another, the data may be routed to an EBDS, or other memory device or structure, e.g., an effective memory block, for storage and thereafter routed to the appropriate wired processing module. Specifically, a block storage module may be attached to a node for in-memory storage where data may be written to the BSD for storage at one tier and the BSD may be flipped to another node to route the stored data to the next processing tier. In this manner, one or more, e.g., multiple, BDS modules may be included in the segmentation and configured to be flipped from one node to another in order to participate in the transition of data across the segmentation.

[0660] Adicionalmente, conforme indicado acima, um Dispositivo de Armazenamento de Arquivo mais flexível pode ser empregado, tal como um dispositivo que tem capacidade para ser acoplado a uma ou mais instâncias concomitantemente, tal como sem ter que ser comutado de uma para a outra. De tal maneira, o sistema pode ser elasticamente escalado em cada nível do sistema, tal como em que, em cada nível, pode haver um número diferente de nós para processar os dados naquele nível, e, uma vez processados, os dados de resultados podem ser gravados em um ou mais dispositivos de EBDS associados que podem, então, ser comutados para o nível seguinte do sistema de modo a tornar os dados armazenados disponíveis para o nível seguinte dos processadores para o desempenho de suas tarefas específicas naquele nível.[0660] Additionally, as indicated above, a more flexible Archive Storage Device may be employed, such as a device that has the ability to be coupled to one or more instances concurrently, such as without having to be switched from one to another. In such a manner, the system may be elastically scaled at each level of the system, such that at each level there may be a different number of nodes to process the data at that level, and once processed, the result data may be written to one or more associated EBDS devices which may then be switched to the next level of the system so as to make the stored data available to the next level of processors for performance of their specific tasks at that level.

[0661] Consequentemente, existem muitas etapas na segmentação de processamento, por exemplo, em seus nós atendentes, uma vez que os dados são preparados para processar, por exemplo, pré-processar, em que os dados, uma vez preparados, são direcionados a uma instância de processamento apropriada em um nível em que os dados resultantes podem ser gerados, então, os dados de resultado podem ser armazenados, por exemplo, dentro de um dispositivo de EDS, enfileirados e preparados para o próximo estágio de processamento por meio de serem invertidos para o próximo nó de instâncias e roteados para a próxima instância para processamento pela próxima ordem de instâncias de processamento de FPGA e/ou CPU, em que dados de resultados adicionais podem ser gerados e, novamente, uma vez gerados, os dados de resultados podem ser direcionados de volta para o mesmo nível ou para frente para o próximo nível de EDS para armazenamento antes de ser avançado para o próximo estágio de processamento.[0661] Accordingly, there are many steps in the processing segmentation, e.g., at its attendant nodes, once the data is prepared for processing, e.g., preprocessing, wherein the data, once prepared, is directed to an appropriate processing instance at a level where resulting data can be generated, then the result data can be stored, e.g., within an EDS device, queued and prepared for the next processing stage by being inverted to the next node of instances and routed to the next instance for processing by the next order of FPGA and/or CPU processing instances, wherein additional result data can be generated, and again, once generated, the result data can be directed back to the same level or forward to the next level of EDS for storage before being advanced to the next processing stage.

[0662] Particularmente, em uma implantação específica, o fluxo através da segmentação pode parecer com o seguinte: CPU (por exemplo, um núcleo de 4 CPUs, ou instância C4): dados preparados (colocados em fila e/ou armazenados); FPGA (por exemplo, um FPGA 2XL - 1/8 de um servidor completo, ou uma instância F1): Mapeamento, armazenamento temporário; FPGA (por exemplo, um FPGA 2XL - 1/8 de um servidor completo ou uma instância F1): alinhamento, armazenamento temporário; CPU: classificação, armazenamento temporário; CPU: desduplicação, armazenamento temporário; CPU: chamada de variante 1, armazenamento temporário; FPGA (por exemplo, uma instância F1 ou 16XL ou F2): SmithWaterman, armazenamento temporário; FPGA (por exemplo, instância F1 ou F2): HMM, armazenamento temporário; CPU: chamada de variante 2, armazenamento temporário; CPU: VCGF, armazenamento temporário e assim por diante. Adicionalmente, um sistema de gerenciamento de fluxo de trabalho pode ser incluído para controlar e/ou direcionar o fluxo de dados através do sistema, tal como em que o WMS pode ser implantado em um núcleo de CPU, tal como uma CPU de 4 núcleos ou instância C4. Observa-se que uma ou mais dessas etapas podem ser realizadas em qualquer ordem lógica e podem ser implantadas por qualquer recurso adequadamente configurado, tal como implantadas em software e/ou hardware, em diversas combinações diferentes. E deve ser observado que qualquer uma dessas operações pode ser realizada em uma ou mais instâncias de CPU e uma ou mais instâncias de FPGA em um ou mais níveis teóricos de processamento, tal como para formar o processamento BioIT descrito no presente documento.[0662] In particular, in a particular deployment, the flow through the segmentation might look like the following: CPU (e.g., a 4-CPU core, or C4 instance): data prepared (queued and/or stored); FPGA (e.g., a 2XL FPGA - 1/8 of a full server, or an F1 instance): Mapping, temporary storage; FPGA (e.g., a 2XL FPGA - 1/8 of a full server, or an F1 instance): alignment, temporary storage; CPU: sorting, temporary storage; CPU: deduplication, temporary storage; CPU: variant 1 call, temporary storage; FPGA (e.g., an F1 or 16XL or F2 instance): SmithWaterman, temporary storage; FPGA (e.g., F1 or F2 instance): HMM, temporary storage; CPU: variant 2 call, temporary storage; CPU: VCGF, temporary storage, and so on. Additionally, a workflow management system may be included to control and/or direct the flow of data through the system, such as where the WMS may be deployed on a CPU core, such as a 4-core CPU or C4 instance. It is noted that one or more of these steps may be performed in any logical order and may be implemented by any suitably configured resource, such as implemented in software and/or hardware, in a variety of different combinations. And it should be noted that any of these operations may be performed on one or more CPU instances and one or more FPGA instances at one or more theoretical processing levels, such as to form the BioIT processing described herein.

[0663] Conforme indicado, um gerenciador de fluxo de trabalho pode ser incluído, tal como em quer o WMS é implantado em um ou mais núcleos de CPU. Portanto, em vários casos, o WMS pode ter um banco de dados operacionalmente acoplado ao mesmo. Em tal caso, o banco de dados inclui as várias operações ou trabalhos a serem colocados em fila, trabalhos pendentes, assim como o histórico de todos os trabalhos anterior ou atualmente a serem realizados. Como tal, o WMS monitora o sistema e o banco de dados para identificar quaisquer novos trabalhos a serem realizados. Consequentemente, quando um trabalho pendente é identificado, o WMS inicia um novo protocolo de análise nos dados e delega o mesmo ao nó (ou nós) de instância apropriado. Consequentemente, o gerenciador de fluxo de trabalho acompanha sabe onde todos os arquivos de entrada estão, armazenados, sendo processados ou a serem armazenados, e, portanto, direciona e instrui as instâncias dos vários nós de processamento a acessar os respectivos arquivos em cada localização, começar a ler os arquivos, começar a implantar as instruções de processamento e onde gravar os dados de resultados. E, portanto, o WMS direciona os sistemas de modo a passar os dados de resultados para nós de processamento de linha inativa. O WMS também determina quando novas instâncias precisam ser iniciadas e colocadas online de modo a permitir o escalonamento dinâmico de cada etapa ou nível do processamento. Portanto, o WMS identifica, organiza e direciona trabalhos distintos que têm que ser realizados em cada nível e direciona adicionalmente os dados de resultados que são gravados na memória a ser armazenada, e, uma vez que o trabalho é concluído, outro nó se inicia, lê o trabalho seguinte e realiza a operação iterativa seguinte.[0663] As indicated, a workflow manager may be included, such as where the WMS is deployed on one or more CPU cores. Therefore, in various cases, the WMS may have a database operationally coupled to it. In such a case, the database includes the various operations or jobs to be queued, pending jobs, as well as the history of all previous or currently being performed jobs. As such, the WMS monitors the system and the database to identify any new jobs to be performed. Accordingly, when a pending job is identified, the WMS initiates a new analysis protocol on the data and delegates the same to the appropriate instance node(s). Accordingly, the workflow manager keeps track of where all the input files are, stored, being processed, or to be stored, and therefore directs and instructs the instances of the various processing nodes to access the respective files at each location, begin reading the files, begin implementing the processing instructions, and where to write the result data. And so the WMS directs the systems to pass the result data to idle line processing nodes. The WMS also determines when new instances need to be started and brought online so that each step or level of processing can be dynamically scaled. So the WMS identifies, organizes, and directs the distinct jobs that need to be performed at each level, and further directs the result data that is written to memory for storage, and once the job is completed, another node starts up, reads the next job, and performs the next iterative operation.

[0664] De tal maneira, os trabalhos de entrada podem ser espalhados através de muitas instâncias diferentes, tais instâncias podem ser escaladas, por exemplo, independente ou coletivamente, incluindo menos ou mais instâncias. Essas instâncias podem ser empregadas para construir nós de modo a equilibrar mais eficientemente o uso dos recursos, em que tais instâncias podem compreender uma instância parcial ou completa. O gerenciador de fluxo de trabalho pode também direcionar e/ou controlar o uso de uma ou mais memórias, tal como entre as etapas de processamento reveladas no presente documento. As várias instâncias podem também incluir programação complementar de modo a permitir que as mesmas se comuniquem uma com a outra e/ou com as várias memórias, de modo a virtualizar o servidor. O WMS pode também incluir um estimador de carga de modo a controlar elasticamente o uso dos nós.[0664] In such a manner, input jobs may be spread across many different instances, such instances may be scaled, for example, independently or collectively, by including fewer or more instances. Such instances may be employed to construct nodes in order to more efficiently balance resource usage, such instances may comprise a partial or full instance. The workflow manager may also direct and/or control the usage of one or more memories, such as between the processing steps disclosed herein. The multiple instances may also include complementary programming to allow them to communicate with each other and/or with the multiple memories, in order to virtualize the server. The WMS may also include a load estimator in order to elastically control the usage of the nodes.

[0665] Adicionalmente, em relação ao uso de memórias, um ou mais EBDS ou outros dispositivos de armazenamento de dados e/ou arquivo adequadamente configurados podem ser fixados a um ou mais dos diversos nós, por exemplo, entre os diversos níveis de casos, tal como para armazenamento temporário entre as diversas etapas de processamento diferentes. Portanto, o dispositivo de armazenamento pode ser um único dispositivo de armazenamento configurado para ser acoplado a todas as várias instâncias, por exemplo, um bloco de memória eficiente, tal como armazenamento de arquivo elástico, ou podem ser múltiplos dispositivos de armazenamento, tal como um dispositivo de armazenamento por instância ou tipo de instância que é comutável entre as instâncias, por exemplo, dispositivo de armazenamento de bloco elástico. Consequentemente, de uma forma tal como essa, cada nível de instâncias de processamento e/ou memória pode ser elasticamente escalado em uma base conforme necessário, tal como entre cada um dos nós ou níveis de nós diferentes, tal como para processar um ou diversos genomas.[0665] Additionally, with respect to the use of memory, one or more EBDS or other suitably configured data and/or file storage devices may be attached to one or more of the plurality of nodes, e.g., across multiple instance levels, such as for temporary storage between multiple different processing steps. Thus, the storage device may be a single storage device configured to be attached to all of the plurality of instances, e.g., an efficient memory block such as elastic file storage, or it may be multiple storage devices, such as a storage device per instance or instance type that is switchable between instances, e.g., elastic block storage device. Accordingly, in such a manner, each tier of processing instances and/or memory may be elastically scaled on an as-needed basis, such as across each of the different nodes or node levels, such as to process one or multiple genomes.

[0666] Em vista da arquitetura no presente documento, um ou uma multiplicidade de genomas pode ser introduzida no sistema para processamento, tal como a partir de uma ou mais raias de uma célula de fluxo de um Sequenciador da Próxima Geração, conforme indicado na Figura 1. Especificamente, fornecer um sistema de servidor baseado em nuvem 300, conforme descrito no presente documento, permitirá que uma multiplicidade de trabalhos seja empilhada e/ou colocada em fila para processamento, tais trabalhos podem ser processados pelas várias instâncias diferenças do sistema simultânea ou sequencialmente. Portanto, a segmentação pode ser configurada para suportar uma multiplicidade de trabalhos sendo processados por uma matriz virtual de processadores que são acoplados a dispositivos de memória adequadamente configurados de modo a facilitar o processamento eficiente e dados de uma instância para outra. Ademais, conforme indicado, um único dispositivo de memória pode ser fornecido, em que o dispositivo de memória é configurado para ser acoplado a uma pluralidade de diferentes instâncias, por exemplo, ao mesmo tempo. Em outras instâncias, o dispositivo de memória pode ser um dispositivo de memória do tipo elástico que pode ser configurado para ser acoplado a uma primeira instância, por exemplo, em um único tempo, e, então, sendo reconfigurado e/ou desacoplado de outro modo da primeira instância e comutado para uma segunda instância.[0666] In view of the architecture herein, one or a plurality of genomes may be introduced into the system for processing, such as from one or more lanes of a flow cell of a Next Generation Sequencer, as indicated in Figure 1. Specifically, providing a cloud-based server system 300 as described herein will allow a plurality of jobs to be stacked and/or queued for processing, such jobs may be processed by the various different instances of the system simultaneously or sequentially. Accordingly, the segmentation may be configured to support a plurality of jobs being processed by a virtual array of processors that are coupled to appropriately configured memory devices so as to facilitate efficient processing and data from one instance to another. Furthermore, as indicated, a single memory device may be provided, wherein the memory device is configured to be coupled to a plurality of different instances, e.g., at the same time. In other instances, the memory device may be an elastic-type memory device that may be configured to be coupled to a first instance, for example, at a single time, and then being reconfigured and/or otherwise decoupled from the first instance and switched to a second instance.

[0667] Como tal, em uma implantação, um ou mais dispositivos de armazenamento de bloco elásticos podem ser incluídos, e o sistema pode ser configurado de modo a incluir um mecanismo de controle de comutação. Por exemplo, um controlador de comutador pode ser incluído e configurado de modo a controlar o funcionamento de tais dispositivos de memória na medida em que os mesmos comutam de uma instância para outra. Essa configuração pode ser disposta de modo a permitir a transferência de dados através da segmentação de processadores dedicados, aumentando, assim, a eficiência do sistema, por exemplo, dentre todas as instâncias, tal como fluindo os dados através do sistema, permitindo que cada nível seja escalado independentemente e coloque os processadores online conforme necessário para escalar eficientemente.[0667] As such, in a deployment, one or more elastic block storage devices may be included, and the system may be configured to include a switching control mechanism. For example, a switch controller may be included and configured to control the operation of such memory devices as they switch from one instance to another. Such a configuration may be arranged to allow data transfer by segmenting dedicated processors, thereby increasing system efficiency, e.g., across all instances, such as by streaming data through the system, allowing each tier to scale independently and bringing processors online as needed to scale efficiently.

[0668] Adicionalmente, o algoritmo de sistema de gerenciamento de fluxo de trabalho pode ser configurado de modo a determinar o número de trabalhos, o número de recursos para processar esses trabalhos, a ordem do processamento e direciona o fluxo de dados de um nó para outro pela inversão ou comutação de um ou mais dispositivos de comutação flexíveis e, quando necessário, pode colocar recursos adicionais online para manipular um aumento no fluxo de trabalho. Deve ser observado que essa configuração pode ser adaptada de modo a evitar a cópia dos dados de uma instância para a próxima para a próxima, o que é ineficiente e leva muito tempo. Em vez disso, a inversão do armazenamento elástico de um conjunto de instâncias para outro, por exemplo, puxando o mesmo de um nó e fixando a um segundo nó, pode aumentar grandemente a eficiência do sistema. Ademais, em vários casos, em vez de empregar EBSD, um ou mais dispositivos de armazenamento de arquivo elásticos, por exemplo, dispositivos de memória única com a capacidade para ser acoplado a uma multiplicidade de instâncias sem precisar ser invertido de uma para outra, pode ser empregado, de modo a aumentar a transmissão de dados entre as instâncias, tornando o sistema ainda mais eficiente. Adicionalmente, deve ser observado, conforme indicado anteriormente no presente documento, em outra configuração, as CPUs da arquitetura podem ser diretamente acopladas umas às outras. Igualmente, os vários FPGAs podem ser diretamente acoplados uns aos outros. E, conforme indicado acima, as CPUs podem ser diretamente acopladas aos FPGAs, tal como em que tal acoplamento é por meio de uma interface de acoplamento firme conforme descrito acima.[0668] Additionally, the workflow management system algorithm may be configured to determine the number of jobs, the number of resources to process those jobs, the order of processing, and direct the flow of data from one node to another by flipping or switching one or more flexible switching devices, and when necessary, may bring additional resources online to handle an increase in workflow. It should be noted that this configuration may be adapted to avoid copying data from one instance to the next, which is inefficient and time-consuming. Instead, flipping elastic storage from one set of instances to another, e.g., pulling it from one node and pinning it to a second node, may greatly increase the efficiency of the system. Furthermore, in many cases, instead of employing EBSD, one or more elastic file storage devices, e.g., single memory devices with the ability to be coupled to a plurality of instances without needing to be flipped from one to another, may be employed, so as to increase data throughput between instances, making the system even more efficient. Additionally, it should be noted, as indicated earlier in this document, in another configuration, the CPUs of the architecture may be directly coupled to each other. Likewise, the multiple FPGAs may be directly coupled to each other. And, as indicated above, the CPUs may be directly coupled to the FPGAs, such as where such coupling is via a tight coupling interface as described above.

[0669] Consequentemente, em relação ao armazenamento de usuário e acesso dos dados de resultados gerados, a partir de uma ampla perspectiva do sistema, todos os dados de resultados gerados não precisam ser armazenados. Por exemplo, os dados de resultados gerados estarão tipicamente em um formato de arquivo particular, por exemplo, um arquivo BCL, FASTQ, SAM, BAM, CRAM, VCF. Entretanto, cada um desses arquivos é extensivo e o armazenamento de todos os mesmos consumiria muita memória incorrendo, assim, em muita despesa. No entanto, uma vantagem dos presentes dispositivos, sistemas e métodos no presente documento é que todos esses arquivos não precisam ser armazenados. Em vez disso, dadas as rápidas velocidades de processamento e/ou as rápidas taxas de compactação e descompactação alcançáveis pelos componentes e métodos do sistema, apenas um único formato de arquivo, por exemplo, um formato de arquivo compactado, precisa ser armazenado, tal como no banco de dados baseado em nuvem 400. Especificamente, apenas um único formato de arquivo de dados precisa ser armazenado, a partir de tal formato de arquivo, implantando os dispositivos e métodos do sistema, todos os outros formatos de arquivo podem ser derivados. E, por causa das altas taxas de compactação e descompactação alcançadas pelo sistema, o mesmo é tipicamente um arquivo compactado, por exemplo, um arquivo CRAM.[0669] Accordingly, with respect to user storage and access of the generated results data, from a system wide perspective, all of the generated results data need not be stored. For example, the generated results data will typically be in a particular file format, e.g., a BCL, FASTQ, SAM, BAM, CRAM, VCF file. However, each of these files is extensive and storing all of them would consume a lot of memory and thus incur a lot of expense. However, an advantage of the present devices, systems and methods herein is that all of these files need not be stored. Rather, given the fast processing speeds and/or fast compression and decompression rates achievable by the system's components and methods, only a single file format, e.g., a compressed file format, need be stored, such as in the cloud-based database 400. Specifically, only a single data file format need be stored, from which file format, by deploying the system's devices and methods, all other file formats can be derived. And, because of the high compression and decompression rates achievable by the system, the same is typically a compressed file, e.g., a CRAM file.

[0670] Particularmente, conforme pode ser observado em relação à Figura 40A, em uma implantação, um usuário de um recurso de computação local 100 pode transferir por upload dados, tais como dados de genômica, por exemplo, um arquivo BCL e/ou FASTQ, para o sistema por meio da nuvem 50 para recebimento pelo recurso de computação baseado em nuvem, por exemplo, o servidor 300. O servidor 300 armazenará, então, temporariamente os dados 400 ou começará a processar os dados em conformidade com a solicitação de trabalhos pelo usuário 100. Ao processar os dados de entrada, o recurso de computação 300 gerará, assim, os dados de resultados, tal como em um arquivo SAM ou BAM e/ou VCF. O sistema pode, então, armazenar um ou mais desses arquivos, ou pode compactar um ou mais desses arquivos e armazenar aqueles. Entretanto, a fim de reduzir o custo e fazer mais eficientemente uso dos recursos, o sistema pode armazenar um único arquivo, por exemplo, compactado, a partir de tal arquivo, todos os outros formatos de arquivo podem ser gerados, tal como com o uso dos dispositivos e métodos revelados no presente documento. Consequentemente, o sistema é configurado para gerar arquivos de dados, por exemplo, dados de resultados, que podem ser armazenados em um banco de dados 400 associado ao servidor 300 que é acessível por meio da nuvem 50, de maneira que seja econômico.[0670] In particular, as can be seen with respect to Figure 40A, in one implementation, a user of a local computing resource 100 may upload data, such as genomic data, e.g., a BCL and/or FASTQ file, to the system via the cloud 50 for receipt by the cloud-based computing resource, e.g., the server 300. The server 300 will then either temporarily store the data 400 or begin processing the data in accordance with the job request by the user 100. Upon processing the input data, the computing resource 300 will thereby generate result data, such as in a SAM or BAM and/or VCF file. The system may then store one or more of these files, or may compress one or more of these files and store those. However, in order to reduce cost and make more efficient use of resources, the system may store a single file, e.g., compressed, from which all other file formats may be generated, such as using the devices and methods disclosed herein. Accordingly, the system is configured to generate data files, e.g., results data, which may be stored in a database 400 associated with server 300 that is accessible via cloud 50, in a cost-effective manner.

[0671] Consequentemente, com o uso de um recurso de computação local 100, um usuário do sistema pode fazer logon e acessar o servidor 300 baseado em nuvem 50, pode transferir por upload dados para o servidor 300 ou banco de dados 400 e pode solicitar que um ou mais trabalhos sejam realizados nesses dados. O sistema 300 realizará, então, os trabalhos solicitados e armazenará os dados de resultados no banco de dados 400. Conforme observado, em casos particulares, o sistema 300 armazenará os dados de resultados gerados em um único formato de arquivo, tal como um arquivo CRAM. Ademais, com o clique de um botão, o usuário pode acessar o arquivo armazenado e, com outro clique de um botão, todos os outros formatos de arquivo podem, então, ser tornados acessíveis. Por exemplo, em conformidade com os métodos revelados no presente documento, dadas as capacidades de processamento rápido dos sistemas, que seriam, então, processadas e geradas em segundo plano, por exemplo, imediatamente, diminuindo, assim, o tempo de processamento e a carga assim como os custos de armazenamento, tal como em que as funções de computação e armazenamento são enfeixadas em conjunto.[0671] Accordingly, using a local computing resource 100, a user of the system may log on and access the cloud-based server 300 , may upload data to the server 300 or database 400, and may request that one or more jobs be performed on that data. The system 300 will then perform the requested jobs and store the results data in the database 400. As noted, in particular cases, the system 300 will store the generated results data in a single file format, such as a CRAM file. Furthermore, with the click of a button, the user may access the stored file, and with another click of a button, all other file formats may then be made accessible. For example, in accordance with the methods disclosed herein, given the fast processing capabilities of the systems, they would then be processed and generated in the background, e.g., immediately, thereby decreasing processing time and storage load as well as costs, such as where computing and storage functions are bundled together.

[0672] Particularmente, há duas partes desse processo de armazenamento rápido que são habilitadas pela velocidade de realizar as operações aceleradas reveladas no presente documento. Mais particularmente, devido ao fato de que várias operações de processamento de mapeamento, alinhamento, classificação, desduplicação e/ou chamada de variante podem ser implantadas em uma configuração de processamento com fio e/ou quântico, a produção dos dados de resultados, em um ou mais formatos de arquivo, pode ser rapidamente atingida. Adicionalmente, por causa das arquiteturas de acoplamento próximo reveladas no presente documento, uma compactação e armazenamento ininterruptos dos dados de resultados, por exemplo, em um formato de arquivo FASTQ, SAM, BAM, CRAM, VCF, são adicionalmente alcançados.[0672] Particularly, there are two parts of this fast storage process that are enabled by the speed of performing the accelerated operations disclosed herein. More particularly, because multiple mapping, alignment, classification, deduplication, and/or variant calling processing operations can be deployed in a wired and/or quantum processing configuration, the production of the results data, in one or more file formats, can be rapidly achieved. Additionally, because of the closely coupled architectures disclosed herein, a seamless compression and storage of the results data, e.g., in a FASTQ, SAM, BAM, CRAM, VCF file format, is further achieved.

[0673] Ainda adicionalmente, por causa do processamento acelerado fornecido pelos dispositivos do sistema e por causa de sua integração ininterrupta com os dispositivos de armazenamento associados, os dados que resultam das operações de processamento do sistema, tais dados devem ser armazenados, podem ser tanto eficientemente compactados antes do armazenamento quanto descompactados subsequentemente ao armazenamento. Tais eficiências reduzem, assim, os custos de armazenamento e/ou as penalidades relacionadas à descompactação dos arquivos antes do uso. Consequentemente, por causa dessas vantagens, o sistema pode ser configurado de modo a permitir a compactação e o armazenamento ininterruptos de apenas um único tipo de arquivo, com a regeneração imediata de qualquer um dos outros tipos de arquivo, conforme necessário ou solicitado pelo usuário. Por exemplo, um arquivo BAM, ou um arquivo SAM ou CRAM compactado associado ao mesmo, pode ser armazenado, e, a partir desse arquivo, os outros podem ser gerados, por exemplo, em uma direção direta ou reversa, tal como para reproduzir um arquivo VCF ou FASTQ ou BCL, respectivamente.[0673] Still further, because of the accelerated processing provided by the system devices and because of their seamless integration with associated storage devices, data resulting from system processing operations, such data to be stored, can be both efficiently compressed prior to storage and decompressed subsequent to storage. Such efficiencies thus reduce storage costs and/or penalties associated with decompressing files prior to use. Accordingly, because of these advantages, the system can be configured to allow for the uninterrupted compression and storage of only a single file type, with immediate regeneration of any of the other file types as needed or requested by the user. For example, a BAM file, or a compressed SAM or CRAM file associated therewith, can be stored, and from that file the others can be generated, for example, in a forward or reverse direction, such as to reproduce a VCF or FASTQ or BCL file, respectively.

[0674] Por exemplo, em uma modalidade, um arquivo FASTQ pode ser originalmente inserido no sistema, ou gerado de outro modo, e armazenado. Em tal caso, ao ir na direção para frente, uma soma de verificação do arquivo pode ser tomada. Igualmente, uma vez que os dados de resultado são produzidos, ao ir para trás, outra soma de verificação pode ser gerada. Essas somas de verificação podem, então, ser usadas para garantir que quaisquer formatos de arquivo adicionais a serem gerados e/ou recriados pelo sistema, na direção direta ou reversa, correspondem um ao outro identicamente e/ou a seus formatos de arquivo compactados. De tal maneira, pode ser garantido que todos os dados necessários sejam armazenados, de uma maneira tão eficiente quanto possível, e o WMS sabe exatamente em onde os dados são armazenados, em qual formato de arquivo os mesmos são armazenados, em qual o formato de arquivo original estava, e, a partir desses dados, o sistema pode regenerar qualquer formato de arquivo de uma maneira idêntica indo para frente ou para trás entre os formatos de arquivo (uma vez que o modelo é originalmente gerado).[0674] For example, in one embodiment, a FASTQ file may be originally input to the system, or otherwise generated, and stored. In such a case, when going in the forward direction, a checksum of the file may be taken. Likewise, once the result data is produced, when going backwards, another checksum may be generated. These checksums may then be used to ensure that any additional file formats to be generated and/or recreated by the system, in the forward or reverse direction, match each other identically and/or to their compressed file formats. In such a manner, it may be ensured that all necessary data is stored, in as efficient a manner as possible, and the WMS knows exactly where the data is stored, what file format it is stored in, what the original file format was, and from this data, the system may regenerate any file format in an identical manner going forwards or backwards between file formats (once the template is originally generated).

[0675] Portanto, a vantagem de velocidade da compilação "no momento exato" é habilitada em parte pela geração implantada por hardware e/ou quantum dos arquivos relevantes, tal como na geração de um arquivo BAM a partir de um arquivo FASTQ anteriormente gerado. Particularmente, os arquivos BAM compactados, incluindo arquivos SAM e CRAM, não são tipicamente armazenados dentro de um banco de dados por causa do tempo aumentado que leva antes do processamento para descompactar o arquivo compactado armazenado. Entretanto, o sistema JIT permite que isso seja feito sem penalidades substanciais. Mais particularmente, implantando os dispositivos e processos revelados no presente documento, não apenas podem dados de sequência gerados ser compactados e descompactados rapidamente, por exemplo, quase instantaneamente, os mesmos podem também ser armazenados eficientemente. Adicionalmente, a partir do arquivo armazenado, em qualquer formato de arquivo que esteja armazenado, qualquer um dos outros formatos de arquivo pode ser regenerado em apenas momentos.[0675] Thus, the speed advantage of "just in time" compilation is enabled in part by hardware- and/or quantum-enabled generation of the relevant files, such as in generating a BAM file from a previously generated FASTQ file. In particular, compressed BAM files, including SAM and CRAM files, are not typically stored within a database because of the increased time it takes before processing to decompress the stored compressed file. However, the JIT system allows this to be done without substantial penalties. More particularly, by implementing the devices and processes disclosed herein, not only can generated sequence data be compressed and decompressed rapidly, e.g., nearly instantaneously, it can also be stored efficiently. Additionally, from the stored file, in whatever file format it is stored, any of the other file formats can be regenerated in just moments.

[0676] Logo, conforme pode ser observado em referência à Figura 40C, quando o processamento de hardware e/ou quantum acelerado realiza vários procedimentos de processamento secundários, tais como mapeamento e alinhamento, classificação, desduplicação e chamada de variante, uma etapa adicional de compactação pode também ser realizada, tal como em um processo de todos em um, antes do armazenamento na forma compactada. Então, quando o usuário deseja analisar ou usar de outro modo os dados compactados, o arquivo pode ser recuperado, descompactado e/ou convertido de um formato de arquivo em outro e/ou ser analisado, tal como pelo mecanismo (ou mecanismos) JIT sendo carregado no processador com fio ou configurado dentro do processador quântico, e submetendo o arquivo compactado a um ou mais procedimentos da segmentação JIT.[0676] Thus, as can be seen with reference to Figure 40C, when hardware and/or quantum accelerated processing performs various secondary processing procedures, such as mapping and alignment, classification, deduplication, and variant calling, an additional compression step may also be performed, such as in an all-in-one process, prior to storage in compressed form. Then, when the user wishes to analyze or otherwise use the compressed data, the file may be retrieved, decompressed, and/or converted from one file format to another, and/or analyzed, such as by the JIT engine(s) being loaded onto the wired processor or configured within the quantum processor, and subjecting the compressed file to one or more JIT segmentation procedures.

[0677] Consequentemente, em vários casos, quando o sistema inclui um FPGA associado, o FPGA pode ser completa ou parcialmente reconfigurado, e/ou um mecanismo de processamento quântico pode ser organizado, de modo a realizar um procedimento JIT. Particularmente, o módulo JIT pode ser carregado no sistema e/ou configurado como um ou mais motores, tais motores podem incluir um ou mais motores de compactação 150 que são configurados para trabalho no plano de fundo. Portanto, quando um dado formato de arquivo é chamado, o sistema do tipo JIT pode realizar as operações necessárias nos dados solicitados de modo a produzir um arquivo no formato solicitado. Essas operações podem incluir a compactação e/ou descompactação assim como a conversão de modo a derivar os dados solicitados no formato de arquivo identificado.[0677] Accordingly, in various cases, when the system includes an associated FPGA, the FPGA may be completely or partially reconfigured, and/or a quantum processing engine may be arranged, so as to perform a JIT procedure. In particular, the JIT module may be loaded into the system and/or configured as one or more engines, such engines may include one or more compression engines 150 that are configured to work in the background. Thus, when a given file format is called, the JIT system may perform the necessary operations on the requested data so as to produce a file in the requested format. Such operations may include compression and/or decompression as well as conversion so as to derive the requested data in the identified file format.

[0678] Por exemplo, quando os dados genéticos são gerados, os mesmos são usualmente produzidos em um formato de dados brutos, tal como um arquivo BCL, que, então, pode ser convertido em um arquivo FASTQ, por exemplo, pelo NGS que gera os dados. Entretanto, com o presente sistema, os arquivos de dados brutos, tal como em BCL ou outro formato de arquivo bruto, podem ser transmitidos continuamente ou transmitidos de outro modo para o módulo JIT, que pode, então, converter os dados em um arquivo FASTQ e/ou em outro formato de arquivo. Por exemplo, uma vez que um arquivo FASTQ é gerado, o arquivo FASTQ pode, então, ser processado, conforme revelado no presente documento e um arquivo BAM correspondente pode ser gerado. E, igualmente, a partir do arquivo BAM, um VCF correspondente pode ser gerado. Adicionalmente, arquivos SAM e CRAM podem também ser gerados durante as etapas apropriadas. Cada uma dessas etapas pode ser realizada muito rapidamente, especialmente uma vez que o formato de arquivo apropriado foi gerado. Portanto, uma vez que o arquivo BCL é recebido, por exemplo, direto do sequenciador, o BCL pode ser convertido em um arquivo FASTQ ou pode ser diretamente convertido em um arquivo SAM, BAM, CRAM e/ou VCF, tal como um procedimento de mapeamento/alinhamento/classificação/chamada de variante implantado por hardware e/ou quantum.[0678] For example, when genetic data is generated, it is usually produced in a raw data format, such as a BCL file, which can then be converted to a FASTQ file, for example, by the NGS generating the data. However, with the present system, raw data files, such as in BCL or another raw file format, can be continuously streamed or otherwise transmitted to the JIT module, which can then convert the data to a FASTQ file and/or another file format. For example, once a FASTQ file is generated, the FASTQ file can then be processed as disclosed herein and a corresponding BAM file can be generated. And likewise, from the BAM file, a corresponding VCF can be generated. Additionally, SAM and CRAM files can also be generated during the appropriate steps. Each of these steps can be performed very quickly, especially once the appropriate file format has been generated. Therefore, once the BCL file is received, for example, directly from the sequencer, the BCL can be converted to a FASTQ file or it can be directly converted to a SAM, BAM, CRAM and/or VCF file, such as a hardware and/or quantum implemented mapping/alignment/classification/variant calling procedure.

[0679] Por exemplo, em um modelo de uso, em um instrumento de sequenciamento típico, um grande número de diferentes genomas do sujeito pode ser carregado nas raias individuais de um único instrumento de sequenciamento a ser executado em paralelo. Consequentemente, no final da execução, um grande número de diversos arquivos BCL, derivados de todas as diferentes raias e representando os genomas inteiros de cada um dos sujeitos diferentes, é gerado em um complexo multiplex. Consequentemente, esses arquivos BCL multiplexados podem, então, ser desmultiplexados, e os respectivos arquivos FASTQ podem ser gerados representando o código genético para cada sujeito individual. Por exemplo, se, em uma execução de sequenciamento, N arquivos BCL forem gerados, esses arquivos precisarão ser desmultiplexados, colocados em camadas e costurados juntos para cada sujeito. Essa costura é um processo complexo em que cada material genético do sujeito é convertido em arquivos BCL, que podem, então, ser convertidos em um arquivo FASTQ ou usados diretamente para mapeamento, alinhamento e/ou classificação, chamada de variante e similares. Esse processo pode ser automatizado de modo a acelerar grandemente as várias etapas do processo.[0679] For example, in one usage model, on a typical sequencing instrument, a large number of different subject genomes may be loaded into the individual lanes of a single sequencing instrument to be run in parallel. Consequently, at the end of the run, a large number of diverse BCL files, derived from all the different lanes and representing the entire genomes of each of the different subjects, are generated in a multiplex complex. Accordingly, these multiplexed BCL files may then be demultiplexed, and respective FASTQ files may be generated representing the genetic code for each individual subject. For example, if, in a sequencing run, N BCL files are generated, these files will need to be demultiplexed, layered, and stitched together for each subject. This stitching is a complex process in which each subject's genetic material is converted into BCL files, which may then be converted into a FASTQ file or used directly for mapping, alignment, and/or classification, variant calling, and the like. This process can be automated to greatly speed up the various steps of the process.

[0680] Ademais, conforme pode ser observado em relação à Figura 40A, uma vez que esses dados foram gerados 110 e, portanto, precisam ser armazenados, por exemplo, em qualquer formato de arquivo for selecionado, os dados podem ser armazenados em um cache de memória protegido e/ou criptografado com senha, tal como em uma memória do tipo dropbox de genômica dedicada 400. Consequentemente, na medida em que os dados genéticos gerados e/ou processados saem do sequenciador, os dados podem ser processados e/ou armazenados e tornados disponíveis a outros usuários em outros sistemas, tal como em um cache do tipo dropbox 400. Em tal caso, o sistema de segmentação de análise de bioinformática automatizado pode, então, acessar os dados no cache e começar a processar os mesmos automaticamente. Por exemplo, o sistema pode incluir um sistema de gerenciamento, por exemplo, um sistema de gerenciamento de fluxo de trabalho 151, que tem um controlador, tal como um microprocessador ou outra inteligência, por exemplo, inteligência artificial, que gerencia a recuperação dos arquivos BCL e/ou FASTQ, por exemplo, do cache de memória, e, então, direciona o processamento dessas informações, de modo a gerar um BAM, CRAM, SAM e/ou VCF, automaticamente gerando e emitindo, assim, os vários resultados de processamento e/ou armazenando os mesmos na memória dropbox 400.[0680] Furthermore, as can be seen with respect to Figure 40A, once such data has been generated 110 and therefore needs to be stored, e.g., in whatever file format is selected, the data may be stored in a password protected and/or encrypted memory cache, such as in a dedicated genomics dropbox-type memory 400. Accordingly, as the generated and/or processed genetic data exits the sequencer, the data may be processed and/or stored and made available to other users on other systems, such as in a dropbox-type cache 400. In such a case, the automated bioinformatics analysis segmentation system may then access the data in the cache and begin processing the same automatically. For example, the system may include a management system, e.g., a workflow management system 151, that has a controller, such as a microprocessor or other intelligence, e.g., artificial intelligence, that manages the retrieval of BCL and/or FASTQ files, e.g., from memory cache, and then directs the processing of that information so as to generate a BAM, CRAM, SAM, and/or VCF, thereby automatically generating and outputting the various processing results and/or storing the same in memory dropbox 400.

[0681] Um benefício exclusivo do processamento JIT, conforme implantado dentro desse modelo de uso, é que JIT permite que os vários arquivos genéticos produzidos sejam compactados, por exemplo, antes do armazenamento de dados e sejam descompactados rapidamente antes do uso. Portanto, o processamento JIT pode compilar e/ou comprimir e/ou armazenar os dados na medida em que os mesmos estão saindo do sequenciador, em que tal armazenamento está em um cache de memória dropbox genômico seguro. Esse cache dropbox genômico 400 pode ser um cache de memória acessível na nuvem 50 que é configurado para o armazenamento dos dados de genômica recebidos de um ou mais sequenciadores automatizados 110, tal como em que o sequenciador (ou sequenciadores) é localizado remotamente do cache de memória 400.[0681] A unique benefit of JIT processing, as implemented within this usage model, is that JIT allows the multiple genetic files produced to be compressed, for example, prior to data storage, and to be decompressed on the fly prior to use. Thus, JIT processing may compile and/or compress and/or store the data as it is exiting the sequencer, where such storage is in a secure genomic dropbox memory cache. Such genomic dropbox cache 400 may be a cloud-accessible memory cache 50 that is configured for storage of genomic data received from one or more automated sequencers 110, such as where the sequencer(s) is located remotely from the memory cache 400.

[0682] Particularmente, uma vez que os dados de sequência foram gerados 110, por exemplo, por um NGS remoto, os mesmos podem ser compactados 150 para transmissão e/ou armazenamento 400, de modo a reduzir a quantidade de dados que está sendo transferida por upload e armazenada na nuvem 50. Tal transferência por upload, transmissão e armazenamento podem ser realizados rapidamente por causa da compactação de dados 150 que ocorre no sistema, tal como antes da transmissão. Adicionalmente, uma vez transferidos por upload e armazenados no cache de memória baseado em nuvem 400, os dados podem, então, ser recuperados, local 100 ou remotamente 300, de modo a serem processados em conformidade com os dispositivos, sistemas e métodos da segmentação BiolT revelada no presente documento, de modo a gerar um arquivo de mapeamento, alinhamento, classificação e/ou chamada de variante, tal como um arquivo SAM, BAM e/ou CRAM, que pode, então, ser armazenado, juntamente com um metarquivo que apresenta as informações quanto a como o arquivo gerado, por exemplo, arquivo SAM, BAM, CRAM, etc. foi produzido.[0682] In particular, once sequence data has been generated 110, for example by a remote NGS, it may be compressed 150 for transmission and/or storage 400 so as to reduce the amount of data being uploaded and stored in the cloud 50. Such upload, transmission, and storage may be accomplished quickly because of the data compression 150 that occurs in the system, just as prior to transmission. Additionally, once uploaded and stored in the cloud-based memory cache 400, the data may then be retrieved, locally 100 or remotely 300, to be processed in accordance with the BiolT segmentation devices, systems, and methods disclosed herein to generate a mapping, alignment, classification, and/or variant calling file, such as a SAM, BAM, and/or CRAM file, which may then be stored along with a metafile that presents information as to how the generated file, e.g., SAM, BAM, CRAM, etc. file, was produced.

[0683] Portanto, quando tomado em conjunto com os metadados, o arquivo SAM, BAM e/ou CRAM compactado pode, então, ser processado para produzir qualquer um dos outros formatos de arquivo, tais como arquivos FASTQ e/ou VCF. Consequentemente, conforme discutido acima, imediatamente, JIT pode ser usado para regenerar o arquivo FASTQ ou VCF a partir do arquivo BAM compactado e vice-versa. O arquivo BCL pode também ser regenerada de maneira similar. Deve ser observado que arquivos SAM e CRAM podem ser igualmente compactados e/ou armazenados e podem ser usados para produzir um ou mais dos outros formatos de arquivo. Por exemplo, um arquivo CRAM, que pode ser desconvertido de CRAM, pode ser usado para produzir um arquivo de chamada de variante e igualmente para o arquivo SAM. Portanto, apenas o arquivo SAM, BAM e/ou CRAM precisa ser salvo e, a partir desses arquivos, os outros formatos de arquivo, por exemplo, arquivos VCF, FASTQ, BCL, podem ser reproduzidos.[0683] Therefore, when taken together with the metadata, the compressed SAM, BAM and/or CRAM file can then be processed to produce any of the other file formats, such as FASTQ and/or VCF files. Consequently, as discussed above, JIT can immediately be used to regenerate the FASTQ or VCF file from the compressed BAM file and vice versa. The BCL file can also be regenerated in a similar manner. It should be noted that SAM and CRAM files can be similarly compressed and/or stored and can be used to produce one or more of the other file formats. For example, a CRAM file, which can be deconverted from CRAM, can be used to produce a variant call file and likewise for the SAM file. Therefore, only the SAM, BAM and/or CRAM file need be saved and from these files the other file formats, e.g. VCF, FASTQ, BCL files, can be reproduced.

[0684] Consequentemente, conforme pode ser observado em relação à Figura 40 A, um instrumento de mapeamento e/ou alinhamento e/ou classificação e/ou chamada de variante 110, por exemplo, um computador de bancada de trabalho, pode estar no local 100 e/ou outro segundo instrumento correspondente 300 pode ser localizado remotamente e tornado acessível na nuvem 50. Essa configuração, juntamente com os dispositivos e métodos revelados no presente documento, é adaptada para habilitar um usuário a realizar rapidamente uma análise BiolT "na nuvem", conforme revelado no presente documento, de modo a produzir dados de resultados. Os dados de resultados podem, então, ser processados de modo a serem compactados, e, uma vez compactados, os dados podem ser configurados para transmissão, por exemplo, de volta para o recurso de computação local 100, ou podem ser armazenados na nuvem 400 e tornados acessíveis por meio de uma interface baseada em nuvem pelo recurso de computação local 100. Em tal caso, os dados compactados podem ser um arquivo SAM, BAM, CRAM e/ou VCF.[0684] Accordingly, as can be seen with respect to Figure 40A, a mapping and/or alignment and/or classification and/or variant calling instrument 110, e.g., a workbench computer, may be at the site 100 and/or another corresponding second instrument 300 may be remotely located and made accessible in the cloud 50. Such a configuration, together with the devices and methods disclosed herein, is adapted to enable a user to rapidly perform a BiolT analysis "in the cloud" as disclosed herein so as to produce results data. The results data may then be processed so as to be compressed, and once compressed, the data may be configured for transmission, e.g., back to the local computing resource 100, or may be stored in the cloud 400 and made accessible via a cloud-based interface by the local computing resource 100. In such a case, the compressed data may be a SAM, BAM, CRAM, and/or VCF file.

[0685] Especificamente, o segundo recurso de computação 300 pode ser outra solução de bancada de trabalho, ou o mesmo pode ser um recurso configurado por servidor, tal como em que o recurso de computação é acessível por meio da nuvem 50 e é configurado para representar um instrumento de mapeamento e/ou alinhamento e/ou classificação e/ou chamada de variante. Em tal caso, um usuário pode solicitar que o servidor baseado em nuvem 300 realize um ou mais trabalhos BioIT nos dados transferidos por upload, por exemplo, dados BCL e/ou FASTQ. Nesse caso, o servidor 300 acessará, então, o arquivo (ou arquivos) armazenado e/ou compactado e pode processar os dados de modo a processar rapidamente esses dados e gerar um ou mais dados de resultados, tais dados podem, então, ser compactados e/ou armazenados. Adicionalmente, a partir do arquivo de dados de resultados, um ou mais BCL, FASTQ, SAM, BAM, VCF, ou outros formatos de arquivo podem ser gerados, por exemplo, imediatamente, com o uso de processamento JIT. Essa configuração alivia, assim, o gargalo de velocidade de transferência típico.[0685] Specifically, the second computing resource 300 may be another workbench solution, or it may be a server-configured resource, such as wherein the computing resource is accessible via the cloud 50 and is configured to represent a mapping and/or alignment and/or classification and/or variant calling instrument. In such a case, a user may request that the cloud-based server 300 perform one or more BioIT jobs on the uploaded data, e.g., BCL and/or FASTQ data. In such a case, the server 300 will then access the stored and/or compressed file(s) and may process the data so as to rapidly process such data and generate one or more results data, which data may then be compressed and/or stored. Additionally, from the results data file, one or more BCL, FASTQ, SAM, BAM, VCF, or other file formats may be generated, e.g., on the fly, using JIT processing. This configuration thus alleviates the typical transfer speed bottleneck.

[0686] Portanto, em várias modalidades, o sistema 1 pode incluir, um primeiro instrumento de mapeamento e/ou alinhamento e/ou classificação e/ou chamada de variante 100, que pode ser posicionado localmente 100, tal como para produção de dados local, compactação 150 e/ou armazenamento 200; e um segundo instrumento 300 pode ser posicionado remotamente e associado na nuvem 50, através do qual, o segundo instrumento 300 é configurado para receber os dados gerados e compactado e armazenar os mesmos, por exemplo, por meio de um dispositivo de armazenamento associado 400. Uma vez armazenados, os dados podem ser acessados por descompactação e conversão dos arquivos armazenados em um ou mais dos outros formatos de arquivo.[0686] Therefore, in various embodiments, the system 1 may include, a first mapping and/or alignment and/or classification and/or variant calling instrument 100, which may be positioned locally 100, such as for local data production, compression 150 and/or storage 200; and a second instrument 300 may be positioned remotely and associated in the cloud 50, whereby, the second instrument 300 is configured to receive the generated and compressed data and store the same, for example, via an associated storage device 400. Once stored, the data may be accessed by decompressing and converting the stored files into one or more of the other file formats.

[0687] Portanto, em uma implantação do sistema, os dados, por exemplo, dados de sequência brutos, tal como em um formato de arquivo BCL ou FASTQ, que são gerados por um aparelho de geração de dados, por exemplo, um sequenciador 110, podem ser transferidos por upload e armazenados na nuvem 50, tal como em um cache de memória do tipo dropbox de genômica associado 400. Esses dados podem, então, ser acessados diretamente pelo primeiro instrumento de mapeamento e/ou alinhamento e/ou classificação e/ou chamada de variante 100, conforme descrito no presente documento, ou podem ser acessados indiretamente pelo recurso de servidor 300, que pode, então, processar os dados de sequência para produzir dados de resultados mapeados, alinhados, classificados e/ou variantes.[0687] Therefore, in an implementation of the system, data, e.g., raw sequence data, such as in a BCL or FASTQ file format, that is generated by a data generating apparatus, e.g., a sequencer 110, may be uploaded to and stored in the cloud 50, such as in an associated genomics dropbox-type memory cache 400. This data may then be accessed directly by the first mapping and/or alignment and/or classification and/or variant calling instrument 100, as described herein, or may be accessed indirectly by the server resource 300, which may then process the sequence data to produce mapped, aligned, classified, and/or variant result data.

[0688] Consequentemente, em várias modalidades, um ou mais dos dispositivos de armazenamento revelados no presente documento podem ser configurados de modo a serem acessíveis, com as permissões apropriadas, por meio da nuvem. Por exemplo, vários dos dados de resultados do sistema podem ser compactados e/ou armazenados em uma memória, ou outro banco de dados adequadamente configurado, em que o banco de dados é configurado como um cache dropbox de genômica 400, tal como em que vários dados de resultados podem ser armazenados em um arquivo SAM, BAM, CRAM e/ou VCF, que pode ser acessível remotamente. Especificamente, deve ser observado que, em relação à Figura 40A, um instrumento local 100 pode ser fornecido, em que o instrumento local pode estar associado ao próprio instrumento de sequenciamento 110 ou pode ser remoto do mesmo, mas associado ao instrumento de sequenciamento 110 por meio de uma nuvem local 30, e o instrumento local 100 pode estar adicionalmente associado a uma instalação de armazenamento local 200 ou cache de memória remoto 400, tal como em que o cache de memória remoto é configurado como o dropbox de genômica. Ademais, em vários casos, um segundo instrumento de mapeamento e/ou alinhamento e/ou classificação e/ou chamada de variante 300, por exemplo, um instrumento baseado em nuvem, com as autoridades apropriadas, pode também estar conectado ao dropbox de genômica 400, de modo a acessar os arquivos, por exemplo, arquivos compactados, armazenados pelo recurso de computação local 100, e pode, então, descompactar esses arquivos para tornar os resultados disponíveis para processamento adicional, por exemplo, secundário ou terciário.[0688] Accordingly, in various embodiments, one or more of the storage devices disclosed herein may be configured to be accessible, with appropriate permissions, via the cloud. For example, a plurality of the system's results data may be compressed and/or stored in a memory, or other suitably configured database, wherein the database is configured as a genomics dropbox cache 400, such as wherein a plurality of results data may be stored in a SAM, BAM, CRAM, and/or VCF file, which may be accessible remotely. Specifically, it should be noted that with respect to Figure 40A , a local instrument 100 may be provided, wherein the local instrument may be associated with the sequencing instrument 110 itself or may be remote therefrom but associated with the sequencing instrument 110 via a local cloud 30, and the local instrument 100 may further be associated with a local storage facility 200 or remote memory cache 400, such as wherein the remote memory cache is configured as the genomics dropbox. Furthermore, in various instances, a second mapping and/or alignment and/or classification and/or variant calling instrument 300, e.g., a cloud-based instrument, with appropriate authorities, may also be connected to the genomics dropbox 400 so as to access files, e.g., compressed files, stored by the local computing resource 100, and may then decompress such files to make the results available for further, e.g., secondary or tertiary, processing.

[0689] Consequentemente, em vários casos, o sistema pode ser transmitido continuamente de modo que, na medida em que os dados são gerados e saem do sequenciador 110, tal como em formato de dados brutos, os mesmos podem ser imediatamente transferidos por upload para a nuvem 50 e armazenados em um dropbox de genômica 400, ou os mesmos podem ser transmitidos para um sistema de processamento BioIT 300 para processamento e/ou compactação adicionais antes de serem transferidos por upload e armazenados 400. Uma vez armazenado dentro do cache de memória 400, o sistema pode, então, colocar imediatamente em fila os dados para recuperação, compactação, descompactação e/ou para processamento adicional, tal como por outro aparelho de processamento BioIT associado 300, que, quando processados em dados de resultados, podem, então, ser compactados e/ou armazenados 400 para uso posterior. Nesse ponto, uma segmentação de processamento terciário pode ser iniciada através da qual os dados de resultados armazenados do processamento secundário podem ser descompactados e usados, tal como para análise terciária, em conformidade com os métodos revelados no presente documento.[0689] Accordingly, in various instances, the system may be continuously streamed such that as data is generated and exits sequencer 110, such as in raw data format, it may be immediately uploaded to cloud 50 and stored in a genomics dropbox 400, or it may be streamed to a BioIT processing system 300 for further processing and/or compression prior to being uploaded and stored 400. Once stored within memory cache 400, the system may then immediately queue the data for retrieval, compression, decompression, and/or for further processing, such as by another associated BioIT processing apparatus 300, which, when processed into results data, may then be compressed and/or stored 400 for later use. At this point, a tertiary processing segment may be initiated whereby the stored result data from secondary processing may be decompressed and used, such as for tertiary analysis, in accordance with the methods disclosed herein.

[0690] Portanto, em várias modalidades, o sistema pode ser segmentado de modo que todos os dados que saem do sequenciador 110 podem ou ser compactados, por exemplo, por um recurso de computação local 100, antes da transferência e/ou armazenamento 200, ou os dados podem ser transferidos diretamente para a pasta do dropbox de genômica para armazenamento 400. Uma vez recebidos assim, os dados armazenados podem, então, ser colocados em fila de modo substancialmente imediato para recuperação e compactação e/ou descompactação, tal como por um recurso de computação remoto 300. Após serem descompactados, os dados podem estar disponíveis de modo substancialmente imediato para processamento, tal como para mapeamento, alinhamento, classificação e/ou chamada de variante, para produzir dados de resultados secundariamente que podem, então, ser recompactados para armazenamento. Depois, os dados de resultados secundários compactados podem, então, ser acessados, por exemplo, no dropbox genômico 400, ser descompactados e/ou ser usados em um ou mais procedimentos de processamento terciário. Na medida em que os dados podem ser compactados quando armazenados e descompactados de modo substancialmente imediato quando recuperados, os mesmos estão disponíveis para uso por muitos sistemas diferentes e em muitos protocolos bioanalíticos diferentes em diferentes momentos, simplesmente acessando o cache de armazenamento dropbox 400.[0690] Therefore, in various embodiments, the system may be segmented such that all data output from sequencer 110 may either be compressed, for example, by a local computing resource 100, prior to transfer and/or storage 200, or the data may be transferred directly to the genomics dropbox folder for storage 400. Once so received, the stored data may then be substantially immediately queued for retrieval and compression and/or decompression, such as by a remote computing resource 300. After being decompressed, the data may be substantially immediately available for processing, such as for mapping, alignment, classification, and/or variant calling, to produce secondarily results data that may then be recompressed for storage. The compressed secondary result data can then be accessed, for example, in the genomic dropbox 400, decompressed, and/or used in one or more tertiary processing procedures. Because the data can be compressed when stored and decompressed substantially immediately when retrieved, it is available for use by many different systems and in many different bioanalytical protocols at different times simply by accessing the storage cache of dropbox 400.

[0691] Portanto, de tais maneiras, as segmentações de plataforma BioIT apresentadas no presente documento podem ser configuradas de modo a oferecer uma incrível flexibilidade de geração e/ou análise de dados e são adaptadas para manipular a entrada de formas particulares dos dados genéticos em múltiplos formatos de modo a processar os dados e produzir formatos de saída que são compatíveis com várias análise a jusante. Consequentemente, conforme pode ser observado em relação à Figura 40C, são apresentados no presente documento sistemas e métodos para realizar a análise de sequenciamento genético, que pode incluir uma ou mais das seguintes etapas: Primeiro, uma entrada de arquivo é recebida, a entrada pode estar em um ou mais dentre um FASTQ ou BCL ou outra forma de formato de arquivo de sequência genética, tal como em um formato de arquivo compactado, tal arquivo pode, então, ser descompactado e/ou processado através de várias etapas reveladas no presente documento de modo a gerar um VCF/gVCF, tal arquivo pode, então, ser compactado e/ou armazenado e/ou transmitido. Tal compactação e/ou descompactação podem ocorrer em qualquer estágio adequado através do processo.[0691] Therefore, in such ways, the BioIT platform segmentations presented herein can be configured to offer incredible flexibility of data generation and/or analysis and are adapted to handle input of particular forms of genetic data in multiple formats in order to process the data and produce output formats that are compatible with various downstream analyses. Accordingly, as can be seen with respect to Figure 40C, presented herein are systems and methods for performing genetic sequencing analysis, which can include one or more of the following steps: First, a file input is received, the input can be in one or more of a FASTQ or BCL or other form of genetic sequence file format, such as in a compressed file format, such file can then be decompressed and/or processed through various steps disclosed herein in order to generate a VCF/gVCF, such file can then be compressed and/or stored and/or transmitted. Such compression and/or decompression may occur at any suitable stage throughout the process.

[0692] Por exemplo, uma vez que um arquivo BCL é recebido, o mesmo pode ser submetido a uma segmentação de análises, tal como de uma maneira sequencial, conforme revelado no presente documento. Por exemplo, uma vez recebido, o arquivo BCL pode ser convertido e/ou desmultiplexado, tal como em um formato de arquivo FASTQ e/ou FASTQgz, tal arquivo pode ser enviado a um módulo de mapeamento e/ou alinhamento, por exemplo, de um servidor 300, de modo a ser mapeado e/ou alinhado em conformidade com os aparelhos e seus métodos de uso descrito no presente documento. Adicionalmente, em vários casos, os dados mapeados e alinhados, tal como em um formato de arquivo SAM ou BAM, podem ser classificados por posição e/ou quaisquer duplicações podem ser marcadas e removidas. Os arquivos podem, então, ser compactados, tal como para produzir um arquivo CRAM, por exemplo, para transmissão e/ou armazenamento, ou podem ser encaminhados para um módulo de chamada de variante, por exemplo, HMM, a ser processado de modo a produzir um arquivo de chamada de variante, VCF ou gVCF.[0692] For example, once a BCL file is received, it may undergo segmentation analysis, such as in a sequential manner, as disclosed herein. For example, once received, the BCL file may be converted and/or demultiplexed, such as into a FASTQ and/or FASTQgz file format, and such file may be sent to a mapping and/or alignment module, e.g., of a server 300, to be mapped and/or aligned in accordance with the apparatuses and methods of use thereof described herein. Additionally, in various cases, the mapped and aligned data, such as into a SAM or BAM file format, may be sorted by position and/or any duplicates may be marked and removed. The files may then be compressed, such as to produce a CRAM file, for example, for transmission and/or storage, or they may be forwarded to a variant calling module, for example, HMM, to be processed to produce a variant calling file, VCF or gVCF.

[0693] Mais especificamente, conforme pode ser observado em relação às Figuras 40C e 40D, em certos casos, o arquivo a ser recebido pelo sistema pode ser transmitido continuamente ou transferido de outro modo para o sistema diretamente do aparelho de sequenciamento, por exemplo, NGS 110, e, como tal, o arquivo transferido pode estar em um formato de arquivo BCL. Quando o arquivo recebido está em um formato de arquivo BCL, o mesmo pode ser convertido e/ou desmultiplexado de outro modo em um arquivo FASTQ para processamento pelo sistema, ou o arquivo BCL pode ser processado diretamente. Por exemplo, os processadores de segmentação de plataforma podem ser configurados para receber dados BCL que são transmitidos continuamente diretamente do sequenciador, conforme descrito em relação à Figura 1, ou os mesmos podem receber dados em um formato de arquivo FASTQ. Entretanto, receber os dados de sequência diretamente conforme os mesmos são transmitidos continuamente do sequenciador é útil devido ao fato de que permite que os dados vão diretamente de dados de sequenciamento brutos a serem diretamente processados, por exemplo, em um ou mais dentre SAM, BAM e/ou VCF/gVCF para emissão.[0693] More specifically, as can be seen with respect to FIGS. 40C and 40D, in certain instances, the file to be received by the system may be continuously streamed or otherwise transferred to the system directly from the sequencing apparatus, e.g., NGS 110, and as such, the transferred file may be in a BCL file format. When the received file is in a BCL file format, it may be converted and/or otherwise demultiplexed into a FASTQ file for processing by the system, or the BCL file may be processed directly. For example, platform segmentation processors may be configured to receive BCL data that is continuously streamed directly from the sequencer, as described with respect to FIGS. 1, or they may receive data in a FASTQ file format. However, receiving sequence data directly as it is continuously streamed from the sequencer is useful because it allows data to go directly from raw sequencing data to be directly processed, for example, in one or more of SAM, BAM and/or VCF/gVCF for output.

[0694] Consequentemente, uma vez que o arquivo BCL e/ou FASTQ é recebido, por exemplo, por um recurso de computação 100 e/ou 300, o mesmo pode ser mapeado e/ou alinhado pelo recurso de computação, tal mapeamento e/ou alinhamento podem ser realizados em leituras de extremidade única ou extremidade pareada. Por exemplo, uma vez recebidos, os dados de sequência podem ser compilados em leituras, para análise, tal como com comprimentos de leitura que podem estar na faixa de cerca de 10 ou cerca de 20, tal como 26, ou 50, ou 100, ou 150 pares de bases ou menos até cerca de 1 K, ou cerca de 2,5 K, ou cerca de 5 K, até mesmo cerca de 10 K pares de bases ou mais. Igualmente, uma vez mapeada e/ou alinhada, a sequência pode, então, ser classificada, tal como classificada por posição, tal como através de discretização por faixa de referência e/ou classificação das discretizações por posição de referência. Ademais, os dados de sequência podem ser processados por meio de marcação de duplicata, tal como com base na posição de partida e cadeia CIGAR, de modo a gerar um relatório de duplicata de alta qualidade, e quaisquer duplicatas marcadas podem ser removidas nesse ponto. Consequentemente, um arquivo SAM mapeado e alinha pode ser gerado, que pode ser compactado de modo a formar um arquivo BAM/CRAM, tal como para armazenamento e/ou processamento adicional. Ademais, uma vez que o arquivo BAM/CRAM foi recuperado, os dados de sequência mapeados e/ou alinhados podem ser encaminhados para um módulo de chamada de variante do sistema, tal como um chamador de variante de haplótipo com remontagem, que, em alguns casos, pode empregar um ou mais dentre um alinhamento de Smith-Waterman e/ou Modelo de Hidden Markov que podem ser implantados em uma combinação de software e/ou hardware, de modo a gerar um VCF.[0694] Accordingly, once the BCL and/or FASTQ file is received, for example, by a computing resource 100 and/or 300, it may be mapped and/or aligned by the computing resource, such mapping and/or alignment being performed into single-end or paired-end reads. For example, once received, the sequence data may be compiled into reads, for analysis, such as with read lengths that may be in the range of about 10, or about 20, such as 26, or 50, or 100, or 150 base pairs or less up to about 1 K, or about 2.5 K, or about 5 K, even about 10 K base pairs or more. Likewise, once mapped and/or aligned, the sequence can then be classified, such as by position classification, such as through reference range discretization and/or by classification of discretizations by reference position. Furthermore, the sequence data can be processed by means of duplicate marking, such as based on starting position and CIGAR chain, in order to generate a high quality duplicate report, and any marked duplicates can be removed at that point. Consequently, a mapped and aligned SAM file can be generated, which can be compressed to form a BAM/CRAM file, such as for storage and/or further processing. Furthermore, once the BAM/CRAM file has been retrieved, the mapped and/or aligned sequence data can be forwarded to a system variant calling module, such as a haplotype variant caller with reassembly, which in some cases may employ one or more of a Smith-Waterman alignment and/or Hidden Markov Model that may be implemented in a combination of software and/or hardware to generate a VCF.

[0695] Portanto, conforme visto na Figura 40D, o sistema e/ou um ou mais de seus componentes podem ser configurados de modo a terem a capacidade para converter dados BCL em formatos de dados FASTQ ou SAM/BAM/CRAM, que podem, então, ser enviados através do sistema para processamento adicional e/ou reconstituição de dados. Por exemplo, uma vez que os dados BCL são recebidos e/ou convertidos em um arquivo FASTQ e desmultiplexados e/ou desduplicados, os dados podem, então, ser encaminhados para um ou mais dos módulos de segmentação revelados no presente documento, tal como para mapeamento e/ou alinhamento, o que, dependendo do número de amostras sendo processadas, resultará na produção de um ou mais, por exemplo, diversos, arquivos SAM/BAM. Esses arquivos podem, então, ser classificados, desduplicados e encaminhados por um módulo de chamada de variante, de modo a produzir um ou mais arquivos VCF. Essas etapas podem ser repetidas para maior contexto e precisão. Por exemplo, uma vez que os dados de sequência são mapeados ou alinhados, por exemplo, para produzir um arquivo SAM, o arquivo SAM pode, então, ser compactado em um ou mais arquivos BAM, que podem, então, ser transmitidos para um mecanismo de VCF de modo a serem convertidos através do processamento do sistema para um VCF/gVCF, que pode, então, ser compactado em um arquivo CRAM. Consequentemente, os arquivos a serem emitidos ao longo do sistema podem ser um arquivo Gzip e/ou CRAM.[0695] Therefore, as seen in Figure 40D, the system and/or one or more of its components may be configured to have the capability to convert BCL data into FASTQ or SAM/BAM/CRAM data formats, which may then be sent through the system for further processing and/or data reconstruction. For example, once the BCL data is received and/or converted into a FASTQ file and demultiplexed and/or deduplicated, the data may then be forwarded to one or more of the segmentation modules disclosed herein, such as for mapping and/or alignment, which, depending on the number of samples being processed, will result in the production of one or more, e.g., multiple, SAM/BAM files. These files may then be classified, deduplicated, and forwarded by a variant calling module to produce one or more VCF files. These steps may be repeated for greater context and accuracy. For example, once the sequence data is mapped or aligned, e.g. to produce a SAM file, the SAM file may then be compressed into one or more BAM files, which may then be passed to a VCF engine for conversion by system processing to a VCF/gVCF, which may then be compressed into a CRAM file. Consequently, the files to be output through the system may be a Gzip and/or a CRAM file.

[0696] Particularmente, conforme pode ser observado em relação às Figuras 40C e 40D, um ou mais dos arquivos, uma vez gerados, podem ser compactados e/ou transferidos de um componente de sistema para outro, por exemplo, de um recurso local 100 para um remoto 300 e, uma vez recebidos, podem, então, ser descompactados, por exemplo, se anteriormente compactados, ou convertidos/desmultiplexados. Mais particularmente, uma vez que um arquivo BCL é recebido, ou por um recurso local 100 ou remoto 300, o mesmo pode ser convertido em um arquivo FASTQ que pode, então, ser processado pelo circuito (ou circuitos) integrado do sistema, de modo a ser mapeado e/ou alinhado, ou pode ser transmitido para um recurso remoto 300 para tal processamento. Uma vez mapeados e/ou alinhados, os dados de sequência resultantes, por exemplo, em um formato de arquivo SAM, podem ser processados adicionalmente, tal como sendo compactados uma ou mais vezes, por exemplo, em um arquivo BAM/CRAM, tais dados podem, então, ser processados por classificação por posição, marcação de duplicata e/ou chamada de variante, os resultados dos quais, por exemplo, em um formato VCF, podem, então, ser compactados mais uma vez e/ou armazenados e/ou transmitidos, tal como de um recurso remoto 300 para um recurso local 100.[0696] In particular, as can be seen with respect to Figures 40C and 40D, one or more of the files, once generated, may be compressed and/or transferred from one system component to another, e.g., from a local resource 100 to a remote resource 300, and once received, may then be decompressed, e.g., if previously compressed, or converted/demultiplexed. More particularly, once a BCL file is received, either by a local resource 100 or a remote resource 300, it may be converted to a FASTQ file which may then be processed by the system's integrated circuitry so as to be mapped and/or aligned, or may be transmitted to a remote resource 300 for such processing. Once mapped and/or aligned, the resulting sequence data, e.g. in a SAM file format, may be further processed, such as by being compressed one or more times, e.g. in a BAM/CRAM file, such data may then be processed by position sorting, duplicate marking, and/or variant calling, the results of which, e.g. in a VCF format, may then be compressed once more and/or stored and/or transmitted, such as from a remote resource 300 to a local resource 100.

[0697] Mais particularmente, o sistema pode ser adaptado de modo a processar dados BCL diretamente, eliminando, assim, uma etapa de conversão de arquivo FASTQ. Igualmente, os dados BCL podem ser alimentados à segmentação para produzir um arquivo VCF emitido exclusivo por amostra. Os arquivos SAM/BAM/CRAM intermediários podem também ser gerados sob demanda. O sistema, portanto, pode ser configurado para receber e/ou transmitir um ou mais arquivos de dados, tais como um arquivo de dados BCL ou FASTQ contendo informações de sequência, e processar os mesmos de modo a produzir um arquivo de dados que foi compactado, tal como um arquivo de dados SAM/BAM/CRAM.[0697] More particularly, the system may be adapted to process BCL data directly, thereby eliminating a FASTQ file conversion step. Likewise, BCL data may be fed to segmentation to produce a unique output VCF file per sample. Intermediate SAM/BAM/CRAM files may also be generated on demand. The system, therefore, may be configured to receive and/or transmit one or more data files, such as a BCL or FASTQ data file containing sequence information, and process the same to produce a data file that has been compressed, such as a SAM/BAM/CRAM data file.

[0698] Consequentemente, conforme pode ser observado em relação à Figura 41 A, um usuário pode querer acessar o arquivo compactado e converter o mesmo em uma versão original do de arquivo BCL 111c e/ou FASTQ 111d gerado, tal como para submeter os dados a processamento 111b de sinal adicional, por exemplo, mais avançado, tal como para correção de erros. Alternativamente, o usuário pode acessar os dados de sequência brutos, por exemplo, em um formato de arquivo BCL ou FASTQ 111, e submeter esses dados a processamento adicional, tal como para mapeamento 112 e/ou alinhamento 113 e/ou outras funções relacionadas 114/115. Por exemplo, os dados de resultados desses procedimentos podem, então, ser compactados e/ou armazenados e/ou submetidos a processamento adicional 114, tal como para classificação 114a, desduplicação 114b, recalibração 114c, realinhamento local 114d e/ou compactação/descompactação 114e. O mesmo ou outro usuário pode, então, querer acessar a forma compactada dos dados de resultados mapeados e/ou alinhados e, então, executar outra análise nos dados, tal como para produzir uma ou mais chamadas de variante 115, por exemplo, por meio de HMM, Smith-Waterman, Conversão, etc., que podem, então, ser compactadas e/ou armazenadas. Um usuário adicional do sistema pode, então, acessar o arquivo VCF compactado 116, descompactar o mesmo e submeter os dados a um ou mais protocolos de processamento terciário.[0698] Accordingly, as can be seen with respect to Figure 41 A, a user may wish to access the compressed file and convert it to a native version of the generated BCL 111c and/or FASTQ 111d file, such as to subject the data to additional, e.g., more advanced signal processing 111b, such as for error correction. Alternatively, the user may access the raw sequence data, e.g., in a BCL or FASTQ file format 111, and subject such data to additional processing, such as for mapping 112 and/or alignment 113 and/or other related functions 114/115. For example, the results data from these procedures may then be compressed and/or stored and/or subjected to further processing 114, such as for classification 114a, deduplication 114b, recalibration 114c, local realignment 114d, and/or compression/decompression 114e. The same or another user may then wish to access the compressed form of the mapped and/or aligned results data and then perform further analysis on the data, such as to produce one or more variant calls 115, e.g., via HMM, Smith-Waterman, Conversion, etc., which may then be compressed and/or stored. An additional user of the system may then access the compressed VCF file 116, decompress it, and subject the data to one or more tertiary processing protocols.

[0699] Ademais, um usuário pode querer fazer uma comparação de segmentação. O mapeamento/alinhamento/classificação/chamada de variante é útil para realizar várias análises genômicas. Por exemplo, se uma análise de DNA ou RNA adicional, ou algum outro tipo de análise, for desejada depois, um usuário pode querer executar os dados através de outra segmentação e, portanto, ter acesso ao arquivo de dados original regenerado é muito útil. Igualmente, esse processo pode ser útil, tal como em que pode ser desejado criar ou recriar um arquivo SAM/BAM/CRAM diferente, tal como em que há um genoma de referência novo ou diferente gerado, e, portanto, pode ser desejado refazer o mapeamento e alinhamento para o novo genoma de referência.[0699] Furthermore, a user may wish to perform a segmentation comparison. Mapping/alignment/classification/variant calling is useful for performing various genomic analyses. For example, if additional DNA or RNA analysis, or some other type of analysis, is desired later, a user may wish to run the data through another segmentation, and therefore having access to the original regenerated data file is very useful. Likewise, this process may be useful such as where it may be desired to create or recreate a different SAM/BAM/CRAM file, such as where there is a new or different reference genome generated, and therefore it may be desired to re-do the mapping and alignment to the new reference genome.

[0700] O armazenamento dos arquivos SAM/BAM/CRAM compactados é adicionalmente útil devido ao fato de que permite um usuário do sistema 1 se beneficie do fato de que um genoma de referência forma a cadeia principal dos dados de resultados. Em tal caso, não são os dados que concordam com a referência que são importantes, mas, em vez disso, como os dados discordam com a referência. Portanto, apenas esses dados que discordam com a referência são essenciais para o armazenamento. Consequentemente, o sistema 1 pode se beneficiar desse fato armazenando-se apenas o que é importante e/ou útil para os usuários do sistema. Assim, o arquivo genômico inteiro (mostrando concordância e discordância com a referência), ou uma subporção do mesmo (mostrando apenas concordância e discordância com a referência), pode ser configurado para ser compactado e armazenado. Pode ser visto, portanto, que, como apenas as diferenças e/ou variações entre a referência e o genoma sendo examinado são o mais útil a se examinar, em várias modalidades, apenas essas diferenças precisam ser armazenadas, na medida em que qualquer coisa que seja igual à referência não precisa ser revisada novamente. Consequentemente, já que qualquer genoma dado se difere apenas ligeiramente de uma referência, por exemplo, 99% dos genomas humanos são tipicamente idênticos, após o arquivo BAM ser criado, apenas as variações entre o genoma de referência precisam ser revisadas e/ou salvas.[0700] Storing compressed SAM/BAM/CRAM files is additionally useful in that it allows a user of system 1 to benefit from the fact that a reference genome forms the main chain of the result data. In such a case, it is not the data that agrees with the reference that is important, but rather how the data disagrees with the reference. Therefore, only those data that disagree with the reference are essential for storage. Consequently, system 1 can benefit from this fact by storing only what is important and/or useful to users of the system. Thus, the entire genome file (showing agreement and disagreement with the reference), or a subportion thereof (showing only agreement and disagreement with the reference), can be configured to be compressed and stored. It can therefore be seen that since only the differences and/or variations between the reference and the genome being examined are the most useful to examine, in many embodiments only these differences need to be stored, as anything that is the same as the reference does not need to be reviewed again. Consequently, since any given genome differs only slightly from a reference, e.g. 99% of human genomes are typically identical, once the BAM file is created, only the variations between the reference genome need to be reviewed and/or saved.

[0701] Adicionalmente, conforme pode ser observado em relação à Figura 41B, outro componente útil de um sistema acessível na nuvem 1, fornecido no presente documento, é um controlador de gerenciamento de fluxo de trabalho 151, que pode ser usado para automatizar o fluxo de sistema. Tal animação de sistema pode incluir utilizar os vários componentes de sistema para acessar dados, ou local 100 ou remotamente 300, como e/ou onde os mesmos se tornam disponíveis e, então, submeter de modo substancialmente automático os dados a etapas de processamento adicionais, em relação às segmentações BioIT reveladas no presente documento. Consequentemente, o controlador de gerenciamento de fluxo de trabalho 151 é uma tecnologia de automação de núcleo para direcionar as várias segmentações do sistema, por exemplo, 111, 112, 113, 114 e/ou 115, e, em vários casos, pode empregar um componente de inteligência artificial 121a.[0701] Additionally, as can be seen with respect to Figure 41B, another useful component of a cloud accessible system 1 provided herein is a workflow management controller 151 that can be used to automate system workflow. Such system animation can include utilizing the various system components to access data, either locally 100 or remotely 300, as and/or where it becomes available, and then substantially automatically subjecting the data to additional processing steps, relative to the BioIT segmentations disclosed herein. Accordingly, the workflow management controller 151 is a core automation technology for directing the various segmentations of the system, e.g., 111, 112, 113, 114, and/or 115, and in various cases can employ an artificial intelligence component 121a.

[0702] Por exemplo, o sistema 1 pode incluir um módulo de inteligência artificial (A/I) que é configurado para analisar os vários dados do sistema e, em resposta aos mesmos, comunicar suas constatações com o sistema de gerenciamento de fluxo de trabalho 151. Particularmente, em vários casos, o módulo de A/I pode ser configurado para analisar os vários dados genômicos apresentados ao sistema, assim como os dados de resultados que são gerados pelo processamento desses dados, de modo a identificar e determinar várias relações entre esses dados e/ou com qualquer outros dados que podem ser inseridos no sistema. Mais particularmente, o módulo de A/I pode ser configurado para analisar vários dados genômicos em correspondência com uma pluralidade de outros fatores, de modo a determinar qualquer relação, por exemplo, relações baseadas em efeito, entre os vários fatores, por exemplo, pontos de dados, que podem ser informativos quanto aos efeitos dos fatores considerados nos dados genômicos determinados, por exemplo, dados de variância, e vice-versa.[0702] For example, the system 1 may include an artificial intelligence (A/I) module that is configured to analyze the various data from the system and, in response thereto, communicate its findings to the workflow management system 151. Particularly, in various instances, the A/I module may be configured to analyze the various genomic data presented to the system, as well as the result data that is generated by processing such data, so as to identify and determine various relationships between such data and/or with any other data that may be input to the system. More particularly, the A/I module may be configured to analyze various genomic data in correspondence with a plurality of other factors so as to determine any relationships, e.g., effect-based relationships, between the various factors, e.g., data points, that may be informative as to the effects of the considered factors on the determined genomic data, e.g., variance data, and vice versa.

[0703] Especificamente, conforme descrito em maiores detalhes abaixo, o módulo de A/I pode ser configurado para correlacionar os dados de genômica de um sujeito gerados pelo sistema com quaisquer registros médicos eletrônicos, para esse sujeito ou outros, de modo a determinar quaisquer relações entre os mesmos e/ou qualquer outros fatores e/ou dados relevantes. Consequentemente, tais outros dados que podem ser usados pelo sistema na determinação de quaisquer efeitos e/ou relações relevantes que esses fatores podem ter em um sujeito e/ou seus dados genômicos e/ou saúde incluem: Dados de NIPT, dados de NICU, Dados relacionados a câncer, dados de LDT, dados Ambientais e/ou de Ag Bio e/ou tais outros dados. Por exemplo, dados adicionais a serem analisados podem ser derivados por tais outros fatores como dados ambientais, dados de clado, dados de microbioma, dados de metilação, dados estruturais, por exemplo, dados de leitura ou quiméricos, dados de variantes de linhagem germinativa, dados de alelo, dados de RNA e outros tais dados relacionados ao material genético de um sujeito. Portanto, o módulo de A/I pode ser usado para vincular vários dados relacionados que fluem através do sistema às variantes determinadas no genoma de um ou mais sujeitos juntamente com um ou mais outros fatores baseados em efeito relacionados possíveis.[0703] Specifically, as described in greater detail below, the A/I module may be configured to correlate a subject's genomic data generated by the system with any electronic medical records, for that subject or others, so as to determine any relationships between the same and/or any other relevant factors and/or data. Accordingly, such other data that may be used by the system in determining any relevant effects and/or relationships that such factors may have on a subject and/or his/her genomic data and/or health include: NIPT data, NICU data, Cancer-related data, LDT data, Environmental and/or Ag Bio data, and/or such other data. For example, additional data to be analyzed may be derived by such other factors as environmental data, clade data, microbiome data, methylation data, structural data, e.g., read-through or chimeric data, germline variant data, allele data, RNA data, and other such data related to a subject's genetic material. Therefore, the A/I module can be used to link various related data flowing through the system to the determined variants in the genome of one or more subjects together with one or more other possible related effect-based factors.

[0704] Particularmente, o mecanismo de A/I pode ser configurado para ser executado em uma CPU/GPU/QPU, e/ou o mesmo pode ser configurado para ser executado como um mecanismo de AI acelerado, que pode ser implantado em um FPGA e/ou Unidade de Processamento Quântica. Especificamente, o mecanismo de AI pode ser associado a um ou mais, por exemplo, todos, dos vários bancos de dados do sistema, de modo a permitir que o mecanismo de AI explore e processe os vários dados que fluem através do sistema. Adicionalmente, quando um sujeito cujo genoma está sendo processado proporciona a autorização apropriada para acessar dados genômicos e de registro do paciente, o sistema é, então, configurado para correlacionar os vários conjuntos de dados uns aos outros e pode extrair adicionalmente os dados para determinar várias correspondências, associações e/ou relações significativas.[0704] In particular, the AI engine may be configured to run on a CPU/GPU/QPU, and/or it may be configured to run as an accelerated AI engine that may be deployed on an FPGA and/or Quantum Processing Unit. Specifically, the AI engine may be associated with one or more, e.g., all, of the various databases of the system, so as to allow the AI engine to explore and process the various data flowing through the system. Additionally, when a subject whose genome is being processed provides the appropriate authorization to access genomic and patient registry data, the system is then configured to correlate the various data sets with each other and may further mine the data to determine various meaningful matches, associations, and/or relationships.

[0705] Mais especificamente, o módulo de A/I pode ser configurado de modo a implantar um protocolo de aprendizado de máquina em relação aos dados inseridos. Por exemplo, os dados de genômica de uma pluralidade de sujeitos que são gerados a partir das análises sendo realizadas no presente documento podem ser armazenados em um banco de dados. Igualmente, com as autorizações e autenticações apropriada, os Registros Eletrônicos Médicos/de saúde (EMR), para o sujeito cujo DNA genômico foi processado, podem ser obtidos e podem ser igualmente armazenados no banco de dados. Conforme descrito em maiores detalhes abaixo, o mecanismo (ou mecanismos) de processamento pode ser configurado para analisar os dados genômicos dos sujeitos, assim como seus dados de EMR, de modo a determinar quaisquer correlações entre os dois. Essas correlações serão, então, exploradas, as relações observadas reforçadas, e os resultados das mesmas podem ser usados para realizar mais eficazmente e mais eficientemente as várias funções do sistema.[0705] More specifically, the A/I module may be configured to implement a machine learning protocol with respect to the input data. For example, the genomic data of a plurality of subjects that are generated from the analyses being performed herein may be stored in a database. Likewise, with appropriate authorizations and authentications, the Electronic Medical/Health Records (EMR) for the subject whose genomic DNA was processed may be obtained and may likewise be stored in the database. As described in greater detail below, the processing engine (or engines) may be configured to analyze the subjects' genomic data, as well as their EMR data, in order to determine any correlations between the two. These correlations will then be explored, the observed relationships reinforced, and the results thereof may be used to more effectively and efficiently perform the various functions of the system.

[0706] Por exemplo, o mecanismo de processamento de AI pode acessar os dados genômicos do sujeito, em correlação com as doenças ou afecções conhecidas daqueles sujeitos, e, a partir dessa análise, o módulo de AI pode aprender a realizar correlações preditivas com base nesses dados, de modo a se tornar mais e mais capaz de prever a presença de uma doença e/ou outras afecções similares em outros indivíduos. Particularmente, determinando-se tais correlações entre os genomas de outros com seu EMR, por exemplo, em relação à presença de marcadores de doença, o módulo de A/I pode aprender a identificar tais correlações, por exemplo, marcadores de doença determinados por sistema, nos genomas de outros, tendo, assim, a capacidade de prever a possibilidade de uma doença ou outras afecções identificáveis. Mais particularmente, analisando-se um genoma do sujeito em comparação a marcadores genéticos de doença conhecidos ou determinados e/ou determinando a variância do genoma do sujeito e/ou determinando adicionalmente uma relação potencial entre os dados genômicos e a condição de saúde do sujeito, por exemplo, EMR, o módulo de A/I pode ter a capacidade de tirar conclusões não apenas para o sujeito sendo amostrado, mas para outros que podem ser amostrados no futuro. Isso pode ser feito, por exemplo, de uma maneira sistemática, em uma base de sujeito por sujeito, ou pode ser feito dentro de populações e/ou dentro de locais geograficamente distintos.[0706] For example, the AI processing engine may access the subject's genomic data, in correlation with the known diseases or conditions of those subjects, and from such analysis, the AI module may learn to perform predictive correlations based on such data, so as to become increasingly capable of predicting the presence of a disease and/or other similar conditions in other individuals. In particular, by determining such correlations between the genomes of others with their EMR, e.g., with respect to the presence of disease markers, the AI module may learn to identify such correlations, e.g., system-determined disease markers, in the genomes of others, thereby having the ability to predict the possibility of a disease or other identifiable conditions. More particularly, by analyzing a subject's genome against known or determined genetic markers of disease and/or determining the variance of the subject's genome and/or further determining a potential relationship between the genomic data and the subject's health condition, e.g., EMR, the A/I module may have the ability to draw conclusions not only for the subject being sampled, but for others who may be sampled in the future. This may be done, for example, in a systematic manner, on a subject-by-subject basis, or it may be done within populations and/or within geographically distinct locations.

[0707] Mais particularmente, em relação aos presentes sistemas, um acúmulo de leituras é produzido. O acúmulo pode sobrepor regiões conhecidas por ter uma probabilidade mais alta de uma variância significativa. Consequentemente, o sistema, por um lado, analisará o acúmulo para determinar a presença de variância, enquanto que, ao mesmo tempo, com base em suas constatações anteriores, já saberá a probabilidade de que uma variância deve ou não existir, por exemplo, terá uma previsão inicial quanto a qual deve ser a resposta. A possibilidade de a variância esperada existir ou não será informativa ao analisar essa região dos genomas de outros. Por exemplo, isso pode ser um ponto de dados em uma soma de pontos de dados sendo usados pelo sistema para fazer melhores chamadas de variante, e/ou associando melhor essas variantes a um ou mais estados de doença ou outras condições de saúde.[0707] More particularly, with respect to the present systems, a backlog of reads is produced. The backlog may overlap regions known to have a higher probability of significant variance. Accordingly, the system will, on the one hand, analyze the backlog to determine the presence of variance, while at the same time, based on its previous findings, it will already know the probability that a variance should or should not exist, e.g., it will have an initial prediction as to what the response should be. The likelihood of the expected variance existing or not will be informative when analyzing that region of the genomes of others. For example, this may be one data point in a sum of data points being used by the system to make better variant calls, and/or better associate such variants with one or more disease states or other health conditions.

[0708] Por exemplo, em um protocolo de aprendizado exemplificativo, a análise de A/I pode incluir retirar uma imagem eletrônica de um acúmulo de uma ou mais regiões em um genoma, tal como para aquelas regiões com suspeita de codificar uma ou mais condições de saúde, e associar essa imagem às chamadas de variância conhecidas de outros acúmulos, tal como em que essa variância pode ser conhecida ou não por estar relacionada aos estados de doença. Isso pode ser feito repetidamente com o sistema aprendendo a processar as informações, fazer associações apropriadas e fazer chamadas corretas mais e mais rapidamente e com maior precisão. Uma vez que isso foi realizado para várias, por exemplo, todas, das regiões do genoma com suspeita de causar uma doença, o mesmo pode ser repetido para o resto do genoma, por exemplo, até que o genoma inteiro tenha sido revisado. Igualmente, isso pode ser repetido várias vezes para uma pluralidade de genomas de amostra, sem parar, de modo a treinar o sistema, por exemplo, o chamador de variante, de modo a fazer chamadas mais precisas, mais cedo, e com maior eficiência, e/ou para permitir que o módulo de processamento terciário identifique melhor condições não saudáveis.[0708] For example, in an exemplary learning protocol, A/I analysis may include taking an electronic image of an array of one or more regions in a genome, such as for those regions suspected of encoding one or more health conditions, and associating that image with known variance calls from other arrays, such as where that variance may or may not be known to be related to disease states. This may be done repeatedly with the system learning to process the information, make appropriate associations, and make correct calls more and more quickly and with greater accuracy. Once this has been accomplished for several, e.g., all, of the regions of the genome suspected of causing a disease, the same may be repeated for the rest of the genome, e.g., until the entire genome has been reviewed. Likewise, this may be repeated multiple times for a plurality of sample genomes, without stopping, so as to train the system, e.g. the variant caller, to make more accurate calls, earlier, and with greater efficiency, and/or to enable the tertiary processing module to better identify unhealthy conditions.

[0709] Consequentemente, o sistema recebe muitas entradas com respostas conhecidas, realiza a análise e computa a resposta e aprende, assim, a partir do processo, por exemplo, renderiza uma imagem de um acúmulo, em relação a um genoma, e, então, aprende a fazer uma chamada com base em outro genoma, cada vez mais cedo, na medida em que é mais prontamente determinado que acúmulos futuros se assemelham a imagens anteriormente capturadas que são conhecidas por estarem relacionadas a condições não saudáveis. Assim, o sistema pode ser configurado de modo a aprender a fazer previsões quanto à presença de variantes, por exemplo, com base em reconhecimentos de padrão, e/ou prevendo a relação entre a presença dessa variância com uma ou mais condições médicas.[0709] Accordingly, the system receives many inputs with known answers, performs the analysis and computes the answer, and thus learns from the process, e.g., rendering an image of a cluster relative to a genome, and then learning to make a call based on another genome, earlier and earlier as it is more readily determined that future clusters resemble previously captured images that are known to be related to unhealthy conditions. Thus, the system may be configured to learn to make predictions as to the presence of variants, e.g., based on pattern recognition, and/or by predicting the relationship between the presence of such a variance with one or more medical conditions.

[0710] Mais especificamente, quanto mais o sistema realiza análises de genoma parcial ou inteiro e determina a relação entre variações e várias afecções, por exemplo, em uma pluralidade de amostras, melhor em fazer previsões, por exemplo, com base em imagens de genoma parcial ou inteiro dos acúmulos, o sistema se torna. Isso é útil ao prever estados doentios com base nas imagens de acúmulos e/ou outra análise de leitura e pode incluir a construção de uma correlação entre um ou mais dentre EMR (incluindo dados fenotípicos), a imagem de acúmulo e/ou variantes conhecidas (dados genotípicos) e/ou estados de doença ou afecções, por exemplo, a partir dos quais, as previsões podem ser feitas. Em vários casos, o sistema pode incluir uma função de transcrição, de modo a ter a capacidade de transcrever quaisquer notas físicas que podem ser uma parte do registro médico do sujeito, de modo a incluir esses dados com associações.[0710] More specifically, the more the system performs partial or whole genome analysis and determines the relationship between variations and various conditions, e.g., on a plurality of samples, the better at making predictions, e.g., based on partial or whole genome images of the clusters, the system becomes. This is useful when predicting disease states based on the cluster images and/or other read analysis and may include constructing a correlation between one or more of the EMR (including phenotypic data), the cluster image and/or known variants (genotypic data) and/or disease states or conditions, e.g., from which predictions may be made. In various cases, the system may include a transcription function, such as to have the ability to transcribe any physical notes that may be a part of the subject's medical record, so as to include such data with associations.

[0711] Em um modelo de uso, um sujeito pode ter um rastreador móvel e/ou sensor, tal como telefone móvel ou outro dispositivo de computação, que pode ser configurado para rastrear a localização do sujeito assim como para detectar as condições ambientais e/ou fisiológicas do usuário nessa localização. Outros dados detectados podem também ser coletados. Por exemplo, o dispositivo de computação móvel pode incluir um rastreador GPS, e/ou sua localização pode ser determinada por triangulação por torres de celular, e pode ser adicionalmente configurado para transmitir seus dados coletados, por exemplo, por meio de celular, WIFI, Bluetooth ou outro protocolo de comunicações adequadamente configurado. Portanto, o dispositivo móvel pode rastrear e categorizar dados ambientais que pertencem às localizações geográficas, condições ambientais, situação fisiológica e outros dados detectados que o sujeito proprietário do computador móvel encontra em sua vida diária. Os dados coletados de localização, ambientais, fisiológicos, de saúde e/ou outros dados associados, por exemplo, dados de ZNA, podem, então, ser transmitidos, por exemplo, regular e periodicamente, a um ou mais dos sistemas banco de dados no presente documento, em que os dados de ZNA coletados podem ser correlacionados ao histórico de paciente do sujeito, por exemplo, registros EMR, e/ou seus dados genômicos, conforme determinado pelo sistema no presente documento.[0711] In one use model, a subject may have a mobile tracker and/or sensor, such as a mobile phone or other computing device, which may be configured to track the subject's location as well as to sense the user's environmental and/or physiological conditions at that location. Other sensed data may also be collected. For example, the mobile computing device may include a GPS tracker, and/or its location may be determined by triangulation by cell towers, and may be further configured to transmit its collected data, for example, via cellular, WIFI, Bluetooth, or other suitably configured communications protocol. Thus, the mobile device may track and categorize environmental data pertaining to geographic locations, environmental conditions, physiological status, and other sensed data that the subject owning the mobile computer encounters in his or her daily life. The collected location, environmental, physiological, health, and/or other associated data, e.g., ZNA data, may then be transmitted, e.g., regularly and periodically, to one or more of the database systems herein, wherein the collected ZNA data may be correlated to the subject's patient history, e.g., EMR records, and/or their genomic data, as determined by the system herein.

[0712] Igualmente, em vários casos, um ou mais desses dados podem ser encaminhados da plataforma de análise e coleta de ZNA, para um repositório central, por exemplo, em uma instalação governamental, de modo a serem analisados em uma escala maior, por exemplo, em todo o país, tal como em conformidade com a Inteligência Artificial revelada no presente documento. Por exemplo, o banco de dados, por exemplo, banco de dados controlado pelo governo, pode ter dados ambientais registrados aos quais os dados ambientais do sujeito podem ser comparados. Por exemplo, em um caso exemplificativo, um teste NICU pode ser realizado em uma mãe, um pai e seu filho e, então, ao longo das vidas dos três, seus dados ambientais e genômicos e de registro médico podem ser continuamente coletados e correlacionados uns aos outros e/ou um ou mais modelos, tal como durante o tempo de vida dos indivíduos, especialmente em relação ao início de mutações, tal como devido a fatores ambientalmente impactantes. Essa coleta de dados pode ser realizada ao longo da vida do indivíduo e pode ser realizada em uma família como base inteira, de modo a construir melhor um banco de dados de coleta de dados e prever melhor os efeitos de tais fatores na variação genética, e vice-versa.[0712] Likewise, in various instances, one or more of these data may be forwarded from the ZNA collection and analysis platform to a central repository, e.g., at a government facility, for analysis on a larger scale, e.g., nationwide, such as in accordance with the Artificial Intelligence disclosed herein. For example, the database, e.g., a government-controlled database, may have recorded environmental data to which the subject's environmental data may be compared. For example, in an exemplary case, a NICU test may be performed on a mother, a father, and their child, and then, throughout the lives of all three, their environmental and genomic and medical record data may be continually collected and correlated with each other and/or one or more models, such as over the lifetime of the individuals, especially with respect to the onset of mutations, such as due to environmentally impactful factors. This data collection can be carried out throughout the individual's life and can be carried out on a family as a whole basis, in order to better build a data collection database and better predict the effects of such factors on genetic variation, and vice versa.

[0713] Consequentemente, o controlador de gerenciamento de fluxo de trabalho 151 permite que o sistema 1 receba entradas de uma ou mais fontes, tal como um ou múltiplos instrumentos de sequenciamento, por exemplo, 110a, 110b, 110c, etc., e múltiplas entradas de um único instrumento de sequenciamento 110, em que os dados sendo recebidos representam os genomas de múltiplos sujeitos. Em tais casos, o controlador de gerenciamento de fluxo de trabalho 151 não apenas acompanha todos os dados entrantes como também organiza e facilita eficientemente o processamento secundário e/ou terciário dos dados recebidos. Consequentemente, o controlador de gerenciamento de fluxo de trabalho 151 permite que o sistema 1 se conecte de modo ininterrupto aos centros de sequenciamento grande e pequeno, em que todos os tipos de material genético podem estar vindo através de um ou mais instrumentos de sequenciamento 110 ao mesmo tempo, todos os quais podem ser transferidos para o sistema 1, tal como através da nuvem 50.[0713] Accordingly, the workflow management controller 151 allows the system 1 to receive inputs from one or more sources, such as one or multiple sequencing instruments, e.g., 110a, 110b, 110c, etc., and multiple inputs from a single sequencing instrument 110, wherein the data being received represents the genomes of multiple subjects. In such cases, the workflow management controller 151 not only keeps track of all incoming data but also efficiently organizes and facilitates secondary and/or tertiary processing of the received data. Accordingly, the workflow management controller 151 allows the system 1 to seamlessly connect to large and small sequencing centers, wherein all types of genetic material may be coming through one or more sequencing instruments 110 at the same time, all of which may be transferred to the system 1, such as via the cloud 50.

[0714] Mais especificamente, conforme pode ser observado em relação à Figura 41 A, em vários casos, uma ou uma multiplicidade de amostras pode ser recebida dentro do sistema 1, e, portanto, o sistema 1 pode ser configurado para receber e processar eficientemente as amostras, ou sequencialmente ou em paralelo, tal como em um regime de processamento de múltiplas amostras. Consequentemente, para transmitir continuamente e/ou automatizar o processamento de múltiplas amostras, o sistema pode ser controlado por um sistema de Gerenciamento de Fluxo de Trabalho (WMS) compreensivo ou LIMS (sistema de gerenciamento de informações de laboratório) 151. O WMS 151 habilita usuários a programarem facilmente múltiplas execuções de fluxo de trabalho para qualquer segmentação, assim como a ajustarem ou acelerarem algoritmos de análise de NGS, segmentações de plataforma e suas aplicações atendentes.[0714] More specifically, as can be seen with respect to Figure 41A, in various instances, one or a plurality of samples may be received into system 1, and therefore, system 1 may be configured to efficiently receive and process the samples, either sequentially or in parallel, such as in a multiple sample processing regime. Accordingly, to continuously stream and/or automate the processing of multiple samples, the system may be controlled by a comprehensive Workflow Management System (WMS) or LIMS (laboratory information management system) 151. WMS 151 enables users to easily schedule multiple workflow runs for any given segmentation, as well as to fine-tune or speed up NGS analysis algorithms, platform segmentations, and their attendant applications.

[0715] Em tal caso, cada sequência de execução pode ter um código de barras na mesma indicando o tipo de sequência que é, o formato de arquivo e/ou quais etapas de processamento foram realizadas e quais etapas de processamento precisam ser realizadas. Por exemplo, o código de barras pode incluir um manifesto indicando "isso é uma execução de genoma, do sujeito X, no formato de arquivo Y, então, esses dados têm que passar por segmentação Z" ou pode indicar igualmente "isso são dados de resultado de A que precisam entrar nesse sistema de relatório". Consequentemente, na medida em que os dados são recebidos, processados e transmitidos através do sistema, os códigos de barras e resultados serão carregados no sistema de gerenciamento de fluxo de trabalho 151, tal como LIMS (sistema de gerenciamento de informações de laboratório). LIMS, nesse caso, pode ser uma ferramenta padrão que é empregada para gerenciamento de laboratórios ou pode ser uma ferramenta especificamente projetada usada para gerenciar o fluxo de processo.[0715] In such a case, each run sequence may have a barcode on it indicating what type of sequence it is, what file format it is in, and/or what processing steps were performed and what processing steps need to be performed. For example, the barcode may include a manifest indicating "this is a genome run, from subject X, in file format Y, so this data needs to go through segmentation Z" or it may equally indicate "this is result data from A that needs to go into this reporting system". Accordingly, as data is received, processed, and transmitted through the system, the barcodes and results will be uploaded to the workflow management system 151, such as LIMS (laboratory information management system). LIMS, in this case, may be a standard tool that is employed for laboratory management or it may be a specifically designed tool used to manage process flow.

[0716] Em qualquer caso, o controlador de gerenciamento de fluxo de trabalho 151 rastreia uma amostra com código de barras de quanto a mesma chega em um determinado sítio, por exemplo, para armazenamento e/ou processamento, até os resultados serem enviados ao usuário. Particularmente, o controlador de gerenciamento de fluxo de trabalho 151 é configurado para rastrear todos os dados na medida em que os mesmos fluem através do sistema de ponta a ponta. Mais particularmente, na medida em que a amostra chega, o código de barras associado à amostra é lido, e, com base nessa leitura, o sistema determina quais são os fluxos de trabalho solicitados e prepara a amostra para processamento. Tal processamento pode ser simples, tal como sendo executado através de uma única segmentação de genoma, ou pode ser mais complexo, tal como sendo executado através de múltiplos, por exemplo, cinco segmentações, que precisam ser costuradas juntas. Em um modelo particular, os dados gerados ou recebidos podem ser executados através do sistema para produzir dados processados, os dados processados podem, então, ser executados através de um módulo equivalente de GATK, os resultados podem ser comparados, e, então, a amostra pode ser transmitida para outra segmentação para processamento adicional, por exemplo, terciário 700. Consultar a Figura 41B.[0716] In any case, the workflow management controller 151 tracks a barcoded sample from when it arrives at a given site, e.g., for storage and/or processing, until the results are sent to the user. In particular, the workflow management controller 151 is configured to track all data as it flows through the system from end to end. More particularly, as the sample arrives, the barcode associated with the sample is read, and based on that reading, the system determines which workflows are requested and prepares the sample for processing. Such processing may be simple, such as being performed across a single genome segmentation, or it may be more complex, such as being performed across multiple, e.g., five segmentations, that need to be stitched together. In a particular model, the generated or received data may be run through the system to produce processed data, the processed data may then be run through an equivalent GATK module, the results may be compared, and then the sample may be passed to another segmentation for further processing, e.g., tertiary 700. See Figure 41B.

[0717] Portanto, o sistema como um todo pode ser executado em conformidade com diversas segmentações de processamento diferentes. De fato, muitos processos de sistema podem ser interconectados, em que o gerenciador de fluxo de trabalho 151 é notificado ou determina de outro modo que um novo trabalho está pendente, quantifica as matrizes de trabalho, identifica os recursos disponíveis para realizar as análises exigidas, carrega o trabalho no sistema, recebe os dados entrando, por exemplo, a partir do sequenciador 110, carrega os mesmos e, então, processa os mesmos. Particularmente, uma vez que o fluxo de trabalho é estabelecido, o mesmo pode ser salvo, e, então, um código de barras modificado é atribuído a esse fluxo de trabalho, e o processo automatizado ocorre em conformidade com as diretrizes do fluxo de trabalho.[0717] Thus, the system as a whole may be executed in accordance with several different processing threads. Indeed, many system processes may be interconnected, wherein the workflow manager 151 is notified or otherwise determines that a new job is pending, quantifies the job matrices, identifies the resources available to perform the required analyses, loads the job into the system, receives incoming data, for example from the sequencer 110, loads the same, and then processes the same. In particular, once the workflow is established, it may be saved, and then a modified barcode is assigned to that workflow, and the automated process occurs in accordance with the workflow guidelines.

[0718] Antes do presente sistema de gerenciamento de fluxo de trabalho automatizado 151, vários profissionais de bioinformática levariam um longo período de tempo para configurar e estabelecer o sistema, e suas partes componentes, e o mesmo exigiria, então, mais tempo para executar de fato a análise. Para tornar as coisas mais complicadas, o sistema teria que ser reconfigurado antes de receber a próxima amostra para analisar, exigindo ainda mais tempo para reconfigurar o sistema para analisar o novo conjunto de amostras. Com a tecnologia revelada no presente documento, o sistema pode ser inteiramente automatizado. O presente sistema, particularmente, é configurado de modo a receber automaticamente múltiplas amostras, mapear as mesmas a múltiplos fluxos de trabalho e segmentações diferentes e executar as mesmas no mesmo cartão de sistema ou em múltiplos cartões de sistema diferentes.[0718] Prior to the present automated workflow management system 151, it would take a long period of time for many bioinformatics professionals to configure and set up the system and its component parts, and it would then require more time to actually perform the analysis. To make matters more complicated, the system would have to be reconfigured before receiving the next sample to analyze, requiring even more time to reconfigure the system to analyze the new set of samples. With the technology disclosed herein, the system can be fully automated. In particular, the present system is configured to automatically receive multiple samples, map them to multiple different workflows and segmentations, and run them on the same system card or on multiple different system cards.

[0719] Consequentemente, o sistema de gerenciamento de fluxo de trabalho 151 lê as exigências do trabalho dos códigos de barras, aloca recursos para realizar os trabalhos, por exemplo, independentemente da localização, atualiza o código de barras da amostra e direciona as amostras aos recursos alocados, por exemplo, unidades de processamento, para processamento. Portanto, o gerenciador de fluxo de trabalho 151 determina os protocolos de análises secundárias e/ou terciárias 700 que serão executados nas amostras recebidas. Essas unidades de processamento são recursos que estão disponíveis para delinear e realizar as operações alocadas a cada conjunto de dados. Particularmente, o controlador de fluxo de trabalho 151 controla as várias operações associadas a receber e ler a amostra, determinar trabalhos, alocar recursos para o desempenho desses trabalhos, por exemplo, processamento secundário, conectar todos os componentes de sistema e avançar o conjunto de amostras através do sistema de componente para componente. O controlador 151, portanto, atua para gerenciar o sistema geral do começo ao fim, por exemplo, do recebimento da amostra à geração de VCF, e/ou através do processamento terciário, consultar a Figura 41B.[0719] Accordingly, the workflow management system 151 reads the job requirements from the barcodes, allocates resources to perform the jobs, e.g., regardless of location, updates the sample barcode, and directs the samples to the allocated resources, e.g., processing units, for processing. Accordingly, the workflow manager 151 determines the secondary and/or tertiary analysis protocols 700 that will be performed on the received samples. These processing units are resources that are available to outline and perform the operations allocated to each data set. In particular, the workflow controller 151 controls the various operations associated with receiving and reading the sample, determining jobs, allocating resources for the performance of those jobs, e.g., secondary processing, connecting all system components, and advancing the sample set through the system from component to component. The controller 151 therefore acts to manage the overall system from beginning to end, e.g., from sample receipt to VCF generation, and/or through tertiary processing, see Figure 41B.

[0720] Em casos adicionais, conforme pode ser observado em relação à Figura 41C, o sistema 1 pode incluir um estrato adicional de módulos de processamento 800, tal como configurado para dar processamento adicional, por exemplo, dos dados de resultados de processamento secundário e/ou terciário, tal como para diagnóstico, constatação de doença e/ou terapêutica e/ou profilaxia da mesma. Por exemplo, em diversos casos, uma camada adicional de processamento 800 pode ser fornecida, tal como para diagnóstico de doença, tratamento terapêutico e/ou prevenção profilática 70, tal como incluindo NIPT 123a, NICU 123b, Câncer 123c, LDT 123d, AgBio123e e outro tal diagnóstico de doença, profilaxia e/ou tratamentos que empregam os dados gerados por uma ou mais das presentes tubulações primárias e/ou secundárias e/ou terciárias.[0720] In additional instances, as can be seen with respect to Figure 41C, the system 1 may include an additional layer of processing modules 800, as configured to provide additional processing, for example, of secondary and/or tertiary processing result data, such as for diagnosis, disease discovery, and/or therapeutics and/or prophylaxis thereof. For example, in various instances, an additional layer of processing 800 may be provided, such as for disease diagnosis, therapeutic treatment, and/or prophylactic prevention 70, such as including NIPT 123a, NICU 123b, Cancer 123c, LDT 123d, AgBio123e, and other such disease diagnosis, prophylaxis, and/or treatments employing data generated by one or more of the present primary and/or secondary and/or tertiary pipelines.

[0721] Consequentemente, no presente documento é apresentado um sistema 1 para produzir e usar uma rede de nuvem híbrida local 30 e/ou global 50. Por exemplo, atualmente, a nuvem local 30 é usada principalmente para armazenamento privado, tal como em um local de armazenamento remoto 400. Em tal caso, a computação de dados é realizada localmente 100 por um recurso de computação local 140 e, quando as necessidades de armazenamento são extensivas, a nuvem local 30 pode ser acessada a fim de armazenar os dados gerados pelo recurso de computação local 140, tal como por meio do uso de um recurso de armazenamento remoto privado 400. Portanto, os dados gerados são tipicamente gerenciados completamente no sítio localmente 100. Em outras modalidades, os dados podem ser gerados, computados e gerenciados completamente fora do sítio conectando-se de modo seguro a um recurso de computação remoto 300 por meio de uma interface de nuvem privada 30.[0721] Accordingly, herein is disclosed a system 1 for producing and using a local 30 and/or global 50 hybrid cloud network. For example, currently, the local cloud 30 is primarily used for private storage, such as at a remote storage location 400. In such a case, data computation is performed locally 100 by a local computing resource 140, and when storage needs are extensive, the local cloud 30 may be accessed in order to store data generated by the local computing resource 140, such as through the use of a private remote storage resource 400. Therefore, the generated data is typically managed entirely on-site locally 100. In other embodiments, the data may be generated, computed, and managed entirely off-site by securely connecting to a remote computing resource 300 via a private cloud interface 30.

[0722] Particularmente, em uma implantação geral de uma plataforma de análise de bioinformática, as funções de computação 140 e/ou armazenamento 200 locais são mantidas localmente no sítio 100. Entretanto, quando o armazenamento precisa exceder a capacidade de armazenamento local, os dados podem ser atualizados por meio de um acesso de nuvem local 30 de modo a ser armazenado de modo provado fora do sítio 400. Ademais, quando há uma necessidade de que dados armazenados 400 sejam tornados disponíveis a outros usuários remotos, tais dados podem ser transferidos e tornados disponíveis por meio de uma interface de nuvem global 50 para armazenamento remoto 400 assim, mas para acesso global. Em tal caso, quando os recursos de computação 140 exigidos para desempenho das funções de computação é mínimo, mas as exigências de armazenamento extensivas, a função de computação 140 pode ser mantida localmente 100, enquanto a função de armazenamento 400 pode ser mantida remotamente, por exemplo, para acesso privado ou global, em que os dados completamente processados são transferidos para frente e para trás entre a função de processamento local 140, tal como para processamento local apenas, e a função de armazenamento 400, tal como para o armazenamento remoto 400 dos dados processados, tal como empregando-se protocolos de JIT revelados acima no presente documento.[0722] In particular, in a general deployment of a bioinformatics analysis platform, the local compute 140 and/or storage 200 functions are maintained locally at site 100. However, when storage needs exceed local storage capacity, the data may be updated via a local cloud access 30 so as to be stored securely off-site at site 400. Furthermore, when there is a need for stored data 400 to be made available to other remote users, such data may be transferred and made available via a global cloud interface 50 to remote storage 400 as well, but for global access. In such a case, when the computing resources 140 required for performance of the computing functions are minimal but the storage requirements are extensive, the computing function 140 may be maintained locally 100 while the storage function 400 may be maintained remotely, for example, for private or global access, wherein the fully processed data is transferred back and forth between the local processing function 140, such as for local processing only, and the storage function 400, such as for remote storage 400 of the processed data, such as by employing JIT protocols disclosed above herein.

[0723] Por exemplo, isso pode ser exemplificado em relação à função de sequenciamento 110, tal como com um NGS típico, em que o recurso de computação e/ou geração de dados 100 é configurado para realizar as funções exigidas para o sequenciamento do material genético a fim de produzir dados sequenciados genéticos, por exemplo, leituras, em que os dados são produzidos no local 100 e/ou transferidos em sítio localmente 30. Essas leituras, uma vez geradas, tal como pelo NGS no sítio, podem, então, ser transferidas, por exemplo, como um arquivo BCL ou FASTQ, através da rede de nuvem 30, tal como para armazenamento 400 em um local remoto 300 de uma maneira que sejam rechamadas da nuvem 30 quando necessário, tal como para processamento adicional. Por exemplo, uma vez que os dados de sequência tenham sido gerados e armazenados, por exemplo, 400, os dados podem ser, então, rechamados, por exemplo, para uso local, tal como para o desempenho de uma ou mais dentre funções de processamento secundário 600 e/ou terciário 700, ou seja, em um local remoto da instalação de armazenado 400, por exemplo, localmente 100. Em tal caso, o recurso de armazenamento local 200 serve meramente como um cache de armazenamento, em que os dados são colocados enquanto se espera a transferência para ou da nuvem 30/50, tal como para ou da instalação de armazenamento remota 400.[0723] For example, this may be exemplified with respect to sequencing function 110, such as with a typical NGS, wherein computing and/or data generation resource 100 is configured to perform functions required for sequencing genetic material to produce genetic sequenced data, e.g., reads, wherein data is generated at site 100 and/or transferred locally to site 30. Such reads, once generated, such as by the on-site NGS, may then be transferred, e.g., as a BCL or FASTQ file, over cloud network 30, such as to storage 400 at a remote location 300 in a manner that they are recalled from cloud 30 when needed, such as for further processing. For example, once sequence data has been generated and stored, e.g., 400, the data may then be recalled, e.g., for local use, such as for the performance of one or more of secondary 600 and/or tertiary 700 processing functions, i.e., at a location remote from storage facility 400, e.g., locally 100. In such a case, local storage facility 200 merely serves as a storage cache, in which data is placed while awaiting transfer to or from the cloud 30/50, such as to or from remote storage facility 400.

[0724] Do mesmo modo, quando a função de computação é extensiva, tal como exigindo um ou mais servidores de computação ou núcleos de agrupamento de computação remotos 300 para processar os dados, e quando o armazenamento demanda armazenar os dados processados 200 são relativamente mínimas, em comparação com os recursos de computação 300 exigidos para processar os dados, em que os dados a serem processados podem ser enviados, tal como através da nuvem 30, a fim de serem processados por um recurso de computação remoto 300, em que o recurso pode incluir um ou mais núcleos ou agrupamentos de recursos de computação, por exemplo, um ou mais super recursos de computação. Em tal caso, uma vez que dados foram processados pelo núcleo de computador baseado em nuvem 300, os dados processados podem ser, então, transferidos através da rede em nuvem 30 a fim de serem armazenados localmente 200 e tornados prontamente disponíveis para uso pelo recurso de computação local 140, tal como para análise e/ou diagnóstico local. Obviamente, os dados gerados remotamente 300 podem também ser armazenados remotamente 400.[0724] Likewise, when the computing function is extensive, such as requiring one or more remote computing servers or computing cluster cores 300 to process the data, and when the storage demands for storing the processed data 200 are relatively minimal compared to the computing resources 300 required to process the data, the data to be processed may be sent, such as via the cloud 30, to be processed by a remote computing resource 300, wherein the resource may include one or more computing cores or clusters of resources, e.g., one or more super computing resources. In such a case, once data has been processed by the cloud-based computer core 300, the processed data may then be transferred via the cloud network 30 to be stored locally 200 and made readily available for use by the local computing resource 140, such as for local analysis and/or diagnostics. Obviously, remotely generated data 300 can also be stored remotely 400.

[0725] Isso pode ser adicionalmente exemplificado em relação a uma função de processamento secundário típica 600, tal como quando os dados sequenciados pré- processados, por exemplo, dados de leitura, que são armazenados localmente 200 e são acessados, tal como pelo recurso de computação local 100, e transmitidos através de um internet em nuvem 30 para uma instalação de computação remota 300 a fim de serem adicionalmente processados pela mesma, por exemplo, em uma função de processamento secundário 600 ou terciário 700, para obter dados processados de resultados que podem ser, então, enviados de volta para a instalação local 100 para armazenamento 200 pela mesma. Esse pode ser o caso quando um praticante local gera dados de leitura sequenciados com o uso de um recurso de geração de dados local 100, por exemplo, sequenciador automatizado, de modo a produzir um arquivo de BCL ou FASTQ, e, então, envia aqueles dados através da rede 30 para uma instalação de computação remota 300, a qual, então, opera uma ou mais funções naqueles dados, tal como uma transformada de Burrows-Wheeler ou Needlemen-Wunsch e/ou função de alinhamento de SmithWaterman naqueles dados de sequência, a fim de gerar dados de resultados, por exemplo, em um formato de arquivo SAM, que podem, então, ser compactados e transmitidos através da internet 30/50, por exemplo, como um arquivo BAM, para o recurso de computação local 100 a fim de serem examinados pelo mesmo em um ou mais protocolos de processamento administrado locais, tal como para produzir um VCF que pode ser, então, armazenado localmente 200. Em vários casos, os dados podem ser também armazenados remotamente 400.[0725] This may be further exemplified with respect to a typical secondary processing function 600, such as when pre-processed sequenced data, e.g., read data, that is stored locally 200 and is accessed, such as by local computing resource 100, and transmitted via a cloud internet 30 to a remote computing facility 300 to be further processed therein, e.g., in a secondary 600 or tertiary processing function 700, to obtain processed result data that may then be sent back to local facility 100 for storage 200 therein. This may be the case when a local practitioner generates sequenced read data using a local data generation facility 100, e.g., automated sequencer, to produce a BCL or FASTQ file, and then sends that data over the network 30 to a remote computing facility 300, which then operates one or more functions on that data, such as a Burrows-Wheeler or Needlemen-Wunsch transform and/or Smith-Waterman alignment function on that sequence data to generate results data, e.g., in a SAM file format, which may then be compressed and transmitted over the Internet 30/50, e.g., as a BAM file, to the local computing facility 100 for examination by it in one or more local managed processing protocols, such as to produce a VCF that may then be stored locally 200. In various cases, the data may also be stored remotely 400.

[0726] Entretanto, o que é necessário é uma integração contínua entre o engate entre processamento de computador local 100 e remoto 300, assim como entre armazenamento local 200 e remoto 400, tal como no sistema baseado em nuvem híbrida 50 apresentado no presente documento. Em tal caso, o sistema pode ser configurado de forma que recursos de computação local 100 e remoto 300 sejam configurados a fim de operar de modo ininterrupto em conjunto, de forma que dados a serem processados pelo mesmo possam ser alocados em tempo real para o recurso de computação local 200 ou remoto 300 sem pagar uma penalidade extensiva devido à taxa de transferência e/ou na eficiência operacional. Esse pode ser o caso, por exemplo, quando o software e/ou hardware e/ou processamento quântico a ser instalado ou operado de outro modo pelos recursos de computação 100 e 300 é configurado a fim de corresponder um ao outro e/ou são os mesmos ou funcionalmente semelhantes, por exemplo, o hardware e/ou software é configurado da mesma forma a fim de operar os mesmos algoritmos da mesma forma nos dados gerados e/ou recebidos.[0726] However, what is needed is a seamless integration between the coupling between local 100 and remote 300 computer processing, as well as between local 200 and remote 400 storage, such as in the hybrid cloud-based system 50 disclosed herein. In such a case, the system may be configured such that local 100 and remote 300 computing resources are configured to operate seamlessly together, so that data to be processed thereby may be allocated in real time to either the local 200 or remote 300 computing resource without paying an extensive penalty due to throughput and/or operational efficiency. This may be the case, for example, when the software and/or hardware and/or quantum processing to be installed or otherwise operated by computing resources 100 and 300 are configured to correspond to each other and/or are the same or functionally similar, e.g., the hardware and/or software is configured in the same way in order to operate the same algorithms in the same way on the generated and/or received data.

[0727] Por exemplo, conforme pode ser observado em relação à Figura 41 A, um recurso de computação local 100 pode ser configurado para gerar ou para receber dados gerados e, portanto, pode incluir um mecanismo de geração de dados 110, tal como para geração e/ou análise de dados primários 500, por exemplo, a fim de produzir um arquivo de sequência FASTQ e/ou BCL. Esse mecanismo de geração de dados 110 pode ser ou pode estar associado a um computador local 100, conforme descrito em todo o presente documento, que tem um processador 140 que pode ser configurado para operar uma ou mais aplicações de software e/ou pode ser conectado com fio a fim de realizar um ou mais algoritmos, tal como em uma configuração com fio, nos dados gerados e/ou adquiridos. Por exemplo, o mecanismo de geração de dados 110 pode ser configurado para um ou mais dentre gerar dados, tal como sequenciar dados 111. Em várias modalidades, os dados gerados podem ser dados detectados 111a, tais como dados que são detectáveis como uma alteração na tensão, na concentração iônica, na radiação eletromagnética e semelhantes; e/ou o mecanismo de geração de dados 110 pode ser configurado para gerar e/ou processar sinal, por exemplo, dados de sinal analógico ou digital, tais como dados que representam uma ou mais identidades de nucleotídeo em uma sequência ou cadeia de nucleotídeos associados. Em tal caso, o mecanismo de geração de dados 110, por exemplo, sequenciador 111, pode ser adicionalmente configurado para realizar processamento preliminar dos dados gerados tal como para processamento de sinal 111b ou para realizar uma ou mais operações de chamada de base 111c, tais como nos dados, a fim de produzir dados de identidade de sequência, por exemplo, um arquivo de FASTQ e/ou BCL 111d.[0727] For example, as can be seen with respect to Figure 41A, a local computing resource 100 can be configured to generate or to receive generated data and therefore can include a data generation engine 110, such as for generating and/or analyzing primary data 500, for example, in order to produce a FASTQ and/or BCL sequence file. This data generation engine 110 can be or can be associated with a local computer 100, as described throughout this document, that has a processor 140 that can be configured to operate one or more software applications and/or can be wired to perform one or more algorithms, such as in a wired configuration, on the generated and/or acquired data. For example, the data generation engine 110 may be configured to one or more of generate data, such as sequence data 111. In various embodiments, the generated data may be sensed data 111a, such as data that is detectable as a change in voltage, ionic concentration, electromagnetic radiation, and the like; and/or the data generation engine 110 may be configured to generate and/or process signal, e.g., analog or digital signal data, such as data representing one or more nucleotide identities in a sequence or chain of associated nucleotides. In such a case, the data generation engine 110, e.g., sequencer 111, may be further configured to perform preliminary processing of the generated data such as for signal processing 111b or to perform one or more base calling operations 111c, such as on the data, in order to produce sequence identity data, e.g., a FASTQ and/or BCL file 111d.

[0728] Deve ser notado que, nesse caso, os dados produzidos 111 podem ser gerados local e diretamente, tal como por um recurso de geração 110 e/ou computação de dados local 140, por exemplo, um NGS ou sequenciador em um chip. Alternativamente, os dados podem ser produzidos local e indiretamente, por exemplo, por um recurso de computação e/ou geração remoto, tal como um NGS remoto. Os dados 111, por exemplo, e formato de arquivo BCL e/ou FASTQ, uma vez produzidos podem ser, então, transferidos indiretamente através da nuvem local 30 ao recurso de computação local 100 tal como para processamento secundário 140 e/ou armazenamento assim em um recurso de armazenamento local 200, tal como enquanto aguarda outro processamento local 140. Em tal caso, quando o recurso de geração de dados é remoto dos recursos de processamento local 100 e/ou armazenamento 200, os recursos correspondentes podem ser configurados de forma que o armazenamento remoto e/ou local, processamento remoto e local e/ou protocolos de comunicação empregados por cada recurso possam ser adaptados para se integrar suavemente e/ou de modo ininterrupto uns com os outro, por exemplo, operando-se o mesmo hardware, um hardware e/ou equivalente e/ou tendo-se as mesmas configurações de hardware, configurações de hardware semelhantes e/ou equivalentes e/ou empregando-se os mesmos protocolos de comunicações e/ou transferência, os quais, em alguns casos, podem ter sido implantados no momento de fabricação ou posteriormente.[0728] It should be noted that in this case, the produced data 111 may be generated locally and directly, such as by a local data generation and/or computation resource 110 , e.g., an NGS or sequencer-on-a-chip. Alternatively, the data may be produced locally and indirectly, e.g., by a remote generation and/or computation resource, such as a remote NGS. The data 111, for example, in BCL and/or FASTQ file format, once produced may then be transferred indirectly via the local cloud 30 to the local computing resource 100 for such secondary processing 140 and/or storage therein at a local storage resource 200, such as while awaiting further local processing 140. In such a case, when the data generating resource is remote from the local processing resources 100 and/or storage 200, the corresponding resources may be configured such that the remote and/or local storage, remote and local processing, and/or communication protocols employed by each resource may be adapted to integrate smoothly and/or seamlessly with each other, for example, by operating the same hardware, similar and/or equivalent hardware, and/or having the same hardware configurations, similar and/or equivalent hardware configurations, and/or employing the same communications and/or transfer protocols, which in some cases may have been deployed at the time of the data generation process. of manufacture or later.

[0729] Especificamente, em uma implantação, essas funções podem ser implantadas em uma configuração com fio tal como em que a função de sequenciamento e a função de processamento secundário são mantidas no mesmo chip ou chip ou conjunto de chips associados, por exemplo, tal como em que o sequenciador e processador secundário são diretamente interconectados em um chip, conforme descrito no presente documento. Em outras implantações, essas funções podem ser implantadas em dois ou mais dispositivos separados por meio de software, por exemplo, em um processador quântico, CPU ou GPU que foi otimizado para permitir que os dois dispositivos remotos se comuniquem continuamente um com o outro. Em outras implantações, uma combinação de implantações de hardware e software otimizadas para realizar as funções recitadas também pode ser empregada.[0729] Specifically, in one implementation, these functions may be deployed in a wired configuration such as where the sequencing function and the secondary processing function are maintained on the same chip or associated chip or set of chips, for example, such as where the sequencer and secondary processor are directly interconnected on one chip as described herein. In other implementations, these functions may be deployed on two or more separate devices via software, for example, on a quantum processor, CPU, or GPU that has been optimized to allow the two remote devices to communicate continuously with each other. In other implementations, a combination of hardware and software implementations optimized to perform the recited functions may also be employed.

[0730] Mais especificamente, as mesmas configurações podem ser implantadas em relação ao desempenho das funções de mapeamento, alinhamento, classificação, chamada de variante e/ou outras que podem ser empregadas pelos recursos de computação locais 100 e/ou remotos 300. Por exemplo, os recursos de computação local e/ou remota 300 podem incluir software e/ou hardware configurado para realizar um ou mais estratos secundários 600 de funções de processamento 112 a 115, e/ou estrados terciários 700/800 de funções de processamento, em dados gerados local e/ou remotamente, tais como dados de sequência genética, de uma forma que o processamento e os resultados dos mesmos possam ser compartilhados de modo ininterrupto um com o ouro e/ou armazenados pelos mesmos. Particularmente, a função de computação local 100 e/ou a função de computação remota 300 pode ser configurada para gerar e/ou receber dados primários, tais como dados de sequência genética, por exemplo, em um formato de arquivo BCL e/ou FASTQ, e operar um ou mais protocolos de processamento secundário 600 e/ou terciário 700 nesses dados gerados e/ou adquiridos. Em tal caso, um ou mais desses protocolos podem ser implantados em um formato de software, hardware ou combinatório, tal como executados em um processador quântico, uma CPU e/ou uma GPU. Por exemplo, a geração de dados 110 e/ou o recurso de processamento local 100 e/ou remoto 300 podem ser configurados para realizar um ou mais dentre uma operação de mapeamento 112, uma operação de alinhamento 113, chamada de variante 115ou outra função relacionada 114 nos dados adquiridos ou gerados em software e/ou em hardware.[0730] More specifically, the same configurations may be deployed with respect to the performance of mapping, alignment, classification, variant calling, and/or other functions that may be employed by local 100 and/or remote 300 computing resources. For example, local and/or remote computing resources 300 may include software and/or hardware configured to perform one or more secondary layers 600 of processing functions 112-115, and/or tertiary layers 700/800 of processing functions, on locally and/or remotely generated data, such as genetic sequence data, in a manner that the processing and results thereof may be seamlessly shared with and/or stored by one another. In particular, the local computing function 100 and/or the remote computing function 300 may be configured to generate and/or receive primary data, such as genetic sequence data, for example in a BCL and/or FASTQ file format, and operate one or more secondary processing protocols 600 and/or tertiary processing protocols 700 on such generated and/or acquired data. In such a case, one or more of these protocols may be implemented in a software, hardware, or combinatorial format, such as executed on a quantum processor, a CPU, and/or a GPU. For example, the data generation 110 and/or the local 100 and/or remote processing facility 300 may be configured to perform one or more of a mapping operation 112, an alignment operation 113, variant calling 115, or other related function 114 on the acquired or generated data in software and/or hardware.

[0731] Consequentemente, em diversas modalidades, o recurso de geração de dados, tal como o sequenciador 111, por exemplo, NGS ou sequenciador em um chip, se implantado em software e/ou em hardware ou uma combinação dos mesmos, pode ser adicionalmente configurado para incluir um estrato inicial de processadores 500, tais como um programador, diversos componentes analíticos, comparadores, gráficos, liberadores e semelhantes, a fim de auxiliar o gerador de dados 111, por exemplo, sequenciador, na conversão de informações biológicas em dados de leitura brutos, tais como em um arquivo de formato BCL ou FASTQ 111d. Ademais, o recurso de computação local 100, seja implantado em software e/ou em hardware, ou uma combinação dos mesmos, pode ser adicionalmente configurado para incluir um estrado adicional de processadores 600 tal como pode incluir um mecanismo de mapeamento 112, ou pode incluir de outro modo programar para executar um algoritmo de mapeamento nos dados de sequência genética, tal como para realizar transformada de Burrows-Wheeler e/ou outros algoritmos para construir uma tabela de hash e/ou executar uma função de hash 112a nos ditos dados, tal como para mapeamento de semente de hash, de modo a gerar dados de sequência mapeados. Adicionalmente, o recurso de computação local 100, se implantado em software e/ou em hardware, ou uma combinação dos mesmos, também pode incluir um mecanismo de alinhamento 113, conforme descrito no presente documento, ou pode incluir de outro modo programação para operar um algoritmo de alinhamento nos dados de sequência genética, por exemplo, dados sequenciados mapeados, tal como para realizar um alinhamento de Smith-Waterman com vãos e/ou sem vãos e/ou Needleman-Wunsch, ou outro algoritmo de pontuação semelhante 113a nos ditos dados, a fim de gerar dados de sequência alinhados.[0731] Accordingly, in various embodiments, the data generation resource, such as the sequencer 111, e.g., NGS or sequencer-on-a-chip, whether implemented in software and/or hardware or a combination thereof, may be further configured to include an initial layer of processors 500, such as a programmer, various analytical components, comparators, graphers, scorers, and the like, in order to assist the data generator 111, e.g., sequencer, in converting biological information into raw read data, such as in a BCL or FASTQ format file 111d. Furthermore, the local computing resource 100, whether implemented in software and/or hardware, or a combination thereof, may be further configured to include an additional platform of processors 600 such as may include a mapping engine 112, or may otherwise include programming to execute a mapping algorithm on the genetic sequence data, such as to perform Burrows-Wheeler transform and/or other algorithms to construct a hash table and/or execute a hash function 112a on said data, such as for hash seed mapping, so as to generate mapped sequence data. Additionally, the local computing resource 100, whether implemented in software and/or hardware, or a combination thereof, may also include an alignment engine 113 as described herein, or may otherwise include programming to operate an alignment algorithm on genetic sequence data, e.g., mapped sequenced data, such as to perform a gapped and/or gapless Smith-Waterman and/or Needleman-Wunsch alignment, or other similar scoring algorithm 113a on said data, in order to generate aligned sequence data.

[0732] A computação local 100 e/ou recurso de geração de dados 110 podem ser também configurados para incluir um ou mais outros módulos 114, sejam implantados em software e/ou em hardware, ou uma combinação dos mesmos, que podem ser adaptados para realizar uma ou mais outras funções de processamento nos dados de sequência genética, tal como nos dados de sequência mapeados e/ou alinhados. Assim, o um ou mais outros módulos podem incluir um mecanismo adequadamente configurado 114 ou incluir de outro modo programação, para executar a uma ou mais outras funções de processamento, tal como uma função (ou funções) de classificação 114a, desduplicação 114b, recalibração 114c, realinhamento local 114d, marcação de duplicada 114f, Recalibração de Pontuação de Qualidade de Base 114g e/ou uma função de compactação (tal como para produzir um arquivo de compactação e/ou descompactação SAM, BAM reduzido e/ou CRAM) 114e, em conformidade com os métodos descritos no presente documento. Em vários casos, uma ou mais dessas funções de processamento podem ser configuradas como uma ou mais segmentações do sistema 1.[0732] The local computing 100 and/or data generation resource 110 may also be configured to include one or more other modules 114, whether implemented in software and/or hardware, or a combination thereof, that may be adapted to perform one or more other processing functions on genetic sequence data, such as mapped and/or aligned sequence data. Thus, the one or more other modules may include a suitably configured engine 114, or otherwise include programming, to perform the one or more other processing functions, such as a classification function (or functions) 114a, deduplication 114b, recalibration 114c, local realignment 114d, duplicate marking 114f, Base Quality Score Recalibration 114g, and/or a compression function (such as to produce a SAM, reduced BAM, and/or CRAM compression and/or decompression file) 114e, in accordance with the methods described herein. In various instances, one or more of these processing functions may be configured as one or more segmentations of the system 1.

[0733] De modo semelhante, o sistema 1 pode ser configurado para incluir um módulo 115, seja implantado em software e/ou em hardware, ou uma combinação dos mesmos, que pode ser adaptado para processar os dados, por exemplo, os dados sequenciados, mapeados, alinhados e/ou classificados de uma maneira que produza um arquivo de chamada de variante 116. Particularmente, o sistema 1 pode incluir um módulo de chamada de variante 115 para operar uma ou mais funções de chamada de variante, tal como um Modelo Oculto de Markov (HMM) e/ou uma função de GATK 115a, tal como em uma configuração com fio e/ou por meio de uma ou mais aplicações de software, por exemplo, local ou remotamente, e/ou um conversor 115b para os mesmos. Em vários casos, esse módulo pode ser configurado como uma ou mais segmentações do sistema 1.[0733] Similarly, system 1 may be configured to include a module 115, whether implemented in software and/or hardware, or a combination thereof, which may be adapted to process data, e.g., sequenced, mapped, aligned, and/or classified data, in a manner that produces a variant call file 116. In particular, system 1 may include a variant call module 115 for operating one or more variant call functions, such as a Hidden Markov Model (HMM) and/or a GATK function 115a, such as in a wired configuration and/or via one or more software applications, e.g., locally or remotely, and/or a converter 115b therefor. In various instances, such a module may be configured as one or more segmentations of system 1.

[0734] Em modalidades particulares, conforme apresentado na Figura 41B, o sistema 1 pode incluir uma função de computação local 100 que pode ser configurada para empregar um recurso de processamento de computador 150 para realizar uma ou mais funções de processamento de computador adicionais em dados, por exemplo, dados de BCL e/ou FASTQ, gerados pelo gerador de dados de sistema 110 ou adquiridos pelo mecanismo de aquisição de sistema 120 (conforme descrito no presente documento), tal como por meio de serem transferidos para os mesmos, por exemplo, por terceiros 121, tal como por meio de uma rede em nuvem 30 ou nuvem híbrida 50. Por exemplo, um analisador de terceiros 121 pode distribuir um recurso de computação remoto 300 a fim de gerar dados relevantes na necessidade de processamento adicional, tais como dados de sequência genética ou semelhantes, em que os dados podem ser comunicados ao sistema 1 através da rede 30/50 a fim de serem adicionalmente processados. Isso pode ser útil, por exemplo, quando o recurso de computação remoto 300 é um NGS, configurado para pegar dados biológicos brutos e conversor os mesmos em uma representação digital dos mesmos, tal como na forma de um ou mais arquivos de FASTQ que contêm leituras de dados de sequência genética, e quando o processamento adicional é desejado, tal como para determinar como a sequência gerada de um indivíduo é diferente daquela de uma ou mais sequências de referência, conforme descrito no presente documento, e/ou é desejado para submeter os resultados dos mesmos a processamento adicional, por exemplo, terciário.[0734] In particular embodiments, as shown in Figure 41B, system 1 may include a local computing function 100 that may be configured to employ a computer processing resource 150 to perform one or more additional computer processing functions on data, e.g., BCL and/or FASTQ data, generated by system data generator 110 or acquired by system acquisition engine 120 (as described herein), such as by being transferred thereto by, e.g., a third party 121, such as via a cloud network 30 or hybrid cloud 50. For example, a third party analyzer 121 may deploy a remote computing resource 300 in order to generate relevant data in need of further processing, such as genetic sequence data or the like, wherein the data may be communicated to system 1 via network 30/50 in order to be further processed. This may be useful, for example, when the remote computing resource 300 is an NGS, configured to take raw biological data and convert it into a digital representation thereof, such as in the form of one or more FASTQ files containing reads of genetic sequence data, and when further processing is desired, such as to determine how the generated sequence of an individual is different from that of one or more reference sequences, as described herein, and/or it is desired to subject the results thereof to further, e.g., tertiary, processing.

[0735] Em tal caso, o sistema 1 pode ser adaptado a fim de permitir que uma ou mais partes, por exemplo, um usuário primário e/ou secundário e/ou de terceiros, para acessar os recursos locais de processamento associados 100 e/ou um recurso de processamento remoto adequadamente configurado 300 associado ao mesmo, de uma forma a fim de permitir que o usuário realize uma ou mais funções de processamento quantitativas e/ou qualitativas 152 nos dados gerados e/ou adquiridos. Por exemplo, em uma configuração, o sistema 1 pode incluir, por exemplo, além das tubulações de processamento primárias 600 e/ou secundárias 600, um terceiro estrato de módulos de processamento 700/800, em que os módulos de processamento podem ser configurados para realizar uma ou mais funções de processamento nos dados gerados e/ou adquiridos processados primários e/ou secundários.[0735] In such a case, the system 1 may be adapted to allow one or more parties, e.g., a primary and/or secondary and/or third party user, to access the associated local processing resources 100 and/or a suitably configured remote processing resource 300 associated therewith, in a manner so as to allow the user to perform one or more quantitative and/or qualitative processing functions 152 on the generated and/or acquired data. For example, in one embodiment, the system 1 may include, e.g., in addition to the primary and/or secondary processing pipelines 600 and/or secondary processing pipelines 600, a third layer of processing modules 700/800, wherein the processing modules may be configured to perform one or more processing functions on the primary and/or secondary processed generated and/or acquired data.

[0736] Particularmente, em uma modalidade, o sistema 1 pode ser configurado para gerar e/ou receber dados processados de sequência genética 111 que foram mapeados 112, alinhados 113, classificados 114a e/ou processados adicionalmente remota ou localmente 114 a fim de gerar um arquivo de chamada de variante 116, em que o arquivo de chamada de variante pode ser, então, submetido a processamento adicional, tal como dentro do sistema 1, tal como em resposta a solicitações de análises de segunda parte e/ou terceiros 121. Mais particularmente, o sistema 1 pode ser configurado para receber solicitações de processamento a partir de terceiros 121 e, adicionalmente, ser configurado para realizar tal processamento secundário 600 e/ou terciário 700/800 solicitado nos dados gerados e/ou adquiridos. Especificamente, o sistema 1 pode ser configurado para produzir e/ou adquirir dados de sequência genética 111, pode ser configurado para pegar esses dados de sequência genética e mapear 112, alinhar 113 e/ou classificar 114a os mesmos e processar os mesmos para produzir um ou mais arquivos de chamada de variante (VCFs) 116 e, adicionalmente, o sistema 1 pode ser configurado para realizar uma função de processamento terciário 700/800 nos dados, por exemplo, em relação ao um ou mais VCFs gerados ou recebidos pelo sistema 1.[0736] Particularly, in one embodiment, system 1 may be configured to generate and/or receive processed genetic sequence data 111 that has been mapped 112, aligned 113, classified 114a, and/or further processed remotely or locally 114 in order to generate a variant call file 116, wherein the variant call file may then be subjected to further processing, such as within system 1, such as in response to second-party and/or third-party analysis requests 121. More particularly, system 1 may be configured to receive processing requests from third parties 121 and further be configured to perform such requested secondary 600 and/or tertiary 700/800 processing on the generated and/or acquired data. Specifically, system 1 may be configured to produce and/or acquire genetic sequence data 111, may be configured to take such genetic sequence data and map 112, align 113, and/or classify 114a the same, and process the same to produce one or more variant call files (VCFs) 116, and additionally, system 1 may be configured to perform a tertiary processing function 700/800 on the data, e.g., with respect to the one or more VCFs generated or received by system 1.

[0737] Particularmente, o sistema 1 pode ser configurado de modo a realizar qualquer forma de processamento terciário 700 nos dados gerados e/ou adquiridos, tal como submetendo-se os mesmos a uma ou mais funções de processamento de segmentação 700 tal como para gerar dados 122a de genoma, por exemplo, genoma inteiro, dados de epigenoma 122b, dados de metagenoma 122c e similares, incluindo dados 122d de genotipagem, por exemplo, genotipagem conjunta, dados de análises de variantes, incluindo dados de análise de GATK 122e e/ou MuTect2 122f, entre outras segmentações analíticas de dados potenciais, tal como uma segmentação de análise de microarranjo, segmentação de análise de exoma, segmentação de análise de microbioma, segmentações de sequenciamento de RNA e outras segmentações de análises genéticas. Adicionalmente, o sistema 1 pode ser configurado para realizar um estrato adicional de processamento 800 nos dados gerados e/ou processados, tal como incluindo um ou mais dentre teste pré-natal não invasivo (NIPT) 123 a, N/P ICU 123b, modalidades de diagnóstico e/ou terapêuticas relacionadas a câncer 123c, diversos testes desenvolvidos em laboratório (LDT) 123d, aplicações agrícolas biológicas (Ag Bio) 123e ou outra tal função de processamento relacionada a assistência médica 123f. Consultar a Figura 41C.[0737] In particular, the system 1 may be configured to perform any form of tertiary processing 700 on the generated and/or acquired data, such as subjecting the same to one or more segmentation processing functions 700 such as to generate genome data 122a, e.g., whole genome, epigenome data 122b, metagenome data 122c, and the like, including genotyping data 122d, e.g., joint genotyping, variant analysis data, including GATK 122e and/or MuTect2 analysis data 122f, among other potential data analytic segmentations, such as a microarray analysis segmentation, exome analysis segmentation, microbiome analysis segmentation, RNA sequencing segmentations, and other genetic analysis segmentations. Additionally, the system 1 may be configured to perform an additional layer of processing 800 on the generated and/or processed data, such as including one or more of non-invasive prenatal testing (NIPT) 123a, ICU N/P 123b, cancer-related diagnostic and/or therapeutic modalities 123c, various laboratory developed tests (LDT) 123d, agricultural biological (Ag Bio) applications 123e, or other such healthcare-related processing function 123f. See Figure 41C.

[0738] Logo, em diversas modalidades, quando um usuário primário pode acessar e/ou configurar o sistema 1 e seus diversos componentes diretamente, tal como através de acesso direto ao mesmo, tal como através do recurso de computação local 100, conforme apresentado no presente documento, o sistema 1 também pode ser adaptado para ser acessado por uma parte secundária, tal como é conectado ao sistema 1 por meio de uma rede local ou uma conexão por intranet 10 a fim de configurar e operar o sistema 1 dentro do ambiente local. Adicionalmente, em certas modalidades, o sistema pode ser adaptado para ser acessado e/ou configurado por terceiros 121, tal como através de uma rede em nuvem híbrida associada 50 que conecta os terceiros 121 ao sistema 1, tal como através de uma interface de programa de aplicação (API), acessível através de um ou mais componentes de interface de usuário gráfica (GUI). Tal GUI pode ser configurada para permitir que o usuário de terceiros acesse o sistema 1 e, com o uso da API, configure os diversos componentes do sistema, os módulos, as tubulações associadas e outras funcionalidades de geração e/ou processamento de dados associadas a fim de operar apenas aqueles componentes de sistema necessários e/ou úteis para os terceiros e/ou solicitados ou desejados a serem operados pelos mesmos.[0738] Thus, in various embodiments, where a primary user may access and/or configure system 1 and its various components directly, such as through direct access thereto, such as through local computing resource 100 as disclosed herein, system 1 may also be adapted to be accessed by a secondary party, such as one connected to system 1 via a local network or an intranet connection 10 in order to configure and operate system 1 within the local environment. Additionally, in certain embodiments, the system may be adapted to be accessed and/or configured by third parties 121, such as via an associated hybrid cloud network 50 that connects the third parties 121 to system 1, such as via an application program interface (API) accessible via one or more graphical user interface (GUI) components. Such GUI may be configured to allow the third party user to access the system 1 and, using the API, configure the various system components, modules, associated pipelines and other associated data generation and/or processing functionality in order to operate only those system components necessary and/or useful to the third party and/or requested or desired to be operated by the third party.

[0739] Consequentemente, em diversos casos, o sistema 1, conforme apresentado no presente documento, pode ser adaptado a fim de ser configurável por um usuário primário, secundário ou terciário do sistema. Em tal caso, o sistema 1 pode ser adaptado para permitir que o usuário configure o sistema 1 e, desse modo, disponha seus componentes de t al forma a fim de distribuir um, todos ou uma seleção dos recursos de sistema analítico, por exemplo, 152, a serem operados em dados que são gerados, adquiridos ou transferidos de outro modo para o sistema, por exemplo, por meio do usuário primário, secundário ou de terceiros, de forma que o sistema 1 opere apenas essas porções do sistema necessárias ou úteis para operar as análises solicitadas pelo usuário para obter os resultados desejados dos mesmos. Por exemplo, para esses e outros tais propósitos, uma API pode ser incluída no sistema 1, em que a API é configurada a fim de incluir ou ser de outro modo operacionalmente associada a uma interface de usuário gráfica (GUI) que inclui um menu operável e/ou uma lista relacionada de chamadas de função de sistema a partir dos quais o usuário pode selecionar e/ou fazer de outro modo a fim de configurar e operar o sistema e seus componentes conforme desejado.[0739] Accordingly, in various instances, system 1 as disclosed herein may be adapted to be configurable by a primary, secondary, or tertiary user of the system. In such an instance, system 1 may be adapted to allow the user to configure system 1 and thereby arrange its components in such a manner as to distribute any, all, or a selection of the analytical system capabilities, e.g., 152, to be operated on data that is generated, acquired, or otherwise transferred to the system, e.g., by the primary, secondary, or third-party user, such that system 1 operates only those portions of the system necessary or useful to operate the analyses requested by the user to obtain the desired results therefrom. For example, for these and other such purposes, an API may be included in system 1, wherein the API is configured to include or be otherwise operatively associated with a graphical user interface (GUI) that includes an operable menu and/or related list of system function calls from which the user may select and/or otherwise make in order to configure and operate the system and its components as desired.

[0740] Em tal caso, as chamadas de função de menu de GUI e/ou sistema podem direcionar as operações selecionáveis por usuário de um ou mais de um primeiro estrato de operações 600, incluindo: sequenciamento 111, mapeamento 112, alinhamento 113, classificação 114a, chamada de variante 115 e/ou outras funções associadas 114 de acordo com os ensinamentos no presente documento, tal como com relação às funções de processamento primário e/ou secundário descritas no presente documento. Ademais, quando as chamadas de função de menu de GUI e/ou sistema desejadas podem ser diretas, as operações de um ou mais dentre um segundo estrado de operações 700 incluindo: um genoma, por exemplo, gemoma inteiro, segmentação de análise 122a, segmentação de epigenoma 122b, segmentação de metagenoma 122c, uma genotipagem, por exemplo, conjunta, segmentação de genotipagem 122d, variantes segmentações, por exemplo, segmentações de análise de GATK 122e e/ou MuTect2 122f, incluindo segmentações de variantes estruturais, assim como outras segmentações de análises terciárias, tal como uma segmentação de análise de microarranjo, segmentação de análise de exoma, segmentação de análise de microbioma, segmentações de sequenciamento de RNA e outras segmentações de análises genéticas. Adicionalmente, quando desejado, as chamadas de função de sistema e de menu de GUI podem direcionar as operações selecionáveis por usuário de uma ou mais de um terceiro estrato de operações 800, incluindo: teste pré-natal não invasivo (NIPT) 123a, N/P ICU 123b, modalidades de diagnóstico e/ou terapêuticas relacionadas a câncer 123c, diversos testes desenvolvidos em laboratório (LDT) 123 d, aplicações agrícolas biológicas (Ag Bio) 123e ou outras tais funções de processamento relacionadas a assistência médica 123f.[0740] In such a case, the GUI and/or system menu function calls may direct user-selectable operations of one or more of a first stratum of operations 600, including: sequencing 111, mapping 112, alignment 113, classification 114a, variant calling 115, and/or other associated functions 114 in accordance with the teachings herein, such as with respect to the primary and/or secondary processing functions described herein. Furthermore, when the desired GUI and/or system menu function calls may be direct, operations of one or more of a second layer of operations 700 including: a genome, e.g., whole gemome, analysis segment 122a, epigenome segment 122b, metagenome segment 122c, a genotyping, e.g., joint, genotyping segment 122d, variant segments, e.g., GATK 122e and/or MuTect2 122f analysis segments, including structural variant segments, as well as other tertiary analysis segments, such as a microarray analysis segment, exome analysis segment, microbiome analysis segment, RNA sequencing segments, and other genetic analysis segments. Additionally, when desired, the GUI menu and system function calls may direct user-selectable operations of one or more of a third layer of operations 800, including: non-invasive prenatal testing (NIPT) 123a, ICU N/P 123b, cancer-related diagnostic and/or therapeutic modalities 123c, various laboratory developed tests (LDT) 123d, agricultural biological (Ag Bio) applications 123e, or other such healthcare-related processing functions 123f.

[0741] Consequentemente, as chamadas de função de sistema e de menu podem incluir um ou mais processamento primário, secundário e/ou terciário funções, a fim de permitir que o sistema e/ou suas partes de componente sejam configurados, tal como em relação a realizar uma ou mais tubulações de análise de dados conforme selecionado e configurado pelo usuário. Em tal caso, o recurso de computação local 100 pode ser configurado para corresponder a e/ou espelhar o recurso de computação remoto 300 e/ou, do mesmo modo, o recurso de armazenamento local 200 pode ser configurado para corresponder a e/ou espelhar o recurso de armazenamento remoto 400 de forma que os diversos componentes do sistema possam ser operados e/ou os dados gerados pelos mesmos possam ser armazenados local ou remotamente de uma forma distribuída ininterrupta conforme escolhido pelo uso do sistema 1. Adicionalmente, em modalidades particulares, o sistema 1 pode ser tornado acessível a terceiros para operar protocolos de análise proprietários 121a nos dados gerados e/ou processados, tal como operando-se através de uma interface de inteligência artificial projetada para encontrar correlações entre os mesmos.[0741] Accordingly, system and menu function calls may include one or more primary, secondary, and/or tertiary processing functions in order to allow the system and/or its component parts to be configured, such as with respect to performing one or more data analysis pipelines as selected and configured by the user. In such a case, the local computing resource 100 may be configured to correspond to and/or mirror the remote computing resource 300 and/or, likewise, the local storage resource 200 may be configured to correspond to and/or mirror the remote storage resource 400 so that the various components of the system may be operated and/or the data generated thereby may be stored locally or remotely in a seamless distributed manner as chosen by the use of the system 1. Additionally, in particular embodiments, the system 1 may be made accessible to third parties to operate proprietary analysis protocols 121a on the generated and/or processed data, such as by operating through an artificial intelligence interface designed to find correlations therebetween.

[0742] O sistema 1 pode ser configurado a fim de realizar qualquer forma de processamento terciário nos dados gerados e/ou adquiridos. Logo, em diversas modalidades, um usuário primário, secundário ou terciário pode acessar e/ou configurar qualquer nível do sistema 1 e seus diversos componentes diretamente, tal como através do acesso direto com o recurso de computação 100, indiretamente, tal como por meio de uma conexão de rede local 30, ou através de uma rede em nuvem híbrida associada 50 que conecta a parte ao sistema 1, tal como através de uma API apropriadamente configurada que tem as permissões apropriadas. Em tal caso, os componentes de sistema podem ser apresentados como um menu, tal como um menu selecionável por GUI, em que o usuário pode selecionar a partir de todas as diversas opções de processamento e armazenamento desejadas a serem operadas nos dados apresentados pelo usuário. Adicionalmente, em diversos casos, o usuário pode transferir por upload u seus próprios protocolos de sistema a fim de serem adotados e operados pelo sistema a fim de processar diversos dados de uma forma projetada e selecionada pelo usuário. Em tal caso, a GUI e a API associada permitirão que o usuário acesse o sistema 1 e, com o uso da API, adicione e configure os diversos componentes do sistema, os módulos, as tubulações associadas e outras funcionalidades de geração e/ou processamento de dados associadas a fim de operar apenas aqueles componentes de sistema necessários e/ou úteis à parte e/ou solicitados ou desejados a serem operados pela mesma.[0742] The system 1 may be configured to perform any form of tertiary processing on the generated and/or acquired data. Thus, in various embodiments, a primary, secondary, or tertiary user may access and/or configure any level of the system 1 and its various components directly, such as through direct access to the computing resource 100, indirectly, such as through a local network connection 30, or through an associated hybrid cloud network 50 that connects the party to the system 1, such as through an appropriately configured API that has appropriate permissions. In such a case, the system components may be presented as a menu, such as a GUI-selectable menu, wherein the user may select from all of the various processing and storage options desired to be operated on the data presented by the user. Additionally, in various cases, the user may upload his or her own system protocols to be adopted and operated by the system to process various data in a manner designed and selected by the user. In such a case, the GUI and associated API will allow the user to access system 1 and, using the API, add and configure the various system components, modules, associated pipelines and other associated data generation and/or processing functionality in order to operate only those system components that are necessary and/or useful to the party and/or requested or desired to be operated by the party.

[0743] Em relação à Figura 41C, um ou mais dos módulos demarcados acima, e suas respectivas funções e/ou recursos associados, podem ser configurados para serem realizados remotamente, tal como por meio de um recurso de computação remoto 300, e serem adicionalmente adaptados para serem transmitidos ao sistema 1, tal como em um protocolo de transferência ininterrupto através de uma conexão de internet baseada em nuvem global 50, tal como por meio de um mecanismo de aquisição de dados adequadamente configurado 120. Consequentemente, em tal caso, um recurso de computação local 100 pode incluir um mecanismo de aquisição de dados 120, tal como configurado para transmitir e/ou receber tais dados adquiridos e/ou informações associadas.[0743] Referring to Figure 41C, one or more of the modules demarcated above, and their respective associated functions and/or features, may be configured to be performed remotely, such as via a remote computing resource 300, and be further adapted to be transmitted to system 1, such as in a seamless transfer protocol via a global cloud-based internet connection 50, such as via a suitably configured data acquisition engine 120. Accordingly, in such a case, a local computing resource 100 may include a data acquisition engine 120, as configured to transmit and/or receive such acquired data and/or associated information.

[0744] Por exemplo, o sistema 1 pode incluir mecanismo de aquisição de dados 120 que é configurado de uma maneira que permita que o processamento e/ou armazenamento continuados de dados ocorram de uma maneira ininterrupta e estável, tal como através de uma rede baseada em nuvem 50, em que as funções de processamento são distribuídas tanto local 100 quanto remotamente 300. De modo semelhante, quando um ou mais dos resultados de tal processamento pode ser armazenado local 200 e/ou remotamente 400, de modo que o sistema aloque ininterruptamente a qual recurso local ou remoto um dado trabalho deve ser enviado para processamento e/ou armazenamento a despeito de onde o recurso está fisicamente posicionado. Tais processamento, transferência e aquisição distribuídos podem incluir uma ou mais dentre funções de sequenciamento 111, mapeamento 112, alinhamento 113, classificação 114a, marcação de duplicada 114c, desduplicação, recalibração 114d, realinhamento local 114e, Recalibração de Pontuação de Qualidade de Base 114f e/ou uma função de compressão 114g, assim como uma função de chamada de variante 116, conforme descrito no presente documento. Quando armazenados local 200 ou remotamente 400, os dados processados, em qualquer estado que os mesmos estejam no processo, podem ser tornados disponíveis para os recursos de processamento local 100 ou remoto 300, tal como para processamento adicional antes da retransmissão e/ou do rearmazenamento.[0744] For example, system 1 may include data acquisition engine 120 that is configured in a manner that allows continued processing and/or storage of data to occur in an uninterrupted and stable manner, such as via a cloud-based network 50, wherein processing functions are distributed both locally 100 and remotely 300. Similarly, when one or more of the results of such processing may be stored locally 200 and/or remotely 400, such that the system seamlessly allocates to which local or remote resource a given job should be sent for processing and/or storage regardless of where the resource is physically located. Such distributed processing, transfer, and acquisition may include one or more of sequencing functions 111, mapping 112, alignment 113, classification 114a, duplicate marking 114c, deduplication, recalibration 114d, local realignment 114e, Base Quality Score Recalibration 114f, and/or a compression function 114g, as well as a variant calling function 116, as described herein. When stored locally 200 or remotely 400, the processed data, in whatever state it is in the process, may be made available to local 100 or remote 300 processing resources, such as for further processing prior to retransmission and/or re-storage.

[0745] Especificamente, o sistema 1 pode ser configurado para produzir e/ou adquirir dados de sequência genética 111, pode ser configurado para pegar esses dados de sequência genética e processar os mesmos localmente 140 ou transferir os dados através de uma rede de nuvem 30 ou nuvem híbrida 50 adequadamente configurada, tal como para uma instalação de processamento remota para processamento remoto 300. Adicionalmente, uma vez processados, o sistema 1 pode ser configurado para armazenar os dados processados remotamente 400 ou transferir os mesmos de volta para o armazenamento local 200. Consequentemente, o sistema 1 pode ser configurado para geração e/ou processamento local ou remoto de dados, tal como quando as etapas de geração e/ou processamento podem ser de um primeiro estrato de funções de processamento primário e/ou secundário 600, em que o estrato pode incluir um ou mais dentre: sequenciamento 111, mapeamento 112, alinhamento 113, e/ou classificação 114a a fim de produzir um ou mais arquivos de chamada de variante (VCFs) 116.[0745] Specifically, system 1 may be configured to produce and/or acquire genetic sequence data 111, may be configured to take such genetic sequence data and process it locally 140 or transfer the data via a suitably configured cloud network 30 or hybrid cloud 50, such as to a remote processing facility for remote processing 300. Additionally, once processed, system 1 may be configured to store the processed data remotely 400 or transfer it back to local storage 200. Accordingly, system 1 may be configured for local or remote generation and/or processing of data, such as where the generation and/or processing steps may be of a first tier of primary and/or secondary processing functions 600, wherein the tier may include one or more of: sequencing 111, mapping 112, alignment 113, and/or classification 114a in order to produce one or more variant call files (VCFs) 116.

[0746] Ademais, o sistema 1 pode ser configurado para geração e/ou processamento local ou remoto de dados, tal como em que as etapas de geração e/ou processamento podem ser de um segundo estrado de funções de processamento terciário 700, em que o estrado pode incluir um ou mais dentre gerenciamento e/ou aquisição de dados de acordo com uma segmentação de genoma 122a, segmentação de epigenoma 122b, segmentação de metagenoma 122c, uma segmentação de genotipagem 122d, variantes, por exemplo, GATK 122e e/ou MuTect2, segmentação de análise 122f, assim como outras segmentações de análises terciárias, tal como uma segmentação de análise de microarranjo, uma segmentação de análise de microbioma, uma segmentação de análise de exoma, assim como segmentações de sequenciamento de RNA e outras segmentações de análise genética. Adicionalmente, o sistema 1 pode ser configurado para geração e/ou processamento locais ou remotos de dados, tal como em que as etapas de geração e/ou processamento podem ser de um terceiro estrado de funções de processamento terciário 800, em que o estrado pode incluir um ou mais dentre gerar e/ou adquirir dados relacionados a e incluindo: teste pré-natal não invasivo (NIPT) 123a, N/P ICU 123b, modalidades diagnósticas e/ou terapêuticas relacionadas a câncer 123 c, vários testes desenvolvidos em laboratório (LDT) 123d, aplicações biológicas agrícolas (Ag Bio) 123e ou outras funções de processamento relacionadas a cuidados com a saúde 123f.[0746] Furthermore, the system 1 may be configured for local or remote data generation and/or processing, such as wherein the generation and/or processing steps may be from a second platform of tertiary processing functions 700, wherein the platform may include one or more of data management and/or acquisition according to a genome segmentation 122a, an epigenome segmentation 122b, a metagenome segmentation 122c, a genotyping segmentation 122d, variants of, e.g., GATK 122e and/or MuTect2, analysis segmentation 122f, as well as other tertiary analysis segmentations, such as a microarray analysis segmentation, a microbiome analysis segmentation, an exome analysis segmentation, as well as RNA sequencing segmentations and other genetic analysis segmentations. Additionally, system 1 may be configured for local or remote generation and/or processing of data, such as wherein the generation and/or processing steps may be a third layer of tertiary processing functions 800, wherein the layer may include one or more of generating and/or acquiring data related to and including: non-invasive prenatal testing (NIPT) 123a, ICU N/P 123b, cancer-related diagnostic and/or therapeutic modalities 123c, various laboratory developed tests (LDT) 123d, agricultural biological applications (Ag Bio) 123e, or other healthcare-related processing functions 123f.

[0747] Em modalidades particulares, conforme apresentado na Figura 41C, o sistema 1 pode ser adicionalmente configurado para permitir que uma ou mais partes acessem o sistema e transfiram informações para ou a partir do processamento local associado 100 e/ou dos recursos de processamento remoto 300, assim como para armazenar informações local 200 ou remotamente 400 de uma forma que permita que o usuário escolha quais informações são processadas e/ou armazenadas e onde no sistema 1. Em tal caso, um usuário pode decidir não apenas quais funções de processamento primário, secundário e/ou terciário são realizadas em dados gerados e/ou adquiridos, mas também como esses recursos são distribuídos e/ou onde os resultados de tal processamento são armazenados. Por exemplo, em uma configuração, o usuário pode selecionar se os dados são gerados local ou remotamente, ou uma combinação dos mesmos, se o mesmo é submetido a processamento secundário e, se sim, a quais módulos de processamento secundário os mesmos são submetidos e/ou qual recurso opera quais desses processos, e pode determinar adicionalmente se os dados então gerados ou adquiridos são adicionalmente submetidos a processamento terciário e, se sim, a quais módulos e/ou quais estratos de processamento terciário os mesmos são submetidos e/ou qual recurso opera qual desses processos e, do mesmo modo, onde os resultados desses processos são armazenados para cada etapa das operações.[0747] In particular embodiments, as shown in Figure 41C, system 1 may be further configured to allow one or more parties to access the system and transfer information to or from associated local processing 100 and/or remote processing resources 300, as well as to store information locally 200 or remotely 400 in a manner that allows the user to choose what information is processed and/or stored and where in system 1. In such a case, a user may decide not only what primary, secondary, and/or tertiary processing functions are performed on generated and/or acquired data, but also how those resources are distributed and/or where the results of such processing are stored. For example, in one configuration, the user may select whether the data is generated locally or remotely, or a combination thereof, whether the same is subjected to secondary processing and, if so, to which secondary processing modules the same is subjected and/or which resource operates which of these processes, and may further determine whether the data so generated or acquired is further subjected to tertiary processing and, if so, to which modules and/or which tertiary processing layers the same is subjected and/or which resource operates which of these processes, and likewise where the results of these processes are stored for each step of the operations.

[0748] Particularmente, em uma modalidade, o usuário pode configurar o sistema 1 da Figura 41 A de forma que a geração de dados de sequência genética 111 ocorra remotamente, tal como por um NGS, mas o processamento secundário 600 dos dados ocorra localmente 100. Em tal caso, o usuário pode, então, determinar quais das funções de processamento secundário ocorrem localmente 100, tal como selecionando-se as funções de processamento, tal como mapeamento 112, alinhamento 113, classificação 111, e/ou produzir um VCF 116, a partir de um menu de opções de processamento disponíveis. O usuário pode, então, selecionar se os dados localmente processados são submetidos a processamento terciário e, se sim, quais módulos são ativados a fim de processar adicionalmente os dados e se tal processamento terciário ocorre local 100 ou remotamente 300. Do mesmo modo, o usuário pode selecionar diversas opções para os diversos estratos de opções de processamento terciário e em que quaisquer dados gerados e/ou adquiridos devem ser armazenados, local 200 ou remotamente 400, em qualquer dada etapa ou tempo de operação.[0748] Particularly, in one embodiment, the user may configure the system 1 of Figure 41A such that the generation of genetic sequence data 111 occurs remotely, such as by an NGS, but the secondary processing 600 of the data occurs locally 100. In such a case, the user may then determine which of the secondary processing functions occur locally 100, such as by selecting processing functions, such as mapping 112, alignment 113, classification 111, and/or producing a VCF 116, from a menu of available processing options. The user may then select whether the locally processed data is subjected to tertiary processing and, if so, which modules are activated in order to further process the data and whether such tertiary processing occurs locally 100 or remotely 300. Likewise, the user may select various options for the various layers of tertiary processing options and where any generated and/or acquired data is to be stored, locally 200 or remotely 400, at any given step or time of operation.

[0749] Mais particularmente, um usuário primário pode configurar o sistema para receber solicitações de processamento de terceiros, em que os terceiros podem configurar o sistema para realizar tal processamento primário, secundário e/ou terciário solicitado nos dados gerados e/ou adquiridos. Especificamente, o usuário ou segunda e/ou terceira parte podem configurar o sistema 1 para produzir e/ou adquirir dados de sequência genética, local 100 ou remotamente 200. Adicionalmente, o usuário pode configurar o sistema 1 para tomar esses dados de sequência genética e mapear, alinhar e/ou classificar os mesmos, local ou remotamente, de modo a produzir um ou mais arquivos de chamada de variante (VCFs). Adicionalmente, o usuário pode configurar o sistema para realizar uma função de processamento terciário nos dados, por exemplo, em relação ao um ou mais VCFs, local ou remotamente.[0749] More particularly, a primary user may configure the system to receive processing requests from third parties, wherein the third parties may configure the system to perform such requested primary, secondary, and/or tertiary processing on the generated and/or acquired data. Specifically, the user or second and/or third party may configure the system 1 to produce and/or acquire genetic sequence data, locally 100 or remotely 200. Additionally, the user may configure the system 1 to take such genetic sequence data and map, align, and/or classify the same, locally or remotely, so as to produce one or more variant call files (VCFs). Additionally, the user may configure the system to perform a tertiary processing function on the data, e.g., with respect to the one or more VCFs, locally or remotely.

[0750] Ainda mais particularmente, o usuário ou outra parte pode configurar o sistema 1 a fim de realizar qualquer forma de processamento terciário nos dados gerados e/ou adquiridos e onde aquele processamento deve ocorrer no sistema. Logo, em diversas modalidades, o usuário primário, secundário e/ou de terceiros 121 pode acessar e/ou configurar o sistema 1 e seus diversos componentes diretamente, tal como acessando-se diretamente a função de computação local 100, por meio de uma conexão de rede local 30 ou através de uma rede em nuvem híbrida associada 50 que conecta a parte 121 ao sistema 1, tal como através de uma interface de programa de aplicação (API), acessível através de um ou mais componentes de interface de usuário gráfica (GUI). Em tal caso, o usuário de terceiros pode acessar o sistema 1 e usar a API para configurar os diversos componentes do sistema, os módulos, as tubulações associadas e outros dados associados que geram e/ou processam funcionalidades, a fim de operar apenas aqueles componentes de sistema necessários e/ou úteis aos terceiros e/ou solicitados ou desejados a serem operados pelos mesmos, e alocar adicionalmente quais recursos de computação fornecerão o processamento solicitado e onde os dados de resultados serão armazenados.[0750] Even more particularly, the user or other party may configure the system 1 in order to perform any form of tertiary processing on the generated and/or acquired data and where such processing is to occur on the system. Thus, in various embodiments, the primary, secondary and/or third party user 121 may access and/or configure the system 1 and its various components directly, such as by directly accessing the local computing function 100, through a local network connection 30 or through an associated hybrid cloud network 50 that connects the party 121 to the system 1, such as through an application program interface (API) accessible through one or more graphical user interface (GUI) components. In such a case, the third party user may access System 1 and use the API to configure the various system components, modules, associated pipelines and other associated data generating and/or processing functionalities in order to operate only those system components that are necessary and/or useful to the third party and/or requested or desired to be operated by the third party, and further allocate which computing resources will provide the requested processing and where the result data will be stored.

[0751] Consequentemente, em diversos casos, o sistema 1 pode ser configurável por um usuário primário, secundário ou terciário do sistema, o qual pode configurar o sistema 1 a fim de dispor seus componentes de tal forma a fim de instalar um, todos ou uma seleção dos recursos de sistema analítico para serem operados em dados que o usuário gera diretamente, faz com que sejam gerados pelo sistema 1 ou faz com que sejam transferidos para o sistema 1, tal como através de uma rede associada ao mesmo, tal como por meio do mecanismo de aquisição de dados 120. De tal forma, o sistema 1 é configurável a fim de operar apenas aquelas porções do sistema necessárias ou úteis para as análises desejadas e/ou solicitadas pela parte solicitante. Por exemplo, para esses e outros tais propósitos, uma API pode ser incluída, em que a API é configurada a fim de incluir um menu de GUI operável e/ou uma lista relacionada de chamadas de função de sistema a partir da qual o usuário pode selecionar a fim de configurar e operar o sistema conforme desejado.[0751] Accordingly, in various instances, system 1 may be configurable by a primary, secondary, or tertiary user of the system, who may configure system 1 to arrange its components in such a manner as to install any, all, or a selection of the analytical system capabilities to be operated on data that the user directly generates, causes to be generated by system 1, or causes to be transferred to system 1, such as through a network associated therewith, such as via data acquisition engine 120. In such a manner, system 1 is configurable to operate only those portions of the system necessary or useful for the analyses desired and/or requested by the requesting party. For example, for these and other such purposes, an API may be included, wherein the API is configured to include an operable GUI menu and/or a related list of system function calls from which the user may select in order to configure and operate the system as desired.

[0752] Adicionalmente, em modalidades particulares, o sistema 1 pode ser tornado acessível a um usuário primário e/ou terceiros, tais como reguladores governamentais, tais como a Administração de Fármaco Federal (FDA) 70b, ou permitir que usuários primários e/ou terceiros colem, compilem e/ou acessem um banco de dados de informações genéticas derivadas ou adquirias e/ou compiladas de outro modo pelo sistema 1, a fim de formar um banco de dados de registros médicos eletrônicos (EMR) 70a e/ou permitir acesso e/ou fiscalização governamental do sistema, tal como a FDA para Avaliação de Desenvolvimento de Fármaco. O sistema 1 também pode ser definido para conglomerar, compilar e/ou anotar os dados 70c e/ou permitir que outros usuários de alto nível acessem o mesmo.[0752] Additionally, in particular embodiments, system 1 may be made accessible to a primary user and/or third parties, such as government regulators, such as the Federal Drug Administration (FDA) 70b, or allow primary users and/or third parties to collect, compile, and/or access a database of genetic information derived or acquired and/or otherwise compiled by system 1, in order to form an electronic medical record (EMR) database 70a and/or allow government access and/or oversight of the system, such as the FDA for Drug Development Evaluation. System 1 may also be defined to conglomerate, compile, and/or annotate data 70c and/or allow other high-level users to access the same.

[0753] Consequentemente, o sistema 1 e/ou seus componentes podem ser configurados para serem acessados por um usuário remoto, tal como um usuário primário ou terceiros e, portanto, um ou mais dos recursos de computador 100 e/ou 300 podem incluir uma interface de usuário e/ou pode incluir adicionalmente um dispositivo de exibição que tem uma interface gráfica de usuário para permitir que um usuário potencial do sistema acesse o sistema de modo a transmitir dados de amostra para entrada em uma ou mais das segmentações BioIT reveladas no presente documento e/ou para receber dados de resultados das mesmas. A GUI ou outra interface pode ser configurada para permitir que o usuário gerencie os componentes de sistema, por exemplo, por meio de um portal da web adequadamente configurado, e rastreie progresso de processamento de amostra, a despeito de se os recursos de computação a serem envolvidos estão disponíveis local 100 ou remotamente 300. Consequentemente, a GUI pode listar um conjunto de trabalhos que podem ser realizados, por exemplo, mapeamento 112, alinhamento 113, etc. e/ou um conjunto de recursos para realizar os trabalhos, e o usuário pode autosselecionar quais trabalhos quer executar e por quais recursos. Logo, em um caso tal como esse, cada usuário individual pode construir no mesmo um fluxo de trabalho de análise exclusivo, ou pode usar uma predeterminada, tal como clicando, arrastando ou selecionando de outro modo os projetos de trabalho particulares que deseja executar.[0753] Accordingly, the system 1 and/or its components may be configured to be accessed by a remote user, such as a primary user or third party, and therefore one or more of the computer resources 100 and/or 300 may include a user interface and/or may further include a display device having a graphical user interface to allow a potential user of the system to access the system in order to transmit sample data for input into one or more of the BioIT segmentations disclosed herein and/or to receive result data therefrom. The GUI or other interface may be configured to allow the user to manage the system components, for example, through a suitably configured web portal, and to track sample processing progress, regardless of whether the computing resources to be engaged are available locally 100 or remotely 300. Accordingly, the GUI may list a set of jobs that may be performed, for example, mapping 112, alignment 113, etc. and/or a set of resources to perform the jobs, and the user can self-select which jobs he wants to perform and by which resources. Thus, in a case such as this, each individual user can build on his own unique analysis workflow, or can use a predetermined one, such as by clicking, dragging, or otherwise selecting the particular work projects he wants to perform.

[0754] Por exemplo, em um modelo de uso, um painel é apresentado com uma interface GUI que pode incluir uma pluralidade de ícones que representam os vários processos que podem ser implantados e executados no sistema. Em tal caso, um usuário pode clicar ou arrastar os ícones de processo de trabalho selecionados para uma interface de fluxo de trabalho, de modo a construir um processo de fluxo de trabalho desejado, que, uma vez construído, pode ser salvo e usado para estabelecer as instruções de controle para o criado de conjunto de amostras. Uma vez que os projetos de trabalho desejados tenham sido selecionados, o controlador de gerenciamento de fluxo de trabalho 151 pode configurar os processos de fluxo de trabalho desejados (por exemplo, análise secundária) e, então, identificar e selecionar os recursos para realizar a análise selecionada.[0754] For example, in one usage model, a dashboard is presented with a GUI interface that may include a plurality of icons representing the various processes that may be deployed and executed on the system. In such an instance, a user may click or drag selected work process icons onto a workflow interface to construct a desired work flow process, which, once constructed, may be saved and used to establish control instructions for the sample set creator. Once the desired work designs have been selected, the workflow management controller 151 may configure the desired work flow processes (e.g., secondary analysis) and then identify and select the resources to perform the selected analysis.

[0755] Uma vez que o processo de análise de fluxo de trabalho começa, o painel pode ser visualizado de modo a rastrear o progresso através do sistema. Por exemplo, um painel pode indicar quantos dados são executados através do sistema, quais processos estão sendo executados nos dados, quanto foi realizado, quanto processamento permanece, quais fluxos de trabalho foram concluídos e o que precisa ainda ser acessado, os múltiplos projetos a serem executados e quais rodadas foram concluídas. Essencialmente, acesso completo a tudo que está funcionando no sistema, ou uma subporção do mesmo, pode ser fornecido à área de trabalho.[0755] Once the workflow analysis process begins, the dashboard can be viewed to track progress through the system. For example, a dashboard can indicate how much data is running through the system, what processes are being performed on the data, how much has been accomplished, how much processing remains, which workflows have been completed and what still needs to be accessed, the multiple projects to be executed, and which rounds have been completed. Essentially, complete access to everything running in the system, or a subportion thereof, can be provided to the workspace.

[0756] Ademais, em vários casos, a área de trabalho pode incluir várias interfaces de usuário diferentes que podem ser acessíveis por meio de uma ou mais abas. Por exemplo, uma aba para acessar os controles de sistema pode ser uma "aba de recursos locais 100",que, quando selecionada, permite que um usuário selecione funções de controle que podem ser implantadas localmente. Outra aba pode ser configurada para acessar "recursos em nuvem 300", que, quando selecionada, permite que um usuário selecione outras funções de controle que podem ser implantadas remotamente. Consequentemente, em interação com o painel, um usuário pode selecionar quais recursos devem realizar quais tarefas, e como tal pode aumentar ou diminuir o uso de recurso conforme exigido de modo a satisfazer os requisitos de projeto.[0756] Furthermore, in various instances, the workspace may include several different user interfaces that may be accessible through one or more tabs. For example, a tab for accessing system controls may be a “local resources tab 100,” which, when selected, allows a user to select control functions that may be deployed locally. Another tab may be configured to access “cloud resources 300,” which, when selected, allows a user to select other control functions that may be deployed remotely. Accordingly, in interaction with the dashboard, a user may select which resources should perform which tasks, and as such may increase or decrease resource usage as required to meet design requirements.

[0757] Logo, à medida que a complexidade computacional aumenta, e/ou a velocidade aumentada é desejada, o usuário (ou o sistema em si, por exemplo, WMS 151) pode colocar mais e mais recursos online, conforme necessário, como pelo mero clique de um botão, instruindo o gerenciador de fluxo de trabalho para colocar recursos locais 100 e/ou baseados em nuvem 300 online, conforme necessário para completar a tarefa no cronograma desejado. Dessa maneira, embora o sistema seja automatizado e/ou controlado pelo controlador de gerenciador de fluxo de trabalho 151, um usuário do sistema pode ainda definir os parâmetros de controle e, quando necessário, pode colocar recursos baseados em nuvem 300 online. Consequentemente, o controlador 151 pode expandir à nuvem 50/300 conforme necessário para colocar online os recursos de processamento e/ou armazenamento adicionais 400.[0757] Thus, as computational complexity increases, and/or increased speed is desired, the user (or the system itself, e.g., WMS 151) can bring more and more resources online as needed, such as by the mere click of a button, instructing the workflow manager to bring local 100 and/or cloud-based resources 300 online as needed to complete the task on the desired schedule. In this manner, although the system is automated and/or controlled by the workflow manager controller 151, a user of the system can still set the control parameters and, when needed, can bring cloud-based resources 300 online. Accordingly, the controller 151 can expand to the cloud 50/300 as needed to bring additional processing and/or storage resources 400 online.

[0758] Em vários casos, a interface de área de trabalho pode ser configurada como um aplicativo móvel ou "app" que é acessível por meio de um dispositivo móvel e/ou computador de área de trabalho. Consequentemente, em um aspecto, um mercado genômico, ou coorte, pode ser fornecido de modo a permitir que uma pluralidade de usuários colabore em um ou mais projetos de pesquisa, de modo a formar um mercado de coorte eletrônico que é acessível por meio do app de painel, por exemplo, uma interface de navegador baseada em web. Como tal, o sistema pode fornecer um fórum online para realizar pesquisa colaborativa e/ou um mercado para desenvolver várias ferramentas analíticas para analisar os dados genéticos, cujo sistema pode ser acessível diretamente por meio da interface de sistema, ou por meio do app, para permitir o controle remoto do sistema por um usuário.[0758] In various instances, the desktop interface may be configured as a mobile application or "app" that is accessible via a mobile device and/or desktop computer. Accordingly, in one aspect, a genomic marketplace, or cohort, may be provided that allows a plurality of users to collaborate on one or more research projects, so as to form an electronic cohort marketplace that is accessible via the dashboard app, e.g., a web-based browser interface. As such, the system may provide an online forum for conducting collaborative research and/or a marketplace for developing various analytical tools for analyzing genetic data, which system may be accessible directly via the system interface, or via the app, to allow remote control of the system by a user.

[0759] Consequentemente, em diversas modalidades, conforme pode ser observado em relação à Figura 42 A, uma nuvem híbrida 50 é fornecida, em que a nuvem híbrida é configurada para se conectar a um recurso de computação 100 e/ou armazenamento 200 local com um recurso de computação 100 e/ou armazenamento 200 remoto, tal como quando os recursos local e remoto são separados um do outro distal, espacial, geograficamente e semelhantes. Em tal caso, os recursos local e distal podem ser configurados para se comunicar um com o outro de uma forma a fim de compartilhar informações, tais como dados digitais, de modo ininterrupto entre os dois. Particularmente, os recursos locais podem ser configurados para realizar um ou mais tipos de processamento nos dados, tal como antes da transmissão através da rede híbrida 50, e os recursos remotos podem ser configurados para realizar um ou mais tipos de processamento adicional dos dados.[0759] Accordingly, in various embodiments, as can be seen with respect to Figure 42A, a hybrid cloud 50 is provided, wherein the hybrid cloud is configured to connect a local computing resource 100 and/or storage 200 with a remote computing resource 100 and/or storage 200, such as when the local and remote resources are separated from each other distally, spatially, geographically, and the like. In such a case, the local and distal resources may be configured to communicate with each other in a manner so as to share information, such as digital data, seamlessly between the two. In particular, the local resources may be configured to perform one or more types of processing on the data, such as prior to transmission over the hybrid network 50, and the remote resources may be configured to perform one or more types of further processing on the data.

[0760] Por exemplo, em uma configuração particular, o sistema 1 pode ser configurado de forma que uma função de geração e/ou análise 152 seja configurada para ser realizada localmente 100 por um recurso de computação local, tal como para o propósito de realizar uma função de processamento primário e/ou secundário, a fim de gerar e/ou processar dados de sequência genética, conforme descrito no presente documento. Adicionalmente, em diversas modalidades, os recursos locais podem ser configurados para realizar uma ou mais funções de processamento terciário nos dados, tais como uma ou mais dentre análise de genoma, exoma e/ou epigenoma ou uma análise de processamento de câncer, microbioma e/ou outra análise de processamento de DNA/RNA. Adicionalmente, quando tais dados processados são destinados a serem transferidos, tal como para uma computação remota 300 e/ou recurso de armazenamento 400, os dados podem ser transformados, tal como por meio de um transformador adequadamente configurado, em que o transformador pode ser configurado para indexação, conversão, compressão e/ou encriptação dos dados, tal como antes de transferência através da rede híbrida 50.[0760] For example, in a particular embodiment, system 1 may be configured such that a generation and/or analysis function 152 is configured to be performed locally 100 by a local computing resource, such as for the purpose of performing a primary and/or secondary processing function in order to generate and/or process genetic sequence data as described herein. Additionally, in various embodiments, the local resources may be configured to perform one or more tertiary processing functions on the data, such as one or more of a genome, exome, and/or epigenome analysis or a cancer, microbiome, and/or other DNA/RNA processing analysis. Additionally, when such processed data is intended to be transferred, such as to a remote computing 300 and/or storage resource 400, the data may be transformed, such as by means of a suitably configured transformer, wherein the transformer may be configured for indexing, converting, compressing, and/or encrypting the data, such as prior to transfer over the hybrid network 50.

[0761] Em casos particulares, tal como quando os dados gerados e processados são transferidos para um recurso de computação remoto, por exemplo, servidor 300, para processamento adicional, tal processamento pode ter uma natureza global e pode incluir receber dados a partir de uma pluralidade de recursos locais de computação 100, colar tais pluralidades de dados, anotar os dados e comparar os mesmos, tal como para interpretar os dados, determinar tendências dos mesmos, analisar os mesmos para diversos biomarcadores e auxiliar no desenvolvimento de diagnóstico, tratamentos terapêuticos e/ou profiláticos. Consequentemente, em diversos casos, o recurso de computação remoto 300 pode ser configurado como um cubo de processamento de dados, tal como quando dados de uma variedade de fontes podem ser transferidos, processados e/ou armazenados enquanto se espera que os mesmos sejam transformados e/ou transferidos, tal como por meio de serem acessados pelo recurso de computação local 100. Mais particularmente, o cubo de processamento remoto 300 pode ser configurado para receber dados a partir de uma pluralidade de recursos 100, processar os mesmos e distribuir os dados processados de volta para a variedade de recursos locais 100 a fim de possibilitar colaboração dentre pesquisadores e/ou recursos 100. Tal colaboração pode incluir diversos protocolos de compartilhamento de dados e pode incluir adicionalmente preparar os dados para serem transferidos, tal como permitindo-se que um usuário do sistema 1 selecione dentre diversos protocolos de segurança e/ou definições de privacidade a fim de controlar como os dados serão preparados para transferência.[0761] In particular cases, such as when generated and processed data is transferred to a remote computing resource, e.g., server 300, for further processing, such processing may be global in nature and may include receiving data from a plurality of local computing resources 100, collating such pluralities of data, annotating the data and comparing the same, such as to interpret the data, determine trends therein, analyze the same for various biomarkers, and assist in the development of diagnostic, therapeutic and/or prophylactic treatments. Accordingly, in various instances, remote computing resource 300 may be configured as a data processing hub, such as where data from a variety of sources may be transferred, processed, and/or stored while waiting for the same to be transformed and/or transferred, such as by being accessed by local computing resource 100. More particularly, remote processing hub 300 may be configured to receive data from a plurality of resources 100, process the same, and distribute the processed data back to the plurality of local resources 100 in order to enable collaboration among researchers and/or resources 100. Such collaboration may include various data sharing protocols and may further include preparing the data for transfer, such as by allowing a user of system 1 to select from among various security protocols and/or privacy settings in order to control how the data will be prepared for transfer.

[0762] Em um caso particular, conforme apresentado na Figura 42B, um recurso de computação 100 e/ou armazenamento 200 local é fornecido, tal como no local em um local de usuário. O recurso de computação 100 e/ou o recurso de armazenamento 200 pode ser acoplado a um recurso de geração de dados 121, tal como um NGS ou sequenciador em um chip, conforme descrito no presente documento, tal como através de uma conexão direta ou uma intranet 10, em que o sequenciador 121 é configurado para gerar dados de sequenciamento genético, tais como arquivos de BCL e/ou FASTQ. Por exemplo, o sequenciador 121 pode ser parte de e/ou ser alojado no mesmo aparelho que aquele do recurso de computação 100 e/ou da unidade de armazenamento 200, a fim de ter uma conexão comunicável e/ou operável direta com o mesmo, ou o sequenciador 121 e o recurso de computação 100 e/ou o recurso de armazenamento 200 podem ser parte de aparelhos separados uns dos outros, mas alojados na mesma instalação e, dessa forma, conectados através de uma conexão com cabos ou da intranet 10. Em alguns casos, o sequenciador 121 pode ser alojado em uma instalação separada daquela do recurso de computação 100 e/ou armazenamento 200 e, dessa forma, pode ser conectado através de uma conexão por internet 30 ou nuvem híbrida 50.[0762] In a particular case, as shown in Figure 42B, a local computing resource 100 and/or storage resource 200 is provided, such as on-site at a user location. The computing resource 100 and/or storage resource 200 may be coupled to a data generation resource 121, such as an NGS or sequencer-on-a-chip as described herein, such as via a direct connection or an intranet 10, wherein the sequencer 121 is configured to generate genetic sequencing data, such as BCL and/or FASTQ files. For example, sequencer 121 may be part of and/or housed in the same apparatus as that of computing resource 100 and/or storage unit 200, so as to have a direct communicable and/or operable connection thereto, or sequencer 121 and computing resource 100 and/or storage resource 200 may be part of apparatus separate from each other but housed in the same facility and thus connected via a wired connection or intranet 10. In some cases, sequencer 121 may be housed in a separate facility from that of computing resource 100 and/or storage 200 and thus may be connected via an internet 30 or hybrid cloud 50 connection.

[0763] Em tais casos, os dados de sequência genética podem ser processados 100 e armazenados localmente 200, antes de serem transformados, por meio de um transformador adequadamente configurado, ou os dados de sequência gerados podem ser transmitidos diretamente para um ou mais dentre o transformador e/ou o analisador 152, tal como através de uma conexão local adequadamente configurada 10, intranet 30 ou conexão por nuvem híbrida 50, conforme descrito acima, tal como antes de serem processados localmente. Particularmente, como o recurso de geração de dados 121, o transformador 151 e/ou o analisador 152 podem ser parte de e/ou alojados no mesmo aparelho que aquele do recurso de armazenamento 100 e/ou da unidade de armazenamento 200, a fim de ter uma conexão comunicável e/ou operável direta com os mesmos, ou o transformador e/ou o analisador 152 e o recurso de computação 100 e/ou o recurso de armazenamento 200 podem ser parte de aparelhos separados uns dos outros, mas alojados na mesma instalação e, dessa forma, conectados através de uma conexão com cabos ou de intranet 10. Em alguns casos, o transformador 151 e/ou o analisador 152 pode ser alojado em uma instalação separada do que aquela do recurso de computação 100 e/ou armazenamento 200 e, dessa forma, pode ser conectado através de uma conexão de internet 30 ou nuvem híbrida 50.[0763] In such cases, the genetic sequence data may be processed 100 and stored locally 200, prior to being transformed, via a suitably configured transformer, or the generated sequence data may be transmitted directly to one or more of the transformer and/or the analyzer 152, such as via a suitably configured local connection 10, intranet 30, or hybrid cloud connection 50, as described above, such as prior to being processed locally. In particular, as the data generation resource 121, the transformer 151 and/or the analyzer 152 may be part of and/or housed in the same apparatus as that of the storage resource 100 and/or the storage unit 200, so as to have a direct communicable and/or operable connection thereto, or the transformer and/or the analyzer 152 and the computing resource 100 and/or the storage resource 200 may be part of apparatus separate from each other but housed in the same facility and thus connected via a wired or intranet connection 10. In some cases, the transformer 151 and/or the analyzer 152 may be housed in a separate facility than that of the computing resource 100 and/or storage 200 and thus may be connected via an internet 30 or hybrid cloud connection 50.

[0764] Por exemplo, o transformador pode ser configurado para preparar os dados a serem transmitidos antes da análise ou após a análise, tal como por meio de um recurso 100 e/ou analisador 152 de computação adequadamente configurados. Por exemplo, o analisador 152 pode realizar uma função de processamento secundário e/ou terciário nos dados, conforme descrito no presente documento, tal como para analisar os dados de sequência gerados em relação à determinação de suas características genômicas e/ou exômicas 152a, seus recursos epigenômicos 152b, quaisquer diversos marcadores de DNA e/ou RNA de interesses e/ou indicadores de câncer 152c e suas relações a um ou mais microbiomas 152d, assim como um ou mais outros processos secundários e/ou terciários, conforme descrito no presente documento.[0764] For example, the transformer may be configured to prepare data to be transmitted prior to analysis or after analysis, such as via a suitably configured computing resource 100 and/or analyzer 152. For example, the analyzer 152 may perform a secondary and/or tertiary processing function on the data as described herein, such as to analyze the generated sequence data with respect to determining its genomic and/or exomic characteristics 152a, its epigenomic features 152b, any various DNA and/or RNA markers of interest and/or cancer indicators 152c and their relationships to one or more microbiomes 152d, as well as one or more other secondary and/or tertiary processes as described herein.

[0765] Conforme indicado, os dados gerados e/ou processados podem ser transformados, tal como por meio de um transformador adequadamente configurado , tal como antes da transmissão através do sistema 1 a partir de um componente do mesmo para o outro, tal como através de uma conexão direta, local 10, por internet 30 ou em nuvem híbrida 50. Tal transformação pode incluir um ou mais dentre conversão 151d, tal como quando os dados são convertidos de uma forma em outra; compreensão 151c, incluindo a conversão em código, a decodificação e/ou tomando dados de outro modo de uma forma incompreensível e transformando os mesmos em uma forma compreensível, ou de uma forma compreensível para outra; indexação 151b, tal como incluindo compilação e/ou colagem dos dados gerados a partir de um ou mais recursos e tornando os mesmos localizáveis e/ou buscáveis, tal como por meio de um índice gerado; e/ou encriptação 151a, tal como criando um conjunto de dados protegido por senha travável e destravável, tal como antes da transmissão através de uma internet 30 e/ou nuvem híbrida 50.[0765] As indicated, the generated and/or processed data may be transformed, such as by means of a suitably configured transformer, such as prior to transmission through the system 1 from one component thereof to another, such as through a direct, local connection 10, over the internet 30 or in a hybrid cloud 50. Such transformation may include one or more of conversion 151d, such as when data is converted from one form to another; comprehension 151c, including conversion into code, decoding and/or taking data from an otherwise incomprehensible form and transforming it into a comprehensible form, or from one comprehensible form to another; indexing 151b, such as including compiling and/or pasting the generated data from one or more resources and making it findable and/or searchable, such as by means of a generated index; and/or encryption 151a, such as creating a lockable and unlockable password-protected data set, such as prior to transmission over an internet 30 and/or hybrid cloud 50.

[0766] Logo, conforme pode ser observado em relação à Figura 42C, nesses e/em outros tais casos, a nuvem híbrida 50 pode ser configurada para permitir transmissão ininterrupta e protegida de dados por todos os componentes do sistema, tais como quando a nuvem híbrida 50 é adaptada para permitir que os diversos usuários do sistema configurem suas partes de componente e/ou o próprio sistema a fim de cumprir com as necessidades de pesquisa e/ou desenvolvimento, diagnóstico, constatação terapêutica e/ou profilática do usuário. Particularmente, a nuvem híbrida 50 e/ou os diversos componentes do sistema 1 podem ser operacionalmente conectados a interfaces API compatíveis e/ou correspondentes que são adaptadas para permitir que um usuário configure remotamente os diversos componentes do sistema 1 a fim de instalar os recursos desejados da forma desejada e fazer adicionalmente isso local, remotamente ou em uma combinação dos mesmos, tal como baseado nas demandas do sistema e nos particulares das análises que são realizadas, tendo capacidade durante todo o tempo para se comunicar em um ambiente seguro encriptável.[0766] Thus, as can be seen with respect to Figure 42C, in these and/or other such cases, the hybrid cloud 50 may be configured to allow uninterrupted and protected transmission of data by all components of the system, such as when the hybrid cloud 50 is adapted to allow the various users of the system to configure its component parts and/or the system itself in order to meet the user's research and/or development, diagnostic, therapeutic and/or prophylactic testing needs. In particular, the hybrid cloud 50 and/or the various components of the system 1 may be operationally connected to compatible and/or corresponding API interfaces that are adapted to allow a user to remotely configure the various components of the system 1 in order to install the desired resources in the desired manner and to do so additionally locally, remotely or in a combination thereof, as based on the demands of the system and the particulars of the analyses being performed, all the while being able to communicate in a secure, encryptable environment.

[0767] Em casos particulares, o sistema 1 pode incluir uma arquitetura de processamento 310, como um interpretador, que é configurado para realizar uma função de interpretação 310. O interpretador 310 pode realizar uma ou uma série de funções analíticas em dados gerados, como anotação 311, interpretação 312, diagnóstico 313, e/ou a detecção e/ou uma função de análise para determinar a presença de um ou mais biomarcadores, como nos dados genéticos. O interpretador 313 pode ser parte de ou separado do recurso de computação local 100, como quando o interpretador 310 é acoplado ao recurso de computação 100 por meio de uma interface de nuvem, como uma nuvem híbrida 50.[0767] In particular cases, system 1 may include a processing architecture 310, such as an interpreter, that is configured to perform an interpretation function 310. Interpreter 310 may perform one or a series of analytical functions on generated data, such as annotation 311, interpretation 312, diagnosis 313, and/or detection and/or an analysis function to determine the presence of one or more biomarkers, such as in genetic data. Interpreter 313 may be part of or separate from local computing resource 100, such as when interpreter 310 is coupled to computing resource 100 via a cloud interface, such as a hybrid cloud 50.

[0768] Adicionalmente, uma arquitetura de processamento 320 adicional pode ser incluída, como quando a arquitetura 320 é configurada como um colaborador. O colaborador 320 pode ser configurado para realizar uma ou mais funções direcionadas a garantir a segurança e/ou privacidade de dados a serem transmitidos. Por exemplo, o colaborador pode ser configurado para garantir o processo de compartilhamento de dados 321, para garantir a privacidade de transmissão 322, definir os parâmetros de controle 323, e/ou para iniciar um protocolo de segurança 324. O colaborador 313é configurado para permitir o compartilhamento de dados, como para facilitar a colaboração de processamento, visto que o colaborador 320 pode ser parte de ou separado do recurso de computação local 100, como quando o colaborador 320 é acoplado ao recurso de computação 100 por meio de uma interface de nuvem, como uma nuvem híbrida 50. O interpretador 310, colaborador 320, e/ou o recurso de computação local 100 pode ser adicionalmente acoplado a um recurso de computação remoto 300, como para intensificar a eficácia de sistema por funções de computação de descarregamento 300 e/ou armazenamento 400 para a nuvem 50. Em vários casos, o sistema 1 pode ser configurado para permitir que a análise de terceiros segura 121 ocorra, como quando os terceiros podem se conectar a e engatar o sistema como através de um API adequadamente configurado.[0768] Additionally, an additional processing architecture 320 may be included, such as when architecture 320 is configured as a collaborator. Collaborator 320 may be configured to perform one or more functions directed at ensuring the security and/or privacy of data to be transmitted. For example, the collaborator may be configured to secure the data sharing process 321, to ensure transmission privacy 322, to set control parameters 323, and/or to initiate a security protocol 324. The collaborator 313 is configured to enable data sharing, such as to facilitate processing collaboration, as the collaborator 320 may be part of or separate from the local computing resource 100, such as when the collaborator 320 is coupled to the computing resource 100 via a cloud interface, such as a hybrid cloud 50. The interpreter 310, collaborator 320, and/or the local computing resource 100 may be additionally coupled to a remote computing resource 300, such as to enhance system efficiency by offloading computing functions 300 and/or storage 400 to the cloud 50. In various instances, the system 1 may be configured to enable secure third-party analysis 121 occurs, such as when third parties can connect to and engage the system such as through a properly configured API.

[0769] Conforme pode ser observado em relação à Figura 43, o sistema 1 pode ser uma plataforma de processamento bioanalítico de múltiplos estratos e/ou multiplexada que inclui camadas de dados que geram e/ou unidades de processamento de dados que têm, cada uma, uma ou mais segmentações de processamento que podem ser implantadas de uma maneira sistemática e concomitante ou sequencial de modo a processar informações genéticas a partir de seu estágio de processamento primário para um estágio de processamento terciário e/ou terciário. Particularmente, são apresentados no presente documento os dispositivos configurados para realizar a bioanálise em uma ou mais dentre implantações de processamento de hardware e/ou software e/ou quântico, assim como métodos de seu uso, e sistemas que incluem os mesmos. Por exemplo, em uma modalidade, uma genômica processamento plataforma pode ser fornecida e configurada como uma multiplicidade de circuitos integrados, cujos circuitos integrados podem ser adaptados como, ou ser incluídos de outro modo em, um ou mais dentre uma unidade de processamento central ou gráfico, como uma CPU de propósito geral e/ou GPU, uma implantação com fio, e/ou uma unidade de processamento quântico. Particularmente, em várias modalidades, uma ou mais segmentações da plataforma de processamento genômico podem ser configuradas por um ou mais circuitos integrados e/ou quânticos de uma unidade de processamento quântico.[0769] As can be seen in relation to Figure 43, the system 1 can be a multi-layer and/or multiplexed bioanalytical processing platform that includes data generating layers and/or data processing units that each have one or more processing segments that can be implemented in a systematic and concurrent or sequential manner so as to process genetic information from its primary processing stage to a tertiary and/or tertiary processing stage. Particularly, presented herein are devices configured to perform bioanalysis in one or more of hardware and/or software and/or quantum processing implementations, as well as methods of their use, and systems that include the same. For example, in one embodiment, a genomics processing platform may be provided and configured as a plurality of integrated circuits, which integrated circuits may be adapted as, or otherwise included in, one or more of a central or graphics processing unit, such as a general purpose CPU and/or GPU, a wired implementation, and/or a quantum processing unit. Particularly, in various embodiments, one or more segmentations of the genomics processing platform may be configured by one or more integrated and/or quantum circuits of a quantum processing unit.

[0770] Consequentemente, as plataformas apresentadas no presente documento podem ser configuradas de modo a explorar a potência sólida de implantações de processamento de software e/ou hardware e/ou quântico otimizadas para o desempenho das várias funções de processamento de sequenciamento genético e/ou secundário e/ou terciário, reveladas no presente documento, as quais podem ser executadas em um ou mais circuitos integrados. Tais circuitos integrados podem ser acoplados juntos de modo ininterrupto e podem ser adicionalmente acoplados de modo ininterrupto a vários outros circuitos integrados, por exemplo, CPUs e/ou GPUs e/ou QPUs, do sistema que são configurados para executar as várias aplicações de software e/ou baseadas em fio de funções bioanalíticas terciárias.[0770] Accordingly, the platforms presented herein may be configured to exploit the robust power of software and/or hardware and/or quantum processing implementations optimized for the performance of the various genetic sequencing and/or secondary and/or tertiary processing functions disclosed herein, which may be executed on one or more integrated circuits. Such integrated circuits may be seamlessly coupled together and may be further seamlessly coupled to various other integrated circuits, e.g., CPUs and/or GPUs and/or QPUs, of the system that are configured to execute the various software and/or wire-based applications of tertiary bioanalytical functions.

[0771] Particularmente, em várias modalidades, esses processos podem ser realizados por software otimizado executado em uma CPU, GPU, e/ou QPU, e/ou podem ser implantados como um circuito integrado configurado de firmware, por exemplo, um FPGA, que pode ser parte do mesmo dispositivo ou dispositivos separados que podem ser posicionados na mesma placa-mãe, cartões de PCIe diferentes no mesmo dispositivo, dispositivos separados na mesma instalação, e/ou localizados em instalações diferentes. Consequentemente, a uma ou mais unidades de processamento e/ou circuitos integrados podem ser diretamente acoplados juntos, por exemplo, estritamente, como fisicamente incorporadas à mesma placa- mãe, ou placas-mãe separadas posicionadas no mesmo alojamento e/ou acopladas juntas de outro modo, ou as mesmas podem ser posicionadas em placas-mãe separadas ou cartões de pCIE que têm capacidade para se comunicar com outro remotamente, como de modo sem fio e/ou por meio de uma interface com rede, como por meio de uma nuvem local 30, e em várias modalidades a uma ou mais unidades de processamento e/ou circuitos integrados podem ser posicionados de modo geograficamente remoto um do outro, mas comunicável por meio de uma nuvem híbrida 50. Em casos particulares, o circuito integrado (ou circuitos integrados) que forma ou é uma parte da CPU, GPU, e/ou QPU, cujo circuito integrado (ou circuitos integrados) pode ser disposto como e/ou parte da plataforma analítica secundária e/ou terciária, pode ser configurado de modo a formar uma ou mais segmentações de análises em que os vários dados gerados podem ser alimentados em e para fora de, para trás e para frente entre as várias unidades de processamento e/ou circuitos integrados, como de maneira ininterrupta e/ou de transmissão contínua, de modo a permitir a transmissão rápida de dados entre a multiplicidade de circuitos integrados, e mais particularmente para expeditar as análises no presente documento.[0771] Particularly, in various embodiments, these processes may be performed by optimized software running on a CPU, GPU, and/or QPU, and/or may be implemented as a firmware configured integrated circuit, e.g., an FPGA, which may be part of the same device or separate devices that may be positioned on the same motherboard, different PCIe cards in the same device, separate devices in the same facility, and/or located in different facilities. Accordingly, the one or more processing units and/or integrated circuits may be directly coupled together, e.g., tightly coupled, such as physically incorporated into the same motherboard, or separate motherboards positioned in the same housing and/or otherwise coupled together, or they may be positioned on separate motherboards or pCIE cards that are capable of communicating with each other remotely, such as wirelessly and/or via a network interface, such as via a local cloud 30, and in various embodiments the one or more processing units and/or integrated circuits may be positioned geographically remote from each other but communicable via a hybrid cloud 50. In particular cases, the integrated circuit(s) that form or are a part of the CPU, GPU, and/or QPU, which integrated circuit(s) may be arranged as and/or part of the secondary and/or tertiary analytics platform, may be configured to form one or more analytics segments in which the various data generated may be fed into and out of, back and forth between, the various processing units and/or integrated circuits, such as in an uninterruptible and/or continuous transmission manner, so as to allow rapid transmission of data between the plurality of integrated circuits, and more particularly to expedite the analyses herein.

[0772] Por exemplo, em alguns casos, os vários dispositivos para uso de acordo com os métodos revelados no presente documento pode incluir, ou ser associado de outro modo com, um ou mais dispositivos de sequenciamento, para realizar um protocolo de sequenciamento, cujo protocolo de sequenciamento pode ser realizado por software executado em um sequenciador remoto, como por um sequenciador Next Gen, por exemplo, HiSeq Ten de Illumina, localizado em uma instalação de sequenciamento de núcleo, como feito acessível por meio de uma interface baseada em nuvem. Em outros casos, o sequenciamento pode ser realizado em uma configuração com fio executada em um chip de sequenciamento, como implantado por Ion Torrent de Thermo Fisher, ou outras tecnologias de chip de sequenciador, em que o sequenciamento é realizado por uso de uma tecnologia semicondutora que entrega o sequenciamento de próxima geração de bancada, e/ou por um circuito integrado configurado como, ou para incluir de outro modo, um transístor de efeito de campo que emprega uma camada de canal de grafeno. Em tais casos, em que o sequenciamento é realizado por um ou mais circuito integrados configurados como, ou para incluir, um microchip de sequenciamento semicondutor, o chip (ou os chips) pode ser posicionado remotamente a partir de uma ou mais outras unidades de processamento e/ou circuitos integrados revelados no presente documento, os quais podem ser configurados para realizar análise secundária e/ou terciária nos dados sequenciados. Alternativamente, os chips e/ou unidades de processamento podem ser posicionados relativamente próximos um do outro de modo a serem diretamente acoplados juntos, ou pelo menos dentro da mesma proximidade geral um do outro, como na mesma instalação. Nesse e em outros tais casos, um sequenciamento e/ou uma segmentação analítica de BioIT pode ser formado de modo que os dados de sequenciamento brutos gerados pelo sequenciador possam ser rapidamente comunicados, por exemplo, transmitidos de modo contínuo, aos outros componentes analíticos da segmentação para análise direta, como de uma maneira contínua.[0772] For example, in some instances, the various devices for use in accordance with the methods disclosed herein may include, or otherwise be associated with, one or more sequencing devices, to perform a sequencing protocol, which sequencing protocol may be performed by software running on a remote sequencer, such as by a Next Gen sequencer, e.g., Illumina's HiSeq Ten, located at a core sequencing facility, as made accessible via a cloud-based interface. In other instances, sequencing may be performed in a wired configuration running on a sequencing chip, as deployed by Thermo Fisher's Ion Torrent, or other sequencer chip technologies, wherein sequencing is performed by use of a semiconductor technology that delivers benchtop next generation sequencing, and/or by an integrated circuit configured as, or to otherwise include, a field effect transistor employing a graphene channel layer. In such cases, where sequencing is performed by one or more integrated circuits configured as, or to include, a semiconductor sequencing microchip, the chip(s) may be positioned remotely from one or more other processing units and/or integrated circuits disclosed herein, which may be configured to perform secondary and/or tertiary analysis on the sequenced data. Alternatively, the chips and/or processing units may be positioned relatively close to each other so as to be directly coupled together, or at least within the same general proximity to each other, such as in the same facility. In this and other such cases, a sequencing and/or analytical BioIT array may be formed such that the raw sequencing data generated by the sequencer may be rapidly communicated, e.g., streamed in a continuous manner, to the other analytical components of the array for direct analysis, such as in a continuous manner.

[0773] Adicionalmente, uma vez que os dados de sequenciamento brutos (por exemplo, dados BCL) ou dados de leitura (por exemplo, dados FASTQ) são produzidos pelo instrumento de sequenciamento, esses dados podem ser transmitidos para, e ser recebidos por, um circuito integrado configurado para realizar várias funções bioanalíticas em sequências genéticas e/ou de proteína, como em relação à análise dos dados de sequência de DNA, RNA e/ou proteína gerados e/ou recebidos. Essa análise de sequência pode envolver a comparação de uma sequência de ácido nucleico ou proteína gerada ou recebida a um ou mais bancos de dados de sequências conhecidas, como para realizar a análise secundária nos dados recebidos, e/ou em alguns casos, para realizar o diagnóstico de doença, como quando o banco de dados de sequências conhecidas para realizar a comparação pode ser um banco de dados que contém dados de sequência morfologicamente distintos e/ou desprezíveis, que são dados de amostras genéticas que pertencem a ou se acredita que pertencem a um ou mais estados com doença.[0773] Additionally, once raw sequencing data (e.g., BCL data) or read data (e.g., FASTQ data) are produced by the sequencing instrument, such data may be transmitted to, and received by, an integrated circuit configured to perform various bioanalytical functions on genetic and/or protein sequences, such as in connection with the analysis of generated and/or received DNA, RNA, and/or protein sequence data. Such sequence analysis may involve comparing a generated or received nucleic acid or protein sequence to one or more databases of known sequences, such as to perform secondary analysis on the received data, and/or in some cases, to perform disease diagnosis, such as when the database of known sequences to perform the comparison may be a database containing morphologically distinct and/or negligible sequence data, which is data from genetic samples that pertain to or are believed to pertain to one or more disease states.

[0774] Consequentemente, em vários casos, uma vez isolados e sequenciados, os dados genéticos, por exemplo, DNA e/ou RNA, podem ser submetidos à análise secundária, o qual pode ser realizado nos dados recebidos, como para a realização de mapeamento, alinhamento, seleção, chamada de variante, e/ou semelhantes, de modo a gerar dados mapeados e/ou alinhados que podem ser, então, usados para derivar um ou mais VCF que detalham a diferença entre a sequência genética mapeada e/ou alinhada e a sequência de referência. Particularmente, uma vez que o processamento secundário ocorreu, as informações genéticas podem ser, então, passadas para um ou mais módulos de processamento terciário do sistema, como para o processamento adicional desse modo, de modo a derivar resultados terapeuticamente e/ou profiláticos. Mais particularmente, após a chamada de variante, o chamador de mapeador/alinhador/variante pode emitir um arquivo VCF padrão que é pronto para e pode ser comunicado a um circuito integrado adicional para realizar a análise terciária, como análises relacionadas a genoma, por exemplo, genoma inteiro, análise, genotipagem, por exemplo, genotipagem conjunta, análise, análise de microarranjo, análise de exoma, análise de microbioma, uma análise de epigenoma, uma análise de metagenoma, uma análise de genotipagem conjunta, uma análise de variância, por exemplo, uma análise de GATK, análise de variantes estruturais, análise de variantes somáticas e semelhantes, assim como uma análise de sequenciamento de RNA ou outra análise genômica.[0774] Accordingly, in various instances, once isolated and sequenced, the genetic data, e.g., DNA and/or RNA, may be subjected to secondary analysis, which may be performed on the received data, such as to perform mapping, alignment, selection, variant calling, and/or the like, so as to generate mapped and/or aligned data that may then be used to derive one or more VCFs detailing the difference between the mapped and/or aligned genetic sequence and the reference sequence. In particular, once secondary processing has occurred, the genetic information may then be passed to one or more tertiary processing modules of the system, such as for further processing thereof, so as to derive therapeutically and/or prophylactically effective results. More particularly, after variant calling, the mapper/aligner/variant caller may output a standard VCF file that is ready for and can be communicated to an additional integrated circuit to perform tertiary analysis, such as genome-related analyses, e.g., whole genome, analysis, genotyping, e.g., joint genotyping, analysis, microarray analysis, exome analysis, microbiome analysis, an epigenome analysis, a metagenome analysis, a joint genotyping analysis, an analysis of variance, e.g., a GATK analysis, structural variant analysis, somatic variant analysis, and the like, as well as an RNA sequencing analysis or other genomic analysis.

[0775] Logo, a plataforma bioanalítica, por exemplo, a BioIT, apresentada no presente documento pode incluir algoritmos altamente otimizados para mapeamento, alinhamento, seleção, marcação de duplicada, chamada de variante de haplótipo, compactação e/ou descompactação, como em uma configuração de processamento de software, com fio e/ou quântico. Por exemplo, embora uma ou mais dessas funções possam ser configuradas para serem realizadas completamente ou parcialmente em uma configuração com fio, em casos particulares, a plataforma de processamento secundário e/ou terciário pode ser configurada para executar uma ou mais aplicações de processamento de software e/ou quântico, como um ou mais programas direcionados à realização de uma ou mais funções bioanalíticas, como uma ou mais das funções reveladas abaixo no presente documento. Particularmente, os dados sequenciados e/ou mapeados e/ou alinhados e/ou outros processados podem ser, então, adicionalmente processados por um ou mais outros algoritmos altamente otimizados para uma ou mais dentre análise de genoma inteiro, análise de genotipagem, análise de microarranjo, análise de exoma, análise de microbioma, análise de epigenoma, análise de metagenoma, genotipagem conjunta e/ou uma variante, por exemplo, análise de GATK, como implantado por software executado em uma CPU e/ou GPU e/ou QPU de propósito geral, embora em certos casos uma ou mais de uma dessas funções pode ser pelo menos parcialmente implantada em hardware.[0775] Thus, the bioanalytical platform, e.g., BioIT, presented herein may include highly optimized algorithms for mapping, alignment, selection, duplicate tagging, haplotype variant calling, compression, and/or decompression, such as in a software, wired, and/or quantum processing configuration. For example, while one or more of these functions may be configured to be performed entirely or partially in a wired configuration, in particular cases, the secondary and/or tertiary processing platform may be configured to execute one or more software and/or quantum processing applications, such as one or more programs directed to performing one or more bioanalytical functions, such as one or more of the functions disclosed below herein. In particular, the sequenced and/or mapped and/or aligned and/or other processed data may then be further processed by one or more other highly optimized algorithms for one or more of whole genome analysis, genotyping analysis, microarray analysis, exome analysis, microbiome analysis, epigenome analysis, metagenome analysis, joint genotyping, and/or a variant, e.g., GATK analysis, as implemented by software running on a general purpose CPU and/or GPU and/or QPU, although in certain cases one or more of these functions may be at least partially implemented in hardware.

[0776] Consequentemente, conforme pode ser observado em referência à Figura 43, em várias modalidades, as plataformas de processamento bioanalíticas multiplexadas são configuradas para realizar um ou mais dentre processamento primário, secundário e/ou terciário. Por exemplo, o estágio de processamento primário produz dados de sequência genética, como em um ou mais arquivos de BCL e/ou FASTQ para transferência no sistema 1. Uma vez no sistema 1, os dados genéticos sequenciados, incluindo quaisquer metadados associados, podem ser avançados para um estágio de processamento secundário 600, de modo a produzir um ou mais arquivos de chamada de variante. Logo, o sistema também pode ser configurado para tomar o um ou mais arquivos de chamada de variante juntamente com quaisquer metadados associados, e/ou outros dados processados associados, e em um ou mais estágios de processamento terciário, pode realizar uma ou mais outras operações nos mesmos, como com os propósitos de realizar um ou mais procedimentos diagnósticos e/ou profiláticos e/ou terapêuticos com os mesmos.[0776] Accordingly, as can be seen with reference to Figure 43 , in various embodiments, the multiplexed bioanalytical processing platforms are configured to perform one or more of primary, secondary, and/or tertiary processing. For example, the primary processing stage produces genetic sequence data, such as in one or more BCL and/or FASTQ files for transfer into system 1. Once in system 1, the sequenced genetic data, including any associated metadata, may be advanced to a secondary processing stage 600 to produce one or more variant call files. Accordingly, the system may also be configured to take the one or more variant call files along with any associated metadata, and/or other associated processed data, and in one or more tertiary processing stages, may perform one or more other operations thereon, such as for the purposes of performing one or more diagnostic and/or prophylactic and/or therapeutic procedures thereon.

[0777] Particularmente, uma análise dos dados pode ser iniciada, por exemplo, em resposta a uma solicitação de usuário 120, por exemplo, feita a partir de um recurso de computação remoto 100, e/ou em resposta a dados submetidos pelos terceiros 121, e/ou dados automaticamente recuperados a partir de uma instalação de armazenamento local 200 e/ou remota 400. Tal processamento adicional pode incluir um primeiro estrato de processamento, em que vários protocolos de execução de segmentação 700 são configurados para realizar a analítica nos dados genéticos determinados, por exemplo, variação, de um ou mais sujeitos. Por exemplo, um primeiro estrato de unidades de processamento terciário pode incluir uma plataforma de processamento genômico que é configurada para realizar análise de genoma, epigenoma, metagenoma, genotipagem e/ou várias análises variantes, e/ou outra análise baseada em bioinformática. Adicionalmente, em um segundo estrato de processamento terciário, vários protocolos de diagnóstico, pesquisa e/ou análise de doença 800 podem ser realizados, cuja análise pode incluir um ou mais dentre NIPT, NICU, câncer, LDT, biológica, aplicações de AgBio e semelhantes.[0777] In particular, an analysis of the data may be initiated, for example, in response to a user request 120, e.g., made from a remote computing resource 100, and/or in response to data submitted by third parties 121, and/or data automatically retrieved from a local 200 and/or remote storage facility 400. Such further processing may include a first processing tier, wherein a plurality of segmentation execution protocols 700 are configured to perform analytics on the determined genetic data, e.g., variation, of one or more subjects. For example, a first tier of tertiary processing units may include a genomic processing platform that is configured to perform genome, epigenome, metagenome, genotyping, and/or various variant analysis, and/or other bioinformatics-based analysis. Additionally, in a second tertiary processing layer, various disease diagnostic, research, and/or analysis protocols 800 may be performed, which analysis may include one or more of NIPT, NICU, cancer, LDT, biological, AgBio applications, and the like.

[0778] O sistema 1 pode ser adicionalmente adaptado a fim de receber e/ou transmitir diversos dados 900 relacionados aos procedimentos e processos revelados no presente documento, tais como relacionados a dados de registros médicos eletrônicos (EMR), dados de teste e/ou estruturação da Administração de Fármacos Federal, dados relevantes à anotação e semelhantes. Tais dados podem ser úteis a fim de permitir que um usuário faça e/ou permita acesso a modalidades médicas, terapêuticas e/ou profiláticas geradas desenvolvidas através do uso do sistema 1 e/ou tornadas acessíveis pelo mesmo. Consequentemente, em vários casos, os dispositivos, métodos, e sistemas apresentados no presente documento permitem o desempenho seguro de análise genética e bioanalítica, assim como para a transferência segura dos resultados da mesma, em um fórum que pode ser facilmente usável para processamento a jusante. Adicionalmente, em vários casos, os dispositivos, métodos, e sistemas apresentados no presente documento permitem a transmissão segura de dados no sistema, como a partir de uma ou mais instalações de monitoramento de saúde e/ou de armazenamento de dados e/ou de uma agência governamental, como FDA ou NIH. Por exemplo, o sistema pode ser configurado para receber seguramente os dados de EMR/PHR, como pode ser transmitido a partir de uma instalação de assistência médica e/ou armazenamento para uso de acordo com os métodos revelados no presente documento, como para o desempenho de análise genética e bioanalítica, assim como para a transferência segura dos resultados dos mesmos, em um fórum que pode ser facilmente usável para processamento a jusante.[0778] System 1 may be further adapted to receive and/or transmit various data 900 related to the procedures and processes disclosed herein, such as related to electronic medical record (EMR) data, Federal Drug Administration test and/or structuring data, annotation-relevant data, and the like. Such data may be useful in enabling a user to make and/or allow access to generated medical, therapeutic, and/or prophylactic modalities developed through use of system 1 and/or made accessible thereby. Accordingly, in various instances, the devices, methods, and systems disclosed herein enable the secure performance of genetic and bioanalytical analysis, as well as the secure transfer of the results thereof, in a forum that may be readily usable for downstream processing. Additionally, in various instances, the devices, methods, and systems disclosed herein enable the secure transmission of data into the system, such as from one or more health monitoring and/or data storage facilities and/or a government agency, such as the FDA or NIH. For example, the system may be configured to securely receive EMR/PHR data, as may be transmitted from a health care and/or storage facility for use in accordance with the methods disclosed herein, such as for the performance of genetic and bioanalytical analysis, as well as for the secure transfer of the results thereof, in a forum that may be readily usable for downstream processing.

[0779] Particularmente, o primeiro estrato de processamento terciário 700 pode incluir uma ou mais plataformas de processamento genômico, como para realizar a análise genética, como em dados mapeados e/ou alinhados, por exemplo, em um formato de arquivo SAM ou BAM, e/ou para dados variantes de processamento, como em um formato VCF. Por exemplo, a primeira plataforma de processamento terciária pode incluir um ou mais dentre uma segmentação de genoma, segmentação de epigenoma, uma segmentação de metagenoma, uma segmentação de genotipagem conjunta, assim como uma ou mais segmentações de análise variante, incluindo: uma segmentação de GATK, segmentação variante estrutural, segmentação de chamada de variante somática e, em alguns casos, pode incluir uma segmentação de análise de sequenciamento de RNA. Uma ou mais outras segmentações de análise genômicas também podem ser incluídas.[0779] In particular, the first tertiary processing layer 700 may include one or more genomic processing platforms, such as for performing genetic analysis, such as on mapped and/or aligned data, e.g., in a SAM or BAM file format, and/or for processing variant data, such as in a VCF format. For example, the first tertiary processing platform may include one or more of a genome segmentation, an epigenome segmentation, a metagenome segmentation, a joint genotyping segmentation, as well as one or more variant analysis segmentations, including: a GATK segmentation, a structural variant segmentation, a somatic variant calling segmentation, and in some cases may include an RNA sequencing analysis segmentation. One or more other genomic analysis segmentations may also be included.

[0780] Mais especificamente, com referência à Figura 43, em vários casos, a plataforma de processamento bioanalítico de múltiplos estratos e/ou multiplexado inclui uma camada adicional de unidades de geração e/ou processamento de dados. Por exemplo, em certos casos, a plataforma de processamento bioanalítico incorpora uma ou mais segmentações de processamento, em um ou mais dentre implantações de software e/ou hardware, que são direcionadas à realização de um ou mais protocolos de processamento terciário. Por exemplo, em casos particulares, uma plataforma de segmentações de processamento terciário 700 pode incluir um ou mais dentre uma segmentação de genoma, uma segmentação de epigenoma, uma segmentação de metagenoma, uma segmentação de genotipagem conjunta, uma segmentação de variância, como uma segmentação de GATK, e/ou outras segmentações, como uma segmentação de RNA. Adicionalmente, uma segunda camada da plataforma de análises de processamento terciário pode incluir várias segmentações de processamento, como um ou mais dentre uma segmentação de análise de microarranjo, uma segmentação de análise de genoma, por exemplo, de genoma inteiro, segmentação de análise de genotipagem, segmentação de análise de exoma, segmentação de análise de epigenoma, segmentação de análise de metagenoma, segmentação de análise de microbioma, segmentação de análise de genotipagem, incluindo genotipagem conjunta, segmentação de análises de variantes, incluindo segmentações variantes estruturais, segmentações de variantes somáticas, e segmentações de GATK e/ou MuTect2, assim como segmentações de sequenciamento de RNA e outras segmentações de análises genéticas.[0780] More specifically, with reference to Figure 43 , in various instances, the multi-tier and/or multiplexed bioanalytical processing platform includes an additional layer of data generation and/or processing units. For example, in certain instances, the bioanalytical processing platform incorporates one or more processing threads, in one or more of software and/or hardware implementations, that are directed to performing one or more tertiary processing protocols. For example, in particular instances, a tertiary processing thread platform 700 may include one or more of a genome thread, an epigenome thread, a metagenome thread, a joint genotyping thread, a variance thread, such as a GATK thread, and/or other threads, such as an RNA thread. Additionally, a second tier of the tertiary processing analysis platform may include multiple processing threads, such as one or more of a microarray analysis thread, a genome analysis thread, e.g., whole genome, genotyping analysis thread, exome analysis thread, epigenome analysis thread, metagenome analysis thread, microbiome analysis thread, genotyping analysis thread including joint genotyping, variant analysis thread including structural variant threads, somatic variant threads, and GATK and/or MuTect2 threads, as well as RNA sequencing threads and other genetic analysis threads.

[0781] Consequentemente, em uma modalidade, a plataforma de processamento bioanalítico de múltiplos estratos inclui uma segmentação metagenômica. Por exemplo, uma segmentação metagenômica pode ser incluída, como para o desempenho de um ou mais processos genômicos ambientais. Particularmente, em várias modalidades, a análise metagenômica pode ser configurada para determinar se um grupo de organismos evoluiu a partir de ancestral comum, como uma espécie ou outro clade. Mais particularmente, em várias modalidades, uma amostra ambiental que contém uma multiplicidade de organismos vivos e/ou mortos na mesma pode ser obtida, a partir da qual o DNA/RNA presente pode ser isolado, sequenciado, e processado por meio de uma ou mais dentre as plataformas de processamento no presente documento, de modo a identificar a espécie particular presente e/ou um ou mais outros fatores genômicos relevantes à mesma. Tais amostras "ambientais" podem incluir uma multiplicidade de microbiomas humanos (por exemplo, relacionadas aos micro-organismos que são encontrados em associação a tanto humanos saudáveis quanto com doença, incluindo microorganismos encontrados nas amostras de pele, sangue, saliva, fezes) assim como agentes ambientais externos.[0781] Accordingly, in one embodiment, the multi-layer bioanalytical processing platform includes a metagenomic slicer. For example, a metagenomic slicer may be included, such as for performing one or more environmental genomic processes. Particularly, in various embodiments, the metagenomic analysis may be configured to determine whether a group of organisms evolved from a common ancestor, such as a species or other clade. More particularly, in various embodiments, an environmental sample containing a multiplicity of living and/or dead organisms therein may be obtained, from which the DNA/RNA present may be isolated, sequenced, and processed by one or more of the processing platforms herein, so as to identify the particular species present and/or one or more other genomic factors relevant thereto. Such "environmental" samples may include a multitude of human microbiomes (e.g., related to microorganisms that are found in association with both healthy and diseased humans, including microorganisms found in skin, blood, saliva, and feces samples) as well as external environmental agents.

[0782] Há uma pluralidade de métodos para derivar as amostras genéticas sequenciadas para realizar processamento mutagenômico. Um primeiro método inclui um protocolo de clonagem de RNA ribossômico 16S alvejado e/ou sequenciamento de gene. Por exemplo, o RNA ribossômico 16S é altamente variável através das espécies (ou até mesmo cepas de uma espécie). Consequentemente, esse RNA pode ser isolado e sequenciado para produzir um perfil genético de biodiversidade que é derivado de amostras biológicas de ocorrência natural, o que pode ser usado para informar o A/I ou outros bancos de dados do sistema. Entretanto, um problema com tal sequenciamento é que uma quantidade grande de biodiversidade microbiana pode estar ausente simplesmente devido à maneira pela qual a mesma foi cultivada.[0782] There are a variety of methods for deriving sequenced genetic samples for mutagenomic processing. A primary method includes a targeted 16S ribosomal RNA cloning protocol and/or gene sequencing. For example, 16S ribosomal RNA is highly variable across species (or even strains of a species). Accordingly, such RNA can be isolated and sequenced to produce a genetic biodiversity profile that is derived from naturally occurring biological samples, which can be used to inform A/I or other system databases. However, a problem with such sequencing is that a large amount of microbial biodiversity may be missing simply because of the manner in which it was cultured.

[0783] Consequentemente, um segundo método inclui um protocolo direcionado shotgun e/ou PCR que pode ser usado para gerar amostras de uma pluralidade, por exemplo, todos os genes de todos os agentes biológicos das comunidades amostradas, os quais uma vez sequenciados podem revelar a diversidade genética de vida microscópica. Especificamente, no método de sequenciamento shotgun, uma sequência de referência agregada pode ser gerada, por exemplo, a partir de muitos (por exemplo, dezenas de milhares) de genomas de referência de espécies diferentes. Entretanto, o tamanho de agregado dessa quantidade de genomas de referência é grande. Logo, é vantajoso selecionar uma ou mais subsequências distintas de cada genoma de referência de modo a construir a sequência de referência agregada.[0783] Accordingly, a second method includes a targeted shotgun and/or PCR protocol that can be used to generate samples of a plurality, e.g., all genes of all biological agents in the sampled communities, which once sequenced can reveal the genetic diversity of microscopic life. Specifically, in the shotgun sequencing method, an aggregated reference sequence can be generated, e.g., from many (e.g., tens of thousands) of reference genomes from different species. However, the aggregate size of this number of reference genomes is large. Therefore, it is advantageous to select one or more distinct subsequences from each reference genome in order to construct the aggregated reference sequence.

[0784] Por exemplo, tal subsequência pode estar na faixa de diversas centenas de bases a diversos milhares de bases de comprimento, as quais são de modo ideal sequências únicas que não ocorrem em outras espécies (ou cepas). Essas subsequências podem ser, então, agregadas de modo a construir as sequências de referência. Consequentemente, uma vez isoladas, sequenciadas, mapeadas e alinhadas, essas sequências metagenômicas podem ser comparadas com genomas de referência parcial ou total para muitas espécies, e a biodiversidade genética pode ser determinada.[0784] For example, such a subsequence may be in the range of several hundred bases to several thousand bases in length, which are ideally unique sequences that do not occur in other species (or strains). These subsequences can then be aggregated to construct reference sequences. Consequently, once isolated, sequenced, mapped and aligned, these metagenomic sequences can be compared to partial or full reference genomes for many species, and genetic biodiversity can be determined.

[0785] Logo, a metagenômica oferece uma lente poderosa para visualizar o mundo microbiano que pode revolucionar o entendimento do mundo vivo. Consequentemente, em qualquer um desses casos, em que há uma presença significante de um DNA de organismos presente em uma amostra, essa espécie pode ser identificada como nesse ambiente. De modo ideal, de maneira como essa, as espécies não comuns a outras espécies geralmente presentes nesse ambiente podem ser identificadas. Especificamente, quando a cobertura de todas as espécies é normalizada para as amostras ambientais obtidas, a diversidade genética de todas as espécies presentes pode ser determinada e pode ser comparada com a cobertura inteira, como comparando-se uma porção de um DNA do organismo particular àquela da sequência genética de referência biologicamente diversa gerada.[0785] Thus, metagenomics offers a powerful lens for viewing the microbial world that can revolutionize our understanding of the living world. Consequently, in any such case where there is a significant presence of an organism's DNA present in a sample, that species can be identified as being in that environment. Ideally, in this manner, species not common to other species generally present in that environment can be identified. Specifically, when the coverage of all species is normalized to the environmental samples obtained, the genetic diversity of all species present can be determined and can be compared to the entire coverage, such as by comparing a portion of a particular organism's DNA to that of the biologically diverse reference gene sequence generated.

[0786] A significância dessas análises pode ser determinada por métodos bayesianos, como estimando-se a probabilidade de observar as leituras sequenciadas de um organismo particular, supondo-se que uma dada espécie está ou não está presente. Os métodos de probabilidade bayesianos são direcionados à descrição da probabilidade de um evento, com base nas condições que podem estar relacionadas a esse evento. Por exemplo, se alguém estiver interessado em determinar a presença de câncer em um sujeito, e se a idade do sujeito é desconhecida, e se for determinado que o câncer é uma doença relacionada à idade, então, com o uso do teorema de Bayes, as informações cerca da idade do sujeito podem ser usadas para avaliar mais precisamente a probabilidade de câncer.[0786] The significance of these analyses can be determined by Bayesian methods, such as estimating the probability of observing sequenced reads from a particular organism, assuming that a given species is or is not present. Bayesian probability methods are directed at describing the probability of an event, based on the conditions that may be related to that event. For example, if one is interested in determining the presence of cancer in a subject, and if the subject's age is unknown, and if it is determined that cancer is an age-related disease, then, using Bayes' theorem, information about the subject's age can be used to more accurately assess the probability of cancer.

[0787] Especificamente, com a interpretação de probabilidade bayesiana, o teorema expressa como um grau subjetivo de convecção pode mudar racionalmente para responder pela evidência observada. O teorema de Bayes é determinado matematicamente como a equação a seguir: P(A/B) = P (B/A) P (A) / P (B), em que A e B são eventos e P(B) + 0. P(A) e P{B) são as probabilidades de observar A e B sem relação entre si. P(A | B), uma probabilidade condicional, é a probabilidade de observar o evento A dado que B é verdadeiro. P(B | A) é a probabilidade de observar o evento B dado que A é verdadeiro.[0787] Specifically, with the Bayesian probability interpretation, the theorem expresses how a subjective degree of convection can rationally change to account for observed evidence. Bayes' theorem is stated mathematically as the following equation: P(A/B) = P(B/A) P(A) / P(B), where A and B are events and P(B) + 0. P(A) and P{B) are the probabilities of observing A and B unrelated to each other. P(A | B), a conditional probability, is the probability of observing event A given that B is true. P(B | A) is the probability of observing event B given that A is true.

[0788] Consequentemente, uma ou mais etapas de realizar uma análise de probabilidade Bayesiana nesse contexto pode incluir um ou mais dentre: As chamadas de presença podem ser feitas para clades em vários níveis taxonômicos: reino, filo, classe, ordem, família, gênero, espécie e/ou cepa. Entretanto, isso é complicado pelo fato de que DNA tende a ser crescentemente similar entre organismos que compartilham níveis taxonômicos mais baixos. Adicionalmente, frequentemente uma amostra pode corresponder a um genoma de referência de múltiplas espécies em um nível taxonômico mais alto (ou múltiplas cepas de uma espécie), e então, em muitos casos, apenas um clade mais geral (como um gênero ou família) pode ser chamado presente de modo não ambíguo, em vez de uma espécie ou cepa específica. Independentemente, os dispositivos, sistemas, e métodos para usar a mesma revelados no presente documento podem ser empregados para superar essas e outras tais dificuldades.[0788] Accordingly, one or more steps of performing a Bayesian probability analysis in this context may include one or more of: Presence calls may be made for clades at multiple taxonomic levels: kingdom, phylum, class, order, family, genus, species, and/or strain. However, this is complicated by the fact that DNA tends to be increasingly similar between organisms that share lower taxonomic levels. Additionally, often a sample may match a reference genome from multiple species at a higher taxonomic level (or multiple strains of a species), and so in many cases only a more general clade (such as a genus or family) may be unambiguously called present, rather than a specific species or strain. Regardless, the devices, systems, and methods for using the same disclosed herein may be employed to overcome these and other such difficulties.

[0789] Especificamente, em uma modalidade, um método para determinar a presença de duas ou mais espécies ou clades de organismos de uma amostra é fornecido. Por exemplo, em uma primeira etapa, as leituras de dados de sequência genômicos podem ser obtidas a partir de uma amostra, como quando as leituras podem estar em um formato FASTQ ou BCL. O mapeamento da sequência genômica pode ser realizada de modo a mapear as leituras a múltiplas sequências de referência genômica. Nesse caso, as sequências de referência genômica podem ser um genoma inteiro, ou podem ser um genoma parcial a fim de reduzir a quantidade de dados necessária para cada espécie, cepa ou clade. Entretanto, usar as porções maiores de um genoma aumentará a sensibilidade de detecção, e cada sequência de referência usada deve ser selecionada para representar cada espécie, cepa ou clade que será distinto um do outro.[0789] Specifically, in one embodiment, a method for determining the presence of two or more species or clades of organisms from a sample is provided. For example, in a first step, genomic sequence data reads may be obtained from a sample, such as when the reads may be in a FASTQ or BCL format. Genomic sequence mapping may be performed in order to map the reads to multiple genomic reference sequences. In this case, the genomic reference sequences may be an entire genome, or may be a partial genome in order to reduce the amount of data required for each species, strain, or clade. However, using larger portions of a genome will increase detection sensitivity, and each reference sequence used should be selected to represent each species, strain, or clade that will be distinct from one another.

[0790] Com esse propósito, toda ou uma porção da sequência genômica a partir do ribossomo 16S de cada espécie ou clade pode ser usada. Dessa maneira, duas ou mais sequências de referência genômica de espécies, cepas, ou clades de organismos com suspeita de estarem na amostra, podem ser construídas de modo a detectar membros desses grupos na amostra. Uma vez construídas, um índice para cada uma das sequências de referência genômica também pode ser construído. Os índices podem ser uma tabela de hash ou um índice de árvore, com um índice de árvore de prefixo ou sufixo. Uma vez que o índice foi construído, as leituras de sequência genômica de amostra podem ser comparadas com cada um dos dois ou mais índices. Então, pode ser determinado se a leituras de sequência genômica de amostra mapeiam a cada um dos índices.[0790] For this purpose, all or a portion of the genomic sequence from the 16S ribosome of each species or clade can be used. In this manner, two or more genomic reference sequences from species, strains, or clades of organisms suspected of being in the sample can be constructed in order to detect members of these groups in the sample. Once constructed, an index for each of the genomic reference sequences can also be constructed. The indexes can be a hash table or a tree index, with a prefix or suffix tree index. Once the index has been constructed, the sample genomic sequence reads can be compared to each of the two or more indices. It can then be determined whether the sample genomic sequence reads map to each of the indices.

[0791] De modo semelhante, as leituras da sequência genômica também podem ser alinhadas à sequência de referência genômica (ou sequências de referências genômicas) à qual são mapeadas. Isso gerará uma pontuação de alinhamento, de acordo com os métodos no presente documento, o qual pode ser usado na análise da probabilidade de uma leitura indicar a presença ou ausência de uma espécie ou clade de organismo na amostra. Especificamente, o mapeamento e/ou alinhamento pode ser alcançado pelos presentes módulos de software e/ou hardware, conforme descrito no presente documento. Em algumas modalidades, os dados mapeados e alinhados podem ser, então, comunicados ao recurso de computação 100/300 para análise e processamento adicionais.[0791] Similarly, genomic sequence reads may also be aligned to the genomic reference sequence (or genomic reference sequences) to which they are mapped. This will generate an alignment score, in accordance with the methods herein, which may be used in analyzing the likelihood that a read indicates the presence or absence of a species or clade of organism in the sample. Specifically, mapping and/or alignment may be achieved by the present software and/or hardware modules as described herein. In some embodiments, the mapped and aligned data may then be communicated to the computing resource 100/300 for further analysis and processing.

[0792] Por exemplo, as leituras de sequência genômica mapeadas e/ou alinhadas podem ser analisadas para determinar a propensão que um organismo que tem a sequência de referência genômica está presente na amostra. De modo semelhante, uma lista de espécies, cepas, ou clades que são determinados para estarem presentes na amostra ambiental pode ser relatada. Em certas modalidades, a lista pode ser relatada com uma métrica de confiança (por exemplo, valor P) de modo a indicar a confiança estatística da avaliação. A lista inteira de espécies, cepas, ou clades de organismos analisados também pode ser relatada, juntamente com uma indicação de quais espécies, cepas, ou clades estiveram presentes, e uma métrica de confiança. Deve ser observado que, embora descrito em relação à análise de microbiomas, várias das técnicas e procedimentos revelados no presente documento podem ser empregados na análise de todos os outros protocolos de processamento terciário, quando apropriado.[0792] For example, mapped and/or aligned genomic sequence reads can be analyzed to determine the propensity that an organism having the genomic reference sequence is present in the sample. Similarly, a list of species, strains, or clades that are determined to be present in the environmental sample can be reported. In certain embodiments, the list can be reported with a confidence metric (e.g., P-value) to indicate the statistical confidence of the assessment. The entire list of species, strains, or clades of organisms analyzed can also be reported, along with an indication of which species, strains, or clades were present, and a confidence metric. It should be noted that, although described in relation to microbiome analysis, several of the techniques and procedures disclosed herein can be employed in the analysis of all other tertiary processing protocols, where appropriate.

[0793] Por exemplo, a Figura 43B apresenta uma implantação exemplificativa de um método para realizar a análise ambiental, como de microbiomas em uma amostra ambiental. Por exemplo, em um primeiro caso, uma amostra ambiental pode ser obtida, e os vários materiais genéticos podem ser isolados a partir disso. Os vários materiais genéticos podem ser, então, processados e sequenciados, como por meio de um NGS adequadamente configurado.[0793] For example, Figure 43B presents an exemplary implementation of a method for performing environmental analysis, such as of microbiomes in an environmental sample. For example, in a first case, an environmental sample may be obtained, and the various genetic materials may be isolated therefrom. The various genetic materials may then be processed and sequenced, such as by means of a suitably configured NGS.

[0794] Consequentemente, em uma primeira etapa 1000, uma vez que vários materiais genéticos foram sequenciados, por exemplo, por um NGS, os mesmos podem ser transmitidos para o sistema 1 revelado no presente documento. Na etapa 1010, uma, duas ou mais sequências de referência genômica de interesse, por exemplo, a ser detectadas na amostra, podem ser construídas. Uma etapa 1020, um índice para cada um dentre a uma, duas ou mais sequências de referência genômica pode ser construído. Adicionalmente, na etapa 1030, as leituras sequenciadas obtidas da amostra genômica podem ser, então, comparadas com aos um, dois, ou mais índices, como por meio de um módulo de mapeamento adequadamente configurado. Na etapa 1040, então, pode ser determinado se a amostra genômica de leituras sequenciadas mapeiam a cada um dos dois ou mais índices.[0794] Accordingly, in a first step 1000, once several genetic materials have been sequenced, for example by an NGS, they can be transmitted to the system 1 disclosed herein. In step 1010, one, two or more genomic reference sequences of interest, for example to be detected in the sample, can be constructed. In step 1020, an index for each of the one, two or more genomic reference sequences can be constructed. Additionally, in step 1030, the sequenced reads obtained from the genomic sample can then be compared to the one, two or more indices, such as by means of a suitably configured mapping module. In step 1040, it can then be determined whether the genomic sample's sequenced reads map to each of the two or more indices.

[0795] Nesse ponto, se desejado, na etapa 1050, as leituras mapeadas podem ser alinhadas com as sequências de referência genômica para gerar um alinhamento e/ou uma pontuação de alinhamento. Consequentemente, uma vez que os materiais genéticos obtidos na amostra são mapeados e/ou alinhados, na etapa 1060, a probabilidade de um dado organismo que tem a sequência de referência estar presente na amostra pode ser determinada. Uma vez processados, uma lista de espécies, cepas, e/ou clades que estão presentes na amostra, pode ser identificada e/ou relatada.[0795] At this point, if desired, in step 1050, the mapped reads can be aligned with the genomic reference sequences to generate an alignment and/or an alignment score. Accordingly, once the genetic materials obtained in the sample are mapped and/or aligned, in step 1060, the probability of a given organism having the reference sequence being present in the sample can be determined. Once processed, a list of species, strains, and/or clades that are present in the sample can be identified and/or reported.

[0796] A plataforma de processamento terciária revelada no presente documento também pode incluir uma segmentação epigenômica. Particularmente, a epigenética estuda os efeitos genéticos não codificados na sequência de DNA de um organismo. O termo também se refere às mudanças em si: as mudanças funcionalmente relevantes ao genoma que não envolvem uma mudança na sequência de nucleotídeo. Independentemente, as mudanças epigenéticas são estavelmente genótipos hereditários que resultam a partir de mudanças em um cromossomo que não altera a sequência de DNA. Essas alterações podem ou podem não ser hereditários. Particularmente, as mudanças epigenéticas modificam a ativação de certos genes, mas não a sequência de código genético de DNA. A mesma é a microestrutura (não código) de DNA em si ou as proteínas de cromatina associadas podem ser modificadas, causando a ativação ou silenciamento.[0796] The tertiary processing platform disclosed herein may also include epigenomic targeting. In particular, epigenetics studies the non-coding genetic effects on the DNA sequence of an organism. The term also refers to the changes themselves: the functionally relevant changes to the genome that do not involve a change in the nucleotide sequence. Independently, epigenetic changes are stably heritable genotypes that result from changes in a chromosome that do not alter the DNA sequence. These changes may or may not be heritable. In particular, epigenetic changes modify the activation of certain genes, but not the genetic coding sequence of DNA. The same is true of the microstructure (non-coding) of DNA itself or the associated chromatin proteins may be modified, causing activation or silencing.

[0797] O epigenoma está envolvido na regulação de expressão de gene, desenvolvimento, diferenciação de tecido e supressão de elementos transponíveis. Diferente do genoma subjacente que é largamente estático em um indivíduo, o epigenoma pode ser dinamicamente alterado por condições ambientais. O campo é análogo à genômica e proteômica, as quais são o estudo do genoma e proteoma de uma célula. Adicionalmente, a epigenômica envolve o estudo do conjunto completo de modificações epigenéticas no material genético de uma célula, conhecido como o epigenoma que consiste em um registo de mudanças químicas ao DNA e proteínas de histona de um organismo. Essas mudanças podem ser passadas para a prole do organismo por meio de herança epigenética transgeracional. As mudanças para o epigenoma podem resultar em mudanças à estrutura de cromatina e mudanças à função do genoma.[0797] The epigenome is involved in the regulation of gene expression, development, tissue differentiation, and suppression of transposable elements. Unlike the underlying genome, which is largely static within an individual, the epigenome can be dynamically altered by environmental conditions. The field is analogous to genomics and proteomics, which are the study of the genome and proteome of a cell. Additionally, epigenomics involves the study of the complete set of epigenetic modifications to a cell's genetic material, known as the epigenome, which consists of a record of chemical changes to an organism's DNA and histone proteins. These changes can be passed on to the organism's offspring through transgenerational epigenetic inheritance. Changes to the epigenome can result in changes to chromatin structure and changes to genome function.

[0798] Esse mecanismo epigenético possibilita que as células diferenciadas como um organismo multicelular expressem apenas os genes que são necessários para sua própria atividade. As mudanças epigenéticas são preservadas quando as células se dividem. Particularmente, a maioria das mudanças epigenéticas apenas ocorrem no curso de um tempo de vida do organismo individual. Entretanto, se a desativação de gene ocorre em um esperma ou célula de ovo que resulta em fertilização, então, algumas mudanças epigenéticas podem ser transferidas para a próxima geração. Diversos tipos de sistemas de herança epigenética podem ter um papel no que se tornou conhecido como memória de célula. Por exemplo, várias modificações covalentes de DNA (por exemplo, hidroximetilação e metilação de citosina) ou de proteínas de histona (por exemplo acetilação de lisina, metilação de lisina e arginina, fosforilação de serina e treonina e ubiquitinação de lisina e sumoilação) podem ter papéis centrais em muitos tipos de herança epigenética. Devido ao fato de que o fenótipo de uma célula ou indivíduo é afetado pelo qual seus genes são transcritos, os estados de transcrição hereditários podem dar origem aos efeitos epigenéticos. Tais efeitos em traços fenotípicos celulares e fisiológicos podem resultar a partir de fatores externos ou ambientais que ligam e desligam genes e afetam como células expressam genes.[0798] This epigenetic mechanism enables differentiated cells as a multicellular organism to express only those genes that are necessary for their own activity. Epigenetic changes are preserved when cells divide. In particular, most epigenetic changes only occur over the course of an individual organism's lifetime. However, if gene inactivation occurs in a sperm or egg cell that results in fertilization, then some epigenetic changes may be transferred to the next generation. Several types of epigenetic inheritance systems may play a role in what has become known as cellular memory. For example, various covalent modifications of DNA (e.g., cytosine hydroxymethylation and methylation) or of histone proteins (e.g., lysine acetylation, lysine and arginine methylation, serine and threonine phosphorylation, and lysine ubiquitination and sumoylation) may play central roles in many types of epigenetic inheritance. Because the phenotype of a cell or individual is affected by which of its genes are transcribed, heritable transcriptional states can give rise to epigenetic effects. Such effects on cellular and physiological phenotypic traits can result from external or environmental factors that turn genes on and off and affect how cells express genes.

[0799] Por exemplo, os danos ao DNA podem causar mudanças epigenéticas. Os danos ao DNA são muito frequentes. Esses danos são grandemente reparados, mas no sítio de um reparo de DNA, as mudanças epigenéticas podem permanecer. Em particular, uma quebra de filamento duplo em DNA pode iniciar o silenciamento de gene epigenético não programado tanto por causar a metilação de DNA quanto por silenciar os tipos de modificações de histona (remodelagem de cromatina). Outros exemplos de mecanismos que produzem tais mudanças são metilação de DNA e modificação de histona, em que cada um altera como os genes são expressados sem alterar a sequência de DNA subjacente. A remodelagem de nucleossoma também foi constatada por causar silenciamento epigenético de reparo de DNA. Adicionalmente, os produtos químicos que danificam o DNA também podem causar hipometilação considerável de DNA, como através da ativação de vias de estresse oxidativo. Adicionalmente, a expressão de gene pode ser controlada através da ação de proteínas repressoras que se fixam a regiões silenciadoras do DNA.[0799] For example, DNA damage can cause epigenetic changes. DNA damage is very common. Such damage is largely repaired, but at the site of DNA repair, epigenetic changes may remain. In particular, a double-strand break in DNA can initiate unscheduled epigenetic gene silencing by either causing DNA methylation or by silencing types of histone modifications (chromatin remodeling). Other examples of mechanisms that produce such changes are DNA methylation and histone modification, each of which alters how genes are expressed without altering the underlying DNA sequence. Nucleosome remodeling has also been shown to cause epigenetic silencing of DNA repair. Additionally, chemicals that damage DNA can also cause substantial DNA hypomethylation, such as through activation of oxidative stress pathways. Additionally, gene expression can be controlled through the action of repressor proteins that bind to silenced regions of DNA.

[0800] Essas mudanças epigenéticas podem durar através de divisões de célula para a duração da vida da célula, e também podem durar por múltiplas gerações, mesmo que não envolvam mudanças na sequência de DNA subjacente do organismo; em vez disso, fatores não genéticos fazem com que os genes do organismo se comportem (ou "se expressem") diferentemente. Um exemplo de uma mudança epigenética em biologia eucariótica é o processo de diferenciação celular. Durante a morfogênese, as células-tronco totipotentes se tornam as várias linhagens de célula pluripotentes do embrião, os quais, por sua vez, se tornam células completamente diferenciadas. Em outras palavras, uma célula de ovo fertilizado única - o zigoto - continua a se dividir, todas as células filhas resultantes mudam para os tipos de célula diferentes em um organismo, incluindo neurônios, células musculares, epitélio, endotélio de vasos sanguíneos, etc., ativando-se os genes enquanto inibem a expressão de outros.[0800] These epigenetic changes can last through cell divisions for the duration of the cell's life, and can also last for multiple generations, even though they do not involve changes in the organism's underlying DNA sequence; rather, non-genetic factors cause the organism's genes to behave (or "express") differently. An example of an epigenetic change in eukaryotic biology is the process of cell differentiation. During morphogenesis, totipotent stem cells become the various pluripotent cell lineages of the embryo, which in turn become fully differentiated cells. In other words, as a single fertilized egg cell—the zygote—continues to divide, all of the resulting daughter cells change into the different cell types in an organism, including neurons, muscle cells, epithelium, blood vessel endothelium, etc., activating some genes while inhibiting the expression of others.

[0801] Há diversas camadas de regulação de expressão de gene. Uma maneira em que os genes são regulados é através da remodelagem de cromatina. Cromatina é o complexo de DNA e as proteínas de histona com as quais se associa. Se a maneira que o DNA é envolvido em torno das histonas muda, a expressão de gene também pode mudar. Uma primeira maneira é após a modificação de tradução dos aminoácidos que produzem as proteínas de histona. As proteínas de histona são feitas de cadeias longas de aminoácidos. Se os aminoácidos que estão na cadeia são mudados, o formato da histona pode ser modificado. DNA é não completamente desenovelado durante a replicação. É possível, então, que as histonas modificadas possam ser carregadas em cada cópia nova do DNA. Uma vez ali, essas histonas podem atuar como modelos, iniciando as histonas novas circundantes para serem conformadas da maneira nova. Alterando-se o formato das histonas em torno das mesmas, essas histonas modificadas garantiriam que um programa de transcrição específico de linhagem é mantido após a divisão de célula.[0801] There are several layers of regulation of gene expression. One way in which genes are regulated is through chromatin remodeling. Chromatin is the complex of DNA and the histone proteins with which it associates. If the way that DNA is wrapped around histones changes, gene expression can also change. A first way is through translational modification of the amino acids that make up the histone proteins. Histone proteins are made of long chains of amino acids. If the amino acids in the chain are changed, the shape of the histone can be changed. DNA is not completely unfolded during replication. It is possible, then, that modified histones could be loaded into each new copy of DNA. Once there, these histones could act as templates, initiating the surrounding new histones to be folded in the new way. By changing the shape of the histones around them, these modified histones would ensure that a lineage-specific transcriptional program is maintained after cell division.

[0802] A segunda maneira é a adição de grupos metila ao DNA, principalmente em sítios de CpG, para converter citosina a 5-metilcitosina. 5-metilcitosina tem desempenho semelhante à citosina regular, emparelhando com uma guanina em DNA de filamento duplo. Entretanto, algumas áreas do genoma são metiladas de modo mais pesado do que outras, e áreas altamente metiladas tendem a ser menos ativas de modo transcricional, através de um mecanismo não completamente entendido. A metilação de citosinas também pode persistir a partir da linhagem germinal de um dos parentes no zigoto, marcando o cromossomo como herdado de um parente ou o outro (impressão genética). Embora as modificações de histona ocorram ao longo da sequência inteira, os N-terminais não estruturas de histonas (chamados caudas de histona) são modificados de modo particularmente alto. Essas modificações incluem acetilação, metilação, ubiquitilação, fosforilação, sumoilação, ribosilação e citrulinação.[0802] The second pathway is the addition of methyl groups to DNA, primarily at CpG sites, to convert cytosine to 5-methylcytosine. 5-Methylcytosine performs similarly to regular cytosine, pairing with a guanine in double-stranded DNA. However, some areas of the genome are more heavily methylated than others, and highly methylated areas tend to be less transcriptionally active, through a mechanism that is not fully understood. Cytosine methylation can also persist from the germline of one parent into the zygote, marking the chromosome as inherited from one parent or the other (genetic imprinting). Although histone modifications occur throughout the entire sequence, the N-terminal nonstructures of histones (called histone tails) are particularly highly modified. These modifications include acetylation, methylation, ubiquitylation, phosphorylation, sumoylation, ribosylation, and citrullination.

[0803] Consequentemente, a metilação de DNA é a presença de grupos metila em alguns nucleotídeos de DNA, especialmente bases 'C seguidas por dinucleotídeos 'G's, ou "CpG”. A metilação em regiões promotoras tendem a suprimir a expressão de gene. A análise de metilação é o processo de detectar quais bases 'C são metiladas em um dado genoma de amostra. O sequenciamento de bissulfito (MethylC-seq) é o método mais comum para detectar metilação com o uso de sequenciamento de genoma inteiro, em que as bases de citosina ('C') não metiladas são quimicamente convertidas para bases uracila ('U'), as quais se tornam bases timina ('T') após amplificação de PCR. As bases 'C metiladas resistem à conversão.[0803] Accordingly, DNA methylation is the presence of methyl groups on some DNA nucleotides, especially 'C' bases followed by 'G' dinucleotides, or "CpG". Methylation in promoter regions tends to suppress gene expression. Methylation analysis is the process of detecting which 'C' bases are methylated in a given sample genome. Bisulfite sequencing (MethylC-seq) is the most common method for detecting methylation using whole-genome sequencing, in which unmethylated cytosine ('C') bases are chemically converted to uracil ('U') bases, which become thymine ('T') bases upon PCR amplification. Methylated 'C' bases resist conversion.

[0804] Consequentemente, de acordo com os dispositivos e métodos revelados no presente documento, a detecção de modificações de moléculas de DNA, em que as modificações não afetam a sequência de DNA, mas afetam a expressão de gene, são fornecidas no presente documento, como realizando-se uma ou mais operações de mapeamento e/ou alinhamento em material genético epigenético. Em tais métodos, as leituras obtidas podem ser mapeadas e alinhadas ao genoma de referência de maneira que permite que as bases 'T' convertidas se alinhem às posições ‘C de referência, e as bases 'C podem ser substituídas por 'T's na sequência de referência, antes do mapeamento/alinhamento. Isso permite o mapeamento impreciso e o alinhamento das leituras, os quais têm C’s convertidos por bissulfito (agora T's), revelando, desse modo, os C's não convertidos por bissulfito (metilados) nas leituras de sequência genômica. Para alinhamentos complementados reversos, as substituições complementares podem ser usadas, por exemplo, 'G's podem ser substituídos por 'A's.[0804] Accordingly, in accordance with the devices and methods disclosed herein, detection of modifications of DNA molecules, wherein the modifications do not affect the DNA sequence but do affect gene expression, are provided herein, as by performing one or more mapping and/or alignment operations on epigenetic genetic material. In such methods, the obtained reads may be mapped and aligned to the reference genome in a manner that allows the converted 'T' bases to align with the reference 'C' positions, and the 'C bases may be replaced by 'T's in the reference sequence, prior to mapping/alignment. This allows for the imprecise mapping and alignment of reads which have bisulfite converted C's (now T's), thereby revealing the non-bisulfite converted (methylated) C's in the genomic sequence reads. For reverse complemented alignments, complementary substitutions can be used, for example, 'G's can be replaced by 'A's.

[0805] De modo semelhante, o construtor de índice de referência (por exemplo, tabela de hash) e o mapeador/alinhador pode ser modificado para realizar essas substituições automaticamente para o uso MethylC-seq. Alternativamente, o mapeador/alinhador pode ser modificado para permitir o alinhamento direto de 'T's de leitura a ‘C's de referência, e o alinhamento complementado reverso de 'A's de leitura a ‘G’s de referência. Os métodos revelados no presente documento melhoram a precisão e impedem o alinhamento direto errôneo de 'C's de leitura a 'T's de referência, ou alinhamento complementado de modo reverso errôneo de ‘G's de leitura a ‘A's de referência.[0805] Similarly, the reference index builder (e.g., hash table) and mapper/aligner can be modified to perform these replacements automatically for MethylC-seq use. Alternatively, the mapper/aligner can be modified to allow direct alignment of read 'T's to reference 'C's, and reverse complemented alignment of read 'A's to reference 'G's. The methods disclosed herein improve accuracy and prevent erroneous direct alignment of read 'C's to reference 'T's, or erroneous reverse complemented alignment of read 'G's to reference 'A's.

[0806] Adicionalmente, são fornecidos no presente documento os métodos para determinar o estado de metilação de bases de citosina em leituras de sequência genômica. Por exemplo, em uma primeira etapa, as leituras de sequência genômica de amostras de nucleotídeo tratadas por bissulfito podem ser obtidas. Particularmente, um ou mais protocolos de sequenciamento modificados podem ser empregados de modo a gerar as leituras para processamento secundário, nessas considerações. Especificamente, um ou mais dentre: sequenciamento de bissulfato de genoma inteiro; sequenciamento de bissulfato de representação reduzida; sequenciamento de imunoprecipitação de DNA metilada, e sequenciamento de enzima de restrição sensível à metilação podem ser usados para identificar metilação de DNA através de porções do genoma, em níveis variáveis de resolução até um nível de par de bases. Adicionalmente, a acessibilidade de cromatina pode ser acessada, por exemplo, em que o sequenciamento de sítio de hipersensibilidade de DNase I pode ser realizado, como quando a enzima DNase I pode ser usada para encontrar regiões abertas ou acessíveis no genoma. Adicionalmente, os arranjos de sequenciamento e expressão de RNA podem ser usados para identificar níveis de expressão ou genes de codificação de proteína. Particularmente, o sequenciamento de smRNA pode ser usado para identificar a expressão de RNA de não codificação pequeno, primariamente miRNAs.[0806] Additionally, provided herein are methods for determining the methylation status of cytosine bases in genomic sequence reads. For example, in a first step, genomic sequence reads from bisulfite-treated nucleotide samples may be obtained. In particular, one or more modified sequencing protocols may be employed in order to generate the reads for secondary processing, in these regards. Specifically, one or more of: whole genome bisulfate sequencing; reduced representation bisulfate sequencing; methylated DNA immunoprecipitation sequencing; and methylation-sensitive restriction enzyme sequencing may be used to identify DNA methylation across portions of the genome, at varying levels of resolution down to a base pair level. Additionally, chromatin accessibility may be assessed, for example, where DNase I hypersensitive site sequencing may be performed, such as when the DNase I enzyme may be used to find open or accessible regions in the genome. Additionally, RNA sequencing and expression arrays can be used to identify expression levels of protein-coding genes. In particular, smRNA sequencing can be used to identify the expression of small non-coding RNAs, primarily miRNAs.

[0807] Consequentemente, uma vez sequenciada para produzir leituras, uma sequência de referência genômica pode ser construída para comparação com as leituras. As localizações de CpG na sequência de referência genômica podem ser, então, marcadas. Adicionalmente, a sequência de referência genômica pode ser pré- processada substituindo-se C's em genômica por T's. Um índice para a sequência de referência genômica pode ser construído. E uma vez que o índice foi construído, as leituras de sequência genômica de amostra podem ser comparadas com o índice, e pode ser determinado se as leituras de sequência epigenômica de amostra mapeiam ao índice.[0807] Accordingly, once sequenced to produce reads, a genomic reference sequence can be constructed for comparison to the reads. CpG locations in the genomic reference sequence can then be marked. Additionally, the genomic reference sequence can be pre-processed by replacing C's in genomic with T's. An index to the genomic reference sequence can be constructed. And once the index has been constructed, sample genomic sequence reads can be compared to the index, and it can be determined whether sample epigenomic sequence reads map to the index.

[0808] Adicionalmente, as leituras mapeadas podem ser alinhadas com a sequência de referência genômica de modo a gerar uma pontuação de alinhamento. Em certas modalidades, as substituições de base podem ser feitas na sequência de leitura, e a leitura pode ser comparada novamente e realinhada ao índice. Em algumas modalidades, uma restrição de orientação de alinhamento pode ser utilizada durante o mapeamento e/ou alinhamento de uma leitura, de modo que apenas alinhamentos diretos possam ser permitidos com substituições de C A T na leitura e referência de sequência genômica, e apenas alinhamentos de complemento reverso são permitidos com substituições de G para A, na leitura e referência de sequência genômica.[0808] Additionally, mapped reads can be aligned to the genomic reference sequence to generate an alignment score. In certain embodiments, base substitutions can be made in the read sequence, and the read can be re-compared and realigned to the index. In some embodiments, an alignment orientation constraint can be used during mapping and/or alignment of a read, such that only forward alignments can be allowed with C to T substitutions in the read and genomic sequence reference, and only reverse complement alignments are allowed with G to A substitutions in the read and genomic sequence reference.

[0809] Esses procedimentos de mapeamento e alinhamento podem ser alcançados pelos vários módulos de software e/ou hardware descritos no presente documento. Em algumas modalidades, os dados mapeados e alinhados podem ser, então, comunicados a uma CPU/GPU/QPU para análise e processamento adicionais. Por exemplo, as leituras mapeadas e alinhadas podem ser classificadas por sua posição de referência mapeada. Em algumas modalidades, as leituras duplicadas podem ser marcadas e removidas. As leituras de sobreposição de um acúmulo de leituras podem ser analisadas sobre cada localização de CpG de referência marcada. Em tal caso, uma timina (T) que substituiu uma citosina (C) indica uma citosina não metilada e é marcada como tal. E uma citosina que permanece na sequência de leitura pode ser marcada como uma citosina metilada. Os alinhamentos complementados reversos de localizações de CpG também podem ser marcados como metilados ou não metilados. Por exemplo, uma guanina (G) que substituiu uma adenina (A) é marcada como o complemento reverso de uma citosina não metilada (C), enquanto uma guanina (G) que permanece na sequência de leitura é marcada como o complemento reverso de uma citosina metilada (C). A situação de metilação provável de cada localização de CpG em cada filamento de nucleosídeo pode ser relatado, e uma métrica de confiança associada (por exemplo, valor p) na chamada de metilação pode ser feita. Em algumas modalidades, a situação de metilação das localizações de CpG marcadas também podem ser indicadas para cada cromossomo de um par diploide de cromossomos.[0809] These mapping and alignment procedures can be achieved by the various software and/or hardware modules described herein. In some embodiments, the mapped and aligned data can then be communicated to a CPU/GPU/QPU for further analysis and processing. For example, mapped and aligned reads can be sorted by their mapped reference position. In some embodiments, duplicate reads can be flagged and removed. Overlapping reads from a backlog of reads can be analyzed over each flagged reference CpG location. In such a case, a thymine (T) that has replaced a cytosine (C) indicates an unmethylated cytosine and is flagged as such. And a cytosine that remains in the read sequence can be flagged as a methylated cytosine. Reverse complemented alignments of CpG locations can also be flagged as methylated or unmethylated. For example, a guanine (G) that has replaced an adenine (A) is marked as the reverse complement of an unmethylated cytosine (C), while a guanine (G) that remains in the reading frame is marked as the reverse complement of a methylated cytosine (C). The likely methylation status of each CpG location on each nucleoside strand can be reported, and an associated confidence metric (e.g., p-value) in the methylation call can be made. In some embodiments, the methylation status of the marked CpG locations can also be indicated for each chromosome of a diploid pair of chromosomes.

[0810] Em relação à modificação de histona, a modificação de histona inclui várias modificações químicas de ocorrência natural das proteínas de histona em que o DNA se enovela, resultando no enovelamento de DNA mais ou menos firme. O DNA enovelado de modo frouxo, por exemplo, é associado a taxas mais altas de expressão de gene. Tais modificações de histona podem ser determinadas por sequenciamento de Imunoprecipitação de Cromatina (ChlP-Seq), o qual pode ser usado para identificar os padrões em genoma de modificações de histona, como usando-se os anticorpos contra as modificações. Adicionalmente, ChlP-seq é um método que pode ser empregado de modo a isolar e sequenciar o DNA que é firmemente ligado a histonas (ou outras proteínas selecionadas). Após ChlP-seq ter sido realizado, a amostra pode ser preparada, o DNA isolado e sequenciado, e o DNA sequenciado pode ser, então, mapeado/alinhado a um genoma de referência conforme revelado no presente documento, e a cobertura mapeada pode ser usada para inferir o nível de ligação de histona em vários loci no genoma. São adicionalmente fornecidos no presente documento os métodos para analisar sequências de nucleotídeo derivadas de ChlP, o que é similar aos métodos descritos abaixo para analisar as variantes estruturais.[0810] With respect to histone modification, histone modification includes various naturally occurring chemical modifications of the histone proteins upon which DNA is folded, resulting in more or less tightly folded DNA. Loosely folded DNA, for example, is associated with higher rates of gene expression. Such histone modifications can be determined by Chromatin Immunoprecipitation Sequencing (ChlP-Seq), which can be used to identify genome-wide patterns of histone modifications, such as by using antibodies against the modifications. Additionally, ChlP-seq is a method that can be employed to isolate and sequence DNA that is tightly bound to histones (or other selected proteins). After ChlP-seq has been performed, the sample can be prepared, DNA isolated and sequenced, and the sequenced DNA can then be mapped/aligned to a reference genome as disclosed herein, and the mapped coverage can be used to infer the level of histone binding at various loci in the genome. Further provided herein are methods for analyzing ChlP-derived nucleotide sequences, which are similar to the methods described below for analyzing structural variants.

[0811] Está em destaque fato de que a epigenética é útil em pesquisa e diagnóstico de câncer. Por exemplo, os tumores humanos são submetidos uma ruptura maior de padrões de metilação de DNA e modificação de histona. De fato, o panorama epigenético aberrante da célula de câncer é caracterizado por uma hipometilação genômica global, hipermetilação de promotor de ilha de CpG de genes supressores de tumor, um código de histona alterado para genes críticos, e uma perda global de histona monoacetilada e trimetilada H4. Consequentemente, os métodos revelados no presente documento podem ser usados com os propósitos de pesquisa e/ou diagnóstico de câncer.[0811] It is noteworthy that epigenetics is useful in cancer research and diagnosis. For example, human tumors undergo a major disruption of DNA methylation and histone modification patterns. Indeed, the aberrant epigenetic landscape of the cancer cell is characterized by global genomic hypomethylation, CpG island promoter hypermethylation of tumor suppressor genes, an altered histone code for critical genes, and a global loss of monoacetylated and trimethylated histone H4. Accordingly, the methods disclosed herein can be used for cancer research and/or diagnostic purposes.

[0812] Adicionalmente, os métodos no presente documento revelados podem ser úteis para gerar um ou mais bancos de dados epigenômicos e/ou genoma de referências. Por exemplo, os métodos no presente documento revelados, por exemplo, que empregam um protocolo de aprendizado A/I do sistema, podem ser úteis para gerar uma referência humana de epigenomas, como de indivíduos saudáveis normais através de uma grande variedade de linhagens celulares, células primárias, e/ou tecidos primários. Tais dados produzidos podem ser então usados para intensificar os protocolos de mapeamento e/ou alinhamento revelados no presente documento. Adicionalmente, uma vez que um banco de dados de diferenças epigenômicas foi gerado, o banco de dados pode ser minado, por exemplo, pelo módulo A/I de modo a caracterizar melhor e determinar fatores relevantes que ocorrem em vários estados de doença, como câncer, demência, doença de Alzheimer e outras afecções neurológicas.[0812] Additionally, the methods disclosed herein may be useful for generating one or more epigenomic and/or genome reference databases. For example, the methods disclosed herein, e.g., employing an A/I learning protocol of the system, may be useful for generating a human reference of epigenomes, such as from normal healthy individuals across a wide variety of cell lines, primary cells, and/or primary tissues. Such data produced may then be used to enhance the mapping and/or alignment protocols disclosed herein. Additionally, once a database of epigenomic differences has been generated, the database may be mined, e.g., by the A/I module in order to better characterize and determine relevant factors occurring in various disease states, such as cancer, dementia, Alzheimer's disease, and other neurological conditions.

[0813] Consequentemente, em vários casos, uma análise epigenômica pode ser realizada, de modo a identificar um ou mais ou o conjunto inteiro de modificações epigenéticas que ocorreram no material genético de uma célula. Particularmente, empregando-se os métodos revelados no presente documento, o epigenoma de um organismo, e/ou as células do mesmo, pode ser determinado, de modo a catalogar e/ou registrar as mudanças químicas ao DNA e proteínas de histona das células do organismo. Por exemplo, uma análise epigenômica exemplificativa é apresentada no presente documento na Figura 43C.[0813] Accordingly, in various instances, an epigenomic analysis may be performed to identify one or more or the entire set of epigenetic modifications that have occurred in the genetic material of a cell. In particular, using the methods disclosed herein, the epigenome of an organism, and/or the cells thereof, may be determined to catalog and/or record the chemical changes to the DNA and histone proteins of the cells of the organism. For example, an exemplary epigenomic analysis is presented herein in Figure 43C.

[0814] Por exemplo, em uma primeira etapa, uma amostra genômica pode ser obtida a partir de um organismo, e o material genético isolado da mesma e sequenciado. Logo, uma vez sequenciado, na etapa 1000, as leituras sequenciadas da amostra podem ser transmitidas para e recebidas pelo sistema 1. Nesse caso, as leituras podem ser derivadas de uma amostra de nucleotídeo tratada por bissulfato. De modo semelhante, na etapa 1010, uma referência genômica de sequências, por exemplo, para o organismo, pode ser construída como para realizar uma comparação das leituras de amostra epigenômicas. Na etapa 1012, quaisquer várias localizações de CpG na sequência de referência genômica (ou sequências de referência genômica) podem ser identificadas.[0814] For example, in a first step, a genomic sample may be obtained from an organism, and genetic material isolated therefrom and sequenced. Then, once sequenced, in step 1000, sequenced reads from the sample may be transmitted to and received by system 1. In this case, the reads may be derived from a bisulfate-treated nucleotide sample. Similarly, in step 1010, a genomic reference sequence, e.g., for the organism, may be constructed as to perform a comparison of the epigenomic sample reads. In step 1012, any multiple CpG locations in the genomic reference sequence (or genomic reference sequences) may be identified.

[0815] Uma vez identificados, em 1014, os "C's" das localizações de CpG, na referência, podem ser substituídos por "Ts", e na etapa 1020, um índice para a sequência de referência genômica modificada pode ser gerada. Uma vez que o índice para a referência modificada é gerado, na etapa 1030, as leituras de sequência genômica da amostra podem ser comparadas com o índice, e na etapa 1040 pode ser determinado se as leituras de sequência genômica da amostra mapeiam ao índice, como ao ser mapeado de acordo com os métodos e aparelhos revelados no presente documento. As leituras mapeadas podem ser, então, alinhadas com a sequência de referência genômica, e uma pontuação de alinhamento pode ser gerada, como realizando-se uma ou mais operações de alinhamento, conforme discutido no presente documento.[0815] Once identified, at 1014, the "C's" of the CpG locations in the reference may be replaced with "Ts", and at step 1020, an index for the modified genomic reference sequence may be generated. Once the index for the modified reference is generated, at step 1030, the sample genomic sequence reads may be compared to the index, and at step 1040 it may be determined whether the sample genomic sequence reads map to the index, as when mapped in accordance with the methods and apparatus disclosed herein. The mapped reads may then be aligned to the genomic reference sequence, and an alignment score may be generated, as by performing one or more alignment operations as discussed herein.

[0816] Nesse ponto, um dentre um par de várias análises pode ser realizado. Por exemplo, na etapa 1051, se um contexto maior for desejado, as substituições de base nas leituras, conforme processado acima, e/ou a orientação de alinhamento, e/ou restrições de parâmetro podem ser ajustados, e as etapas de comparação 1030 a 1050 podem ser repetidas. Esse processo em si pode ser repetido conforme desejado até um nível suficiente de contexto ser alcançado. Consequentemente, uma vez que um nível suficiente de contexto é alcançado, as leituras mapeadas e/ou alinhadas, na etapa 1080, podem ser classificados, como nos processos revelados no presente documento, pela posição de referência mapeada/alinhada. E na etapa 1081, quaisquer leituras duplicadas podem ser marcadas e/ou removidas.[0816] At this point, one of a couple of several analyses may be performed. For example, in step 1051, if greater context is desired, the base substitutions in the reads, as processed above, and/or the alignment orientation, and/or parameter constraints may be adjusted, and comparison steps 1030-1050 may be repeated. This process itself may be repeated as desired until a sufficient level of context is achieved. Accordingly, once a sufficient level of context is achieved, the mapped and/or aligned reads, in step 1080, may be sorted, as in the processes disclosed herein, by the mapped/aligned reference position. And in step 1081, any duplicate reads may be flagged and/or removed.

[0817] Adicionalmente, na etapa 1082, as leituras do acúmulo de leituras que sobrepõem cada localização de CpG de referência marcada podem ser analisadas. Quando um "T" for substituído por um "C", o mesmo pode ser marcado como um "C” não metilado, na etapa 1083; e quando um "C" permanece na sequência, na etapa 1084, o "C" pode ser marcado como um “C” metilado. Finalmente, na etapa 1086, uma determinação e/ou relato na situação de metilação provável de cada uma das localizações de CpG em cada filamento de nucleotídeo, e uma confiança na chamada de metilação, também pode ser feito.[0817] Additionally, in step 1082, reads from the backlog of reads overlapping each marked reference CpG location may be analyzed. When a "T" is replaced by a "C", it may be marked as an unmethylated "C" in step 1083; and when a "C" remains in the sequence, in step 1084, the "C" may be marked as a methylated "C". Finally, in step 1086, a determination and/or report on the likely methylation status of each of the CpG locations on each nucleotide strand, and a confidence in the methylation call, may also be made.

[0818] Adicionalmente, são fornecidos no presente documento os métodos para analisar o material genômico em que parte do material genético pode ter, ou pode ser associado de outro modo a uma variante estrutural. Particularmente, uma variação estrutural é uma variação na estrutura de um cromossomo do organismo. As variações estruturais envolvem muitos tipos de variações no genoma de uma espécie, incluindo tipos microscópicos e submicroscópicos, como deleções, duplicações, variantes de número de cópia, inserções, inversões e translocações. Muitas variantes estruturais são associadas a doenças genéticas. De fato, cerca de 13% do genoma humano é definido como estruturalmente variante na população normal, e há pelo menos 240 genes que existem como polimorfismos de deleção homozigótica em populações humanas. Tais variações estruturais podem compreender milhões de nucleotídeos de heterogeneidade com todos os genomas, e são propensos a fazer uma contribuição importante para a suscetibilidade de doença humana.[0818] Additionally, provided herein are methods for analyzing genomic material in which part of the genetic material may have, or may otherwise be associated with, a structural variant. In particular, a structural variation is a variation in the structure of an organism's chromosome. Structural variations involve many types of variations in the genome of a species, including microscopic and submicroscopic types such as deletions, duplications, copy number variants, insertions, inversions, and translocations. Many structural variants are associated with genetic diseases. In fact, about 13% of the human genome is defined as structurally variant in the normal population, and there are at least 240 genes that exist as homozygous deletion polymorphisms in human populations. Such structural variations can comprise millions of nucleotides of heterogeneity across genomes, and are likely to make an important contribution to human disease susceptibility.

[0819] A variação de número de cópia é uma categoria grande de variação estrutural, a qual inclui inserções, deleções e duplicações. Há diversas inversões conhecidas que são relacionadas à doença humana. Por exemplo, a inversão de 400kb recorrente no gene de fator VIII é uma causa comum de hemofilia A, e inversões menores que afetam idunorato 2-sulfatase causarão a síndrome de Hunter. Mais exemplos incluem síndrome de Angelman e síndrome de Sotos. O tipo mais comum de variação estrutural complexa é de duplicações em não tandem, em que a sequência é duplicada e inserida em orientação invertida ou direta em outra parte do genoma. Outras classes de variante estrutural complexa incluem deleção- inversão-deleções, duplicação-inversão-duplicações, e duplicações em tandem com deleções internas. Também há translocações crípticas e disomia uniparental segmentar (UPD).[0819] Copy number variation is a broad category of structural variation, which includes insertions, deletions, and duplications. There are several known inversions that have been implicated in human disease. For example, a recurrent 400kb inversion in the factor VIII gene is a common cause of hemophilia A, and smaller inversions affecting idunorate 2-sulfatase will cause Hunter syndrome. Further examples include Angelman syndrome and Sotos syndrome. The most common type of complex structural variation is non-tandem duplications, in which the sequence is duplicated and inserted in an inverted or forward orientation elsewhere in the genome. Other classes of complex structural variant include deletion-inversion-deletions, duplication-inversion-duplications, and tandem duplications with internal deletions. There are also cryptic translocations and uniparental segmental disomy (UPD).

[0820] Entretanto, a detecção de estruturas de DNA anormais é problemática e além do escopo de chamada de variante anteriormente conhecido. Tais variantes estruturais que são problemáticos para detectar incluem aqueles que têm: inserções e deleções grandes (por exemplo, além do tamanho de indel 50 a 100 bp); duplicações e outras variações de número de cópia (CNVs); inversões e translocações, e aneuploidia (contagens de cópia de cromossomo anormal: monossomia, dissomia, trissomia, etc.). Em certos casos revelados no presente documento, as variações de número de cópia identificadas podem ser testadas em sujeitos que não têm doenças genéticas, como usando-se genotipagem de SNP quantitativa.[0820] However, detection of abnormal DNA structures is problematic and beyond the scope of previously known variant calling. Such structural variants that are problematic to detect include those that have: large insertions and deletions (e.g., beyond the 50 to 100 bp indel size); duplications and other copy number variations (CNVs); inversions and translocations, and aneuploidy (abnormal chromosome copy counts: monosomy, disomy, trisomy, etc.). In certain cases disclosed herein, the identified copy number variations can be tested in subjects who do not have genetic diseases, such as using quantitative SNP genotyping.

[0821] A detecção de variação estrutural começa geralmente com a realização de um mapeamento e uma operação de alinhamento, como com o uso dos dispositivos e métodos revelados no presente documento. Por exemplo, as leituras da amostra genômica a serem analisadas podem ser mapeadas e alinhadas a um genoma de referência, como em um protocolo que suporta alinhamentos quiméricos. Especificamente, algumas variantes estruturais (por exemplo CNVs e aneuploidia) podem ser detectadas por análise de cobertura mapeada relativa. Entretanto, outras variantes estruturais (por exemplo, indels grandes, inversões, translocações) podem ser detectadas por análise de alinhamentos recortados e quiméricos.[0821] Detection of structural variation generally begins with performing a mapping and alignment operation, such as using the devices and methods disclosed herein. For example, reads from the genomic sample to be analyzed may be mapped and aligned to a reference genome, such as in a protocol that supports chimeric alignments. Specifically, some structural variants (e.g., CNVs and aneuploidy) may be detected by analysis of relative mapped coverage. However, other structural variants (e.g., large indels, inversions, translocations) may be detected by analysis of trimmed and chimeric alignments.

[0822] Especificamente, cada variante estrutural envolve uma ou mais posições "de quebra", em que a leitura não mapeia ao genoma de referência, como quando a geometria muda entre a amostra e a referência. Em tal caso, o acúmulo pode ser configurado de modo que as leituras no mesmo que sobrepõem levemente as quebras de variante estrutural possam ser recortadas na quebra, e as leituras que sobrepõem levemente as quebras variantes estruturais possam ser quimicamente alinhadas, por exemplo, com duas porções de uma leitura mapeada a localizações de referência diferentes. Entretanto, os pares de leitura que sobrepõem as quebras de variante estrutural podem ser inconsistentemente alinhados, com as duas leituras correspondentes mapeadas a localizações de referência amplamente diferentes, e/ou com orientação relativa anormal de leituras correspondentes. Tais obstáculos podem ser superados pelos métodos revelados no presente documento.[0822] Specifically, each structural variant involves one or more "break" positions, where the read does not map to the reference genome, such as when the geometry changes between the sample and the reference. In such a case, the stack may be configured such that reads therein that slightly overlap structural variant breaks may be trimmed at the break, and reads that slightly overlap structural variant breaks may be chemically aligned, e.g., with two portions of a read mapping to different reference locations. However, read pairs that overlap structural variant breaks may be inconsistently aligned, with the two corresponding reads mapping to widely different reference locations, and/or with abnormal relative orientation of corresponding reads. Such obstacles may be overcome by the methods disclosed herein.

[0823] Por exemplo, em certos casos, os dados que pertencem a variantes estruturais conhecidas podem ser usados para melhor determinar a sequência de uma variante estrutural. Por exemplo, um banco de dados que tem uma lista das variações estruturais em genoma humano pode ser compilado, por exemplo, com uma ênfase em CNVs, e tais dados podem ser usados na determinação da sequência de variantes particulares, como em um protocolo de ponderação adequadamente configurado. Particularmente, quando uma variante estrutural é conhecida, suas coordenadas "internas" e "externas" podem ser empregadas como uma faixa mínima e máxima de sequência que pode ser afetada pela variação estrutural. Adicionalmente, as variações de inserção, perda, ganho, inversão, LOH, everted, transchr e de UPD podem ser classificadas e fornecidas à base de conhecimento do presente sistema.[0823] For example, in certain cases, data pertaining to known structural variants may be used to better determine the sequence of a structural variant. For example, a database listing the structural variations in the human genome may be compiled, e.g., with an emphasis on CNVs, and such data may be used in determining the sequence of particular variants, as in a suitably configured weighting protocol. In particular, when a structural variant is known, its "inside" and "outside" coordinates may be employed as a minimum and maximum range of sequence that may be affected by the structural variation. Additionally, insertion, loss, gain, inversion, LOH, everted, transchr, and UPD variations may be classified and provided to the knowledge base of the present system.

[0824] Em vários casos, a determinação de uma variante estrutural pode ser realizada por uma execução de software adequadamente configurado de CPU/GPU/QPU, como por emprego de dados de sequenciamento anteriormente determinados, e em outros casos, as análises de variante estrutural podem ser realizadas como no hardware revelado no presente documento. Consequentemente, em casos particulares, um método para analisar sequências genômicas para variantes estruturais é fornecido. Por exemplo, em uma primeira etapa, as leituras de sequência genômica podem ser recebidas a partir de uma amostra de nucleotídeo. Em certos casos, as leituras sequenciadas podem ter sido derivadas de uma extremidade pareada ou protocolos de par de correspondência para detectar variantes estruturais. A seguir, um índice para a sequência de referência genômica pode ser construído, como quando o índice pode ser uma tabela de hash ou uma árvore, como uma árvore de prefixo ou sufixo. Uma vez que o índice foi construído, as leituras de sequência genômica de amostra podem ser comparadas com o índice de modo a determinar se as leituras de sequência genômica de amostra mapeiam ao índice. Nesse caso, as leituras de sequência genômica de amostra podem ser, então, alinhadas à sequência de referência genômica para a qual são mapeadas, e uma pontuação de alinhamento pode ser determinada.[0824] In various cases, determination of a structural variant may be performed by a suitably configured CPU/GPU/QPU software execution, such as by employing previously determined sequencing data, and in other cases, structural variant analyses may be performed as on the hardware disclosed herein. Accordingly, in particular cases, a method for analyzing genomic sequences for structural variants is provided. For example, in a first step, genomic sequence reads may be received from a nucleotide sample. In certain cases, the sequenced reads may have been derived from paired-end or matching-pair protocols to detect structural variants. Next, an index to the genomic reference sequence may be constructed, such as when the index may be a hash table or a tree, such as a prefix or suffix tree. Once the index has been constructed, sample genomic sequence reads may be compared to the index in order to determine whether the sample genomic sequence reads map to the index. In this case, sample genomic sequence reads can then be aligned to the genomic reference sequence to which they map, and an alignment score can be determined.

[0825] Conforme indicado acima, o mapeamento e o alinhamento podem ser alcançados pelo módulo de hardware conforme descrito no presente documento. Em algumas modalidades, os dados mapeados e alinhados podem ser, então, comunicados a uma CPU/GPU/QPU associada para análise e processamento adicionais. As leituras podem ser classificadas por posição de referência mapeada, e leituras duplicadas podem ser marcadas e deletadas. As leituras quiméricas e/ou alinhamentos relativos não usuais de duas leituras de correspondência podem ser determinadas, e variantes estruturais possíveis podem ser determinadas com base em uma leitura quimérica detectada e/ou alinhamentos relativos não usuais (por exemplo, indel grande, uma inversão ou uma translocação). De modo semelhante, as probabilidades posteriores de cada variante estrutural possível podem ser calculadas. Em algumas modalidades, os haplótipos variantes estruturais podem ser determinados, como usando-se a análise de HMM das leituras quiméricas e/ou os alinhamentos relativos não usuais. Por exemplo, o HMM de par pode ser usado para tal determinação. O HMM de par pode ser alcançado com o uso do módulo de hardware.[0825] As indicated above, mapping and alignment may be achieved by the hardware module as described herein. In some embodiments, the mapped and aligned data may then be communicated to an associated CPU/GPU/QPU for further analysis and processing. Reads may be sorted by mapped reference position, and duplicate reads may be flagged and deleted. Chimeric reads and/or unusual relative alignments of two matching reads may be determined, and possible structural variants may be determined based on a detected chimeric read and/or unusual relative alignments (e.g., large indel, an inversion, or a translocation). Similarly, the posterior probabilities of each possible structural variant may be calculated. In some embodiments, structural variant haplotypes may be determined, such as using HMM analysis of the chimeric reads and/or unusual relative alignments. For example, pairwise HMM may be used for such determination. Pairwise HMM can be achieved by using hardware module.

[0826] Consequentemente, em diversos casos, conforme pode ser observado em relação à Figura 43D, um método para determinar variações na estrutura cromossomos de um organismo é apresentado. Por exemplo, de acordo com os métodos revelados no presente documento, na etapa 1000, as leituras de dados de sequência genômica podem ser recebidas. Na etapa 1010 uma ou mais sequências de referência genômica podem ser construídas, de modo a realizar uma comparação entre as leituras e a sequência de referência (ou sequências de referência). Especificamente, na etapa 1010, uma sequência de referência genômica pode ser construída de modo a permitir que as leituras recebidas sejam comparadas com a referência gerada. Mais especificamente, com esses propósitos, na etapa 1020, um índice para a sequência de referência genômica pode ser gerado, por exemplo, na etapa 1020, uma tabela de hash ou árvore de prefixo/sufixo pode ser gerada. Logo, na etapa 1030, as leituras da sequência genômica de amostra podem ser comparadas com o índice gerado, como de acordo com as implantações de software e/ou hardware reveladas no presente documento.[0826] Accordingly, in various instances, as can be seen with respect to Figure 43D, a method for determining variations in the chromosome structure of an organism is provided. For example, in accordance with the methods disclosed herein, in step 1000, genomic sequence data reads may be received. In step 1010, one or more genomic reference sequences may be constructed, so as to perform a comparison between the reads and the reference sequence (or reference sequences). Specifically, in step 1010, a genomic reference sequence may be constructed so as to allow the received reads to be compared to the generated reference. More specifically, for these purposes, in step 1020, an index to the genomic reference sequence may be generated, e.g., in step 1020, a hash table or prefix/suffix tree may be generated. Then, in step 1030, the sample genomic sequence reads may be compared to the generated index, as per the software and/or hardware implementations disclosed herein.

[0827] Se, na etapa 1040, for determinado que as leituras da sequência genômica de amostra se mapeiam para o índice, então na etapa 1050, as leituras mapeadas podem ser alinhadas com a sequência de referência genômica, e uma pontuação de alinhamento pode ser gerada. Na etapa 1080, as leituras de amostra podem ser classificadas por suas posições de referência mapeadas. Nesse ponto, na etapa 1081, as leituras duplicadas podem ser marcadas e/ou removidas. Adicionalmente, na etapa 1090, as leituras quiméricas e/ou alinhamentos relativos não usuais, por exemplo, de duas leituras de correspondência, podem ser detectadas, e em 1092 variantes estruturais possíveis podem ser determinadas, como base nas leituras quiméricas detectadas e/ou alinhamentos relativos não usuais. Adicionalmente, as probabilidades posteriores de cada variante estrutural possível podem ser calculadas e, opcionalmente, na etapa 1096, os haplótipos de variante estrutural podem ser determinados, como por uso da análise de HMM, conforme descrito no presente documento, das leituras quiméricas e/ou alinhamentos relativos não usuais.[0827] If, in step 1040, it is determined that the sample genomic sequence reads map to the index, then in step 1050, the mapped reads can be aligned to the genomic reference sequence, and an alignment score can be generated. In step 1080, the sample reads can be ranked by their mapped reference positions. At that point, in step 1081, duplicate reads can be flagged and/or removed. Additionally, in step 1090, chimeric reads and/or unusual relative alignments, e.g., of two matched reads, can be detected, and in 1092 possible structural variants can be determined, based on the detected chimeric reads and/or unusual relative alignments. Additionally, the posterior probabilities of each possible structural variant may be calculated and, optionally, in step 1096, the structural variant haplotypes may be determined, such as by using HMM analysis as described herein, of chimeric reads and/or unusual relative alignments.

[0828] Adicionalmente, os dispositivos, sistemas, e métodos revelados no presente documento podem ser empregados para o processamento de sequências de RNA. Particularmente, no presente documento, são apresentados métodos para analisar leituras de sequência de RNA, como empregar um mapeamento submetido a splicing e protocolo de alinhamento (por exemplo, com um mapeador/alinhador de RNA adequadamente configurado). Por exemplo, em uma modalidade, uma segmentação de transcriptoma pode ser fornecida, como para análise de dados de sequência de RNA ultrarrápida. Particularmente, essa segmentação pode ser configurada para realizar a análise secundária em transcrições de RNA, como em relação a alinhamento apenas de referência, assim como alinhamento auxiliado por anotação.[0828] Additionally, the devices, systems, and methods disclosed herein may be employed for processing RNA sequences. In particular, herein, methods for analyzing RNA sequence reads are disclosed, such as employing a spliced mapping and alignment protocol (e.g., with a suitably configured RNA mapper/aligner). For example, in one embodiment, a transcriptome segmentation may be provided, such as for ultra-fast RNA sequence data analysis. In particular, such segmentation may be configured to perform secondary analysis on RNA transcripts, such as with respect to reference-only alignment, as well as annotation-aided alignment.

[0829] Consequentemente, em um primeiro método, os dados de leitura bruta, por exemplo, em um formato de arquivo BCL e/ou FASTQ, podem ser produzidos por um instrumento de sequenciamento e podem ser inseridos no sistema, em que o mapeamento, alinhamento, e chamada de variante podem ser realizados. Entretanto, em vários casos, um ou mais arquivos de anotações de gene (GTF) podem ser inseridos no sistema, de modo a guiar os alinhamentos submetidos a splicing, por exemplo, uma LUT de junção de splicing pode ser construída e usada. Por exemplo, a tabelas de precisão de alinhamento e junção de splicing podem ser empregadas. Consequentemente, um alinhamento de 2 fases pode ser realizado, como onde em uma primeira fase de detecção as junções de splicing inovadoras podem ser empregadas, o que pode ser, então, usado para guiar uma segunda fase de mapeamento/alinhamento de passagem. Após a chamada de variante, o sistema emitirá um arquivo VCF padrão pronto para análise terciária.[0829] Accordingly, in a first method, raw read data, e.g. in a BCL and/or FASTQ file format, may be produced by a sequencing instrument and may be input to the system, where mapping, alignment, and variant calling may be performed. However, in various cases, one or more gene annotation files (GTF) may be input to the system, so as to guide the spliced alignments, e.g., a splice junction LUT may be constructed and used. For example, alignment and splice junction accuracy tables may be employed. Accordingly, a 2-phase alignment may be performed, such as where in a first detection phase novel splice junctions may be employed, which may then be used to guide a second mapping/pass alignment phase. After variant calling, the system will output a standard VCF file ready for tertiary analysis.

[0830] Particularmente, uma vez que um arquivo de entrada é recebido, o mapeamento submetido a splicing e o alinhamento podem ser realizados, como tanto em extremidades de leitura únicas ou pareadas. Conforme indicado, os filtros de junção configuráveis podem ser empregados para gerar uma saída de junção única. A seleção de posição pode ser realizada, o que pode incluir discretização pela faixa de referência, e, então, a seleção das discretizações pela posição de referência, e marcação de duplicada pode ocorrer, como com base na posição inicial e cadeia CIGAR de modo a alcançar um relato de duplicada de alta qualidade, em que quaisquer duplicadas podem ser removidas. A chamada de variante de haplótipo pode ser, então, realizada, por exemplo, com o uso de um mecanismo de processamento de SW e HMM, e a montagem pode ser realizada.[0830] In particular, once an input file is received, spliced mapping and alignment may be performed, such as on either single or paired read ends. As indicated, configurable junction filters may be employed to generate a single junction output. Position selection may be performed, which may include discretization by reference range, and then selection of discretizations by reference position, and duplicate marking may occur, such as based on starting position and CIGAR strand so as to achieve a high quality duplicate report, wherein any duplicates may be removed. Haplotype variant calling may then be performed, for example using a SW and HMM processing engine, and assembly may be performed.

[0831] Adicionalmente, os dispositivos, sistemas, e métodos revelados no presente documento podem ser empregados para realizar a chamada de variante somática. Por exemplo, um protocolo de chamada de variante somática pode ser empregado de modo a detectar variantes que podem ocorrer em células de câncer. Particularmente, as amostras genômicas para chamada somática podem ser obtidas a partir de biópsias de tumor único ou múltiplos, ou a partir de sangue. Opcionalmente, uma amostra "normal" (não tumoral) também pode obtida, como para comparação durante a chamada de variante, por exemplo, em que as variantes somáticas ocorrerão nas células tumorais, mas não nas células da amostra normal. A forma de DNA/RNA da amostra (ou amostras) pode ser isolada e sequenciada, como por um sequenciador Next Gen. Os dados sequenciados, por exemplo, a partir de cada amostra, podem ser, então, transmitidos à plataforma de processamento secundário, e as leituras podem ser mapeadas e alinhadas. Adicionalmente, as leituras podem ser submetidas a uma pluralidade de procedimentos de chamada de variante, incluindo processamento por um ou tanto o mecanismo de SW quanto HMM de par.[0831] Additionally, the devices, systems, and methods disclosed herein may be employed to perform somatic variant calling. For example, a somatic variant calling protocol may be employed to detect variants that may occur in cancer cells. In particular, genomic samples for somatic calling may be obtained from single or multiple tumor biopsies, or from blood. Optionally, a "normal" (non-tumor) sample may also be obtained, such as for comparison during variant calling, e.g., where somatic variants will occur in tumor cells but not in cells from the normal sample. The DNA/RNA form of the sample (or samples) may be isolated and sequenced, such as by a Next Gen sequencer. The sequence data, e.g., from each sample, may then be transmitted to the secondary processing platform, and the reads may be mapped and aligned. Additionally, the reads may be subjected to a plurality of variant calling procedures, including processing by one or both of the SW engine and pairwise HMM.

[0832] Entretanto, o sistema deve ser configurado de modo a poder detectar frequências de alelo variante baixas, como 3% a 10% (ou mais altas). Mais particularmente, um modelo de probabilidade de genotipagem pode ser empregado, em que o modelo é configurado para permitir as frequências de alelo arbitrário. Um método para permitir isso é atribuir cada frequência de alelo de genótipo variante correspondente às frequências de alelo observadas nas leituras sobrepostas. Por exemplo, se 10% de leituras sobrepostas exibem uma certa variante, um genótipo pode ser testado que consiste em 90% de alelo de referência e 10% de alelo alternativo. Para amostras duplas de tumor/normal, a probabilidade posterior que uma variante está presente na amostra tumoral, mas não na amostra normal, pode ser estimada.[0832] However, the system should be configured so that it can detect low variant allele frequencies, such as 3% to 10% (or higher). More particularly, a genotyping probability model may be employed, wherein the model is configured to allow for arbitrary allele frequencies. One method to allow for this is to assign each variant genotype allele frequency corresponding to the allele frequencies observed in the overlapping reads. For example, if 10% of overlapping reads exhibit a certain variant, a genotype may be tested that consists of 90% reference allele and 10% alternative allele. For dual tumor/normal samples, the posterior probability that a variant is present in the tumor sample but not in the normal sample may be estimated.

[0833] Adicionalmente, a segmentação de chamador de variante somático pode ser configurada para fornecer informações sobre heterogeneidade de tumor, por exemplo, que uma série de eventos de mutação distintos ocorreu, como em que uma ou mais seções de um tumor com genótipos diferentes (um subclone) foi identificado. Tais informações de subclone podem ser derivadas de uma determinação de frequências e distribuições de alelo variante do mesmo, e/ou chamando-se explicitamente as variantes de modo diferencial entre múltiplas amostras tumorais.[0833] Additionally, the somatic variant caller segmentation may be configured to provide information about tumor heterogeneity, e.g., that a series of distinct mutation events have occurred, such that one or more sections of a tumor with different genotypes (a subclone) have been identified. Such subclone information may be derived from a determination of variant allele frequencies and distributions thereof, and/or by explicitly calling variants differentially among multiple tumor samples.

[0834] Consequentemente, os métodos para detectar as variantes de sequência de células de câncer de uma amostra são fornecidos. Em uma primeira etapa, as leituras de sequência genômica de uma amostra de nucleotídeo podem ser obtidas a partir de células cancerosas e/ou normais. As leituras de sequência podem ser a partir de uma extremidade pareada ou protocolos de par correspondentes similares àquele para detectar variantes estruturais. Um índice para a sequência de referência genômica pode ser construído, como quando o índice pode ser uma tabela de hash ou uma árvore, como uma árvore de prefixo ou sufixo. As leituras de sequência genômica de amostra, por exemplo, do tumor e/ou da amostra normal, podem ser comparadas com o índice, e pode ser determinado se as leituras de sequência genômica de amostra se mapeiam para o índice.[0834] Accordingly, methods for detecting cancer cell sequence variants from a sample are provided. In a first step, genomic sequence reads of a nucleotide sample may be obtained from cancer and/or normal cells. The sequence reads may be from paired-end or matched-pair protocols similar to that for detecting structural variants. An index to the genomic reference sequence may be constructed, such as where the index may be a hash table or a tree, such as a prefix or suffix tree. Sample genomic sequence reads, e.g., from the tumor and/or normal sample, may be compared to the index, and it may be determined whether the sample genomic sequence reads map to the index.

[0835] As leituras de sequência genômica de amostra podem ser, então, alinhadas à sequência de referência genômica para a qual são mapeadas, e uma pontuação de alinhamento pode ser gerada. O mapeamento e alinhamento pode ser alcançado por um módulo de software e/ou hardware, conforme descrito no presente documento. Em algumas modalidades, os dados mapeados e alinhados podem ser, então, comunicados a uma CPU/GPU/QPU para análise e processamento adicionais. As leituras podem ser classificadas por posição de referência mapeada, e quaisquer leituras duplicadas podem ser marcadas e deletadas. As variantes podem ser detectadas com o uso de uma análise bayesiana que é modificada para esperar frequências de alelo de variante arbitrária, e para detectar e relatar baixas frequências de alelo possíveis (por exemplo, 3% a 10%).[0835] The sample genomic sequence reads can then be aligned to the genomic reference sequence to which they are mapped, and an alignment score can be generated. The mapping and alignment can be achieved by a software and/or hardware module as described herein. In some embodiments, the mapped and aligned data can then be communicated to a CPU/GPU/QPU for further analysis and processing. The reads can be sorted by mapped reference position, and any duplicate reads can be flagged and deleted. Variants can be detected using a Bayesian analysis that is modified to expect arbitrary variant allele frequencies, and to detect and report low possible allele frequencies (e.g., 3% to 10%).

[0836] Em algumas modalidades, as variantes de linha germinal podem ser detectadas tanto em amostras não cancerosas quanto cancerosas, e variantes somáticas podem ser detectadas apenas nas amostras cancerosas. Por exemplo, a linha germinal e as mutações somáticas podem ser distinguidas por frequência relativa. As probabilidades posteriores podem ser calculadas de cada variante de câncer possível, e em algumas modalidades, os haplótipos variantes estruturais podem ser determinados com o uso de análise de HMM das leituras quiméricas e/ou os alinhamentos relativos não usuais. Por exemplo, o HMM de par pode ser usado para tal determinação. O HMM de par pode ser alcançado com o uso de módulos de hardware, conforme descrito no presente documento.[0836] In some embodiments, germline variants can be detected in both non-cancerous and cancerous samples, and somatic variants can be detected only in cancerous samples. For example, germline and somatic mutations can be distinguished by relative frequency. Posterior probabilities can be calculated for each possible cancer variant, and in some embodiments, structural variant haplotypes can be determined using HMM analysis of chimeric reads and/or unusual relative alignments. For example, pairwise HMM can be used for such determination. Pairwise HMM can be achieved using hardware modules as described herein.

[0837] Consequentemente, em várias modalidades, um procedimento de chamada de variante somático, conforme exemplificado, na Figura 43E, pode ser realizado, de modo a calcular a probabilidade que uma variante é uma variante de câncer. Por exemplo, na etapa 1000, as leituras de amostras de sequência genômica podem ser geradas, por exemplo, por meio de sequenciamento de um NGS, e/ou ser recebidas, por exemplo, por meio de transmissão sobre um sistema de rede baseado em nuvem adequadamente configurado, como a partir de uma ou tanto as amostras genéticas cancerosas quanto não cancerosas. Na etapa 1010, uma sequência de referência genômica pode ser gerada, como para comparação das leituras, na etapa 1020, um índice pode ser construído a partir da sequência de referência genômica, e na etapa 1030, a sequência genômica de amostra pode ser comparada com o índice, como empregando as implantações de software e/ou hardware reveladas no presente documento, de modo a mapear as leituras de sequência genômica para o índice, na etapa em 1040. Adicionalmente, na etapa 1050, as leituras mapeadas podem ser alinhadas com a sequência de referência genômica para gerar uma pontuação de alinhamento. As leituras mapeadas e/ou alinhadas podem ser, então, classificadas em relação à posição de referência, em 1080, e opcionalmente, em 1081, quaisquer leituras duplicadas podem ser comercializadas e removidas.[0837] Accordingly, in various embodiments, a somatic variant calling procedure as exemplified in Figure 43E may be performed to calculate the probability that a variant is a cancer variant. For example, in step 1000, reads from genomic sequence samples may be generated, e.g., via NGS sequencing, and/or received, e.g., via transmission over a suitably configured cloud-based network system, such as from one or both of the cancerous and non-cancerous genetic samples. In step 1010, a genomic reference sequence may be generated, such as for comparison of reads, in step 1020, an index may be constructed from the genomic reference sequence, and in step 1030, the sample genomic sequence may be compared to the index, such as by employing the software and/or hardware implementations disclosed herein, so as to map the genomic sequence reads to the index, in step 1040. Additionally, in step 1050, the mapped reads may be aligned to the genomic reference sequence to generate an alignment score. The mapped and/or aligned reads may then be ranked relative to the reference position, in 1080, and optionally, in 1081, any duplicate reads may be traded and removed.

[0838] Adicionalmente, uma vez que as leituras foram mapeadas e/ou alinhadas e/ou classificadas e/ou não induzidas, então, na etapa 1100, as variantes podem ser detectadas, como empregando-se uma análise bayesiana, e em 1101, as variantes de linha germinal tanto em amostras cancerosas quanto não cancerosas, assim como variantes somáticas nas mesmas podem ser opcionalmente detectadas. De modo semelhante, na etapa 1094, as probabilidades posteriores de cada variante de câncer possível podem ser calculadas. Adicionalmente, na etapa 1096, haplótipos variantes de câncer podem ser opcionalmente determinados, como implementando- se uma análise de HMM em software e/ou em hardware, conforme revelado no presente documento.[0838] Additionally, once the reads have been mapped and/or aligned and/or classified and/or de-induced, then, in step 1100, variants may be detected, such as by employing a Bayesian analysis, and in 1101, germline variants in both cancerous and non-cancerous samples, as well as somatic variants therein, may optionally be detected. Similarly, in step 1094, the posterior probabilities of each possible cancer variant may be calculated. Additionally, in step 1096, cancer variant haplotypes may optionally be determined, such as by implementing an HMM analysis in software and/or hardware, as disclosed herein.

[0839] Adicionalmente, os dispositivos, sistemas, e métodos revelados no presente documento podem ser configurados para realizar uma operação de genotipagem conjunta. Particularmente, uma operação de genotipagem conjunta pode ser empregada de modo a melhorar a precisão de chamada de variante, como considerando-se juntamente as leituras de um coorte de múltiplos sujeitos. Por exemplo, em vários casos, as variações genômicas podem ser altamente correlacionadas, em certas populações, por exemplo, em que certas variantes são comuns a uma pluralidade de sujeitos. Em tais casos, a sensibilidade e a especificidade de chamada de variante pode ser melhorada considerando-se juntamente a evidência para cada variante a partir de múltiplas amostras de DNA (ou RNA). Especificamente, a sensibilidade pode ser melhorada devido à evidência fraca para uma variante em um sujeito pode ser intensificado por evidência para a mesma variante em outras amostras. Mais especificamente, a sensibilidade pode ser melhorada devido ao fato de que a evidência moderada para uma variante de falso positivo pode ser temperada por ausência de evidência para a mesma variante em outras amostras. Geralmente, quanto mais amostras participarem na genotipagem conjunta, mais precisa a chamada de variantes pode ser para qualquer dado sujeito.[0839] Additionally, the devices, systems, and methods disclosed herein may be configured to perform a joint genotyping operation. In particular, a joint genotyping operation may be employed to improve the accuracy of variant calling, such as by jointly considering reads from a cohort of multiple subjects. For example, in many cases, genomic variations may be highly correlated, e.g., in certain populations, where certain variants are common to a plurality of subjects. In such cases, the sensitivity and specificity of variant calling may be improved by jointly considering the evidence for each variant from multiple DNA (or RNA) samples. Specifically, sensitivity may be improved because weak evidence for a variant in one subject may be enhanced by evidence for the same variant in other samples. More specifically, sensitivity may be improved because moderate evidence for a false positive variant may be tempered by lack of evidence for the same variant in other samples. Generally, the more samples participating in pooled genotyping, the more accurate variant calling can be for any given subject.

[0840] A genotipagem conjunta envolve a estimativa de probabilidades posteriores para vários subconjuntos de todos os sujeitos que têm uma dada variante, com o uso de probabilidades anteriores que expressam as correlações observadas em variação genética. Em vários casos, a genotipagem conjunta pode ser realizada em uma passagem de chamada de variante única, em que as leituras alinhadas a partir de múltiplas amostras são examinadas pelo chamador de variante. Isso é usualmente apenas prático para números pequenos de amostras, devido ao fato de que quando dezenas, centenas, ou milhares de amostras são envolvidos, o tamanho de dados total se torna impraticável de acessar e manipular rapidamente.[0840] Ensemble genotyping involves estimating posterior probabilities for several subsets of all subjects who have a given variant, using prior probabilities that express the observed correlations in genetic variation. In many cases, ensemble genotyping can be performed in a single variant calling pass, in which aligned reads from multiple samples are examined by the variant caller. This is usually only practical for small numbers of samples, because when tens, hundreds, or thousands of samples are involved, the total data size becomes impractical to access and manipulate quickly.

[0841] Alternativamente, a genotipagem conjunta pode ser feita realizando-se primeiro a chamada de variante separadamente para cada amostra, então, fundindose os resultados com uma ferramenta de genotipagem conjunta, a qual atualiza as probabilidades variantes para cada sujeito com o uso de informações conjuntas. Esse método usa saída adicional a partir de cada passagem de chamada de variante de amostra única de modo a medir melhor as áreas de evidência fraca para variantes e/ou em regiões em que nenhuma variante seria chamada sem processamento conjunto. Enquanto o formato VCF é comumente usado para representar as chamadas variantes de chamada de variante de amostra única, um formato gVCF especial pode ser usado para representar as chamadas de variante de primeiro estágio (e não variante) na preparação para fusão. O formato gVCF inclui registros para localizações, e/ou blocos de múltiplas localizações, em que mais provavelmente nenhuma variante está presente, então, essas informações podem ser fundidas com outras chamadas de gVCF ou não chamadas nas mesmas localizações para produzir chamadas de genótipo conjunto melhoradas para cada sujeito.[0841] Alternatively, joint genotyping can be done by first performing variant calling separately for each sample, then merging the results with a joint genotyping tool, which updates the variant probabilities for each subject using joint information. This method uses additional output from each single-sample variant calling pass to better measure areas of weak evidence for variants and/or regions where no variants would be called without joint processing. While the VCF format is commonly used to represent variant calls from single-sample variant calling, a special gVCF format can be used to represent first-stage variant (and non-variant) calls in preparation for merging. The gVCF format includes records for locations, and/or blocks of multiple locations, where no variants are most likely present, so this information can be fused with other gVCF or non-call calls at the same locations to produce improved joint genotype calls for each subject.

[0842] Consequentemente, a segmentação de genotipagem conjunta pode ser configurada para chamar variantes de múltiplas amostras mais rápido e com maior precisão. Adicionalmente, a segmentação de genotipagem conjunta pode ser adicionalmente configurada para suportar a genealogia assim como a população chamada de variante de um coorte de amostras. Por exemplo, a segmentação pode ser configurada para manipular até 10, 15, 20, 25, até mesmo 50 ou mais amostras por vez. Em vários casos, uma configuração de chamada de população pode ser adaptada para manipular tamanhos de amostra de muitos milhares ao mesmo tempo. Adicionalmente, uma combinação de velocidade e agrupamento hierárquico de múltiplas amostras fornecem uma solução de análise eficiente de modo computacional para genotipagem conjunta. Adicionalmente, o sequenciamento das amostras para genotipagem conjunta pode ser realizado na mesma célula de fluxo de um sequenciador Next Gen assim permitindo que o sistema mapeie simultaneamente/alinhe as entradas de múltiplas amostras assim acelerando o processo geral de chamada conjunta, como quando os dados de BCL podem ser alimentados diretamente à segmentação para produzir arquivos de gVCF únicos para cada amostra.[0842] Accordingly, the joint genotyping segmentation can be configured to call variants from multiple samples faster and with greater accuracy. Additionally, the joint genotyping segmentation can be further configured to support pedigree as well as population variant calling from a cohort of samples. For example, the segmentation can be configured to handle up to 10, 15, 20, 25, even 50 or more samples at a time. In many cases, a population calling configuration can be adapted to handle sample sizes of many thousands at a time. Additionally, a combination of speed and hierarchical clustering of multiple samples provides a computationally efficient analysis solution for joint genotyping. Additionally, sequencing of samples for joint genotyping can be performed on the same flow cell of a Next Gen sequencer thus allowing the system to simultaneously map/align inputs from multiple samples thus speeding up the overall joint calling process, such as when BCL data can be fed directly to segmentation to produce unique gVCF files for each sample.

[0843] Portanto, é fornecido no presente documento um método para melhorar a precisão de chamada de variante considerando-se juntamente as leituras de um coorte de múltiplos sujeitos. Em uma primeira etapa, as leituras de sequência genômica de duas ou mais amostras são recebidas. Uma sequência de referência genômica para comparação com as leituras é construída, e a partir da sequência de referência genômica, um índice é gerado. As leituras de sequência genômica de cada amostra são então comparadas com o índice, e é determinado se as leituras de sequência genômica de cada amostra se mapeiam para o índice.[0843] Therefore, a method for improving variant calling accuracy by jointly considering reads from a multi-subject cohort is provided herein. In a first step, genomic sequence reads from two or more samples are received. A genomic reference sequence for comparison with the reads is constructed, and from the genomic reference sequence, an index is generated. The genomic sequence reads from each sample are then compared to the index, and it is determined whether the genomic sequence reads from each sample map to the index.

[0844] As leituras mapeadas podem ser, então, alinhadas com a sequência de referência genômica e uma pontuação de alinhamento pode ser gerada. As leituras podem ser classificadas por posição de referência mapeada, e leituras duplicadas podem ser marcadas e/ou removidas. Adicionalmente, as leituras sobrepostas do acúmulo de leituras podem ser, então, analisadas para determinar se uma maioria de leituras concorda com a sequência genômica de referência. As probabilidades posteriores de cada variante possível são calculadas, e os dados de chamada de variante de todas as amostras pode ser fundido de modo a intensificar a precisão de chamada de variante para cada amostra individual. Isso pode intensificar a precisão de chamada de variante (por exemplo, a sensibilidade e a especificidade) para cada amostra, e pode ser alcançada como uma etapa de processamento após todas as amostras terem sido submetidas à análise de chamada de variante, ou pode ser alcançada de modo cumulativo, após cada uma das amostras ter sido submetida à análise de chamada de variante. A probabilidade de alelos de não referência em regiões em que nenhuma variante é chamada pode ser, então, determinada, e a probabilidade determinada de alelos de não referência nas regiões em que nenhuma variante é chamada pode ser relatada.[0844] The mapped reads can then be aligned to the genomic reference sequence and an alignment score can be generated. The reads can be sorted by mapped reference position, and duplicate reads can be flagged and/or removed. Additionally, overlapping reads from the read pool can then be analyzed to determine whether a majority of reads agree with the reference genomic sequence. The posterior probabilities of each possible variant are calculated, and the variant calling data from all samples can be merged in order to improve the variant calling accuracy for each individual sample. This can improve the variant calling accuracy (e.g., sensitivity and specificity) for each sample, and can be achieved as a processing step after all samples have been subjected to variant calling analysis, or can be achieved cumulatively after each sample has been subjected to variant calling analysis. The probability of non-reference alleles in regions where no variants are called can then be determined, and the determined probability of non-reference alleles in regions where no variants are called can be reported.

[0845] Consequentemente, em várias modalidades, um procedimento de chamada de variante somático, conforme exemplificado, na Figura 43F, pode ser realizado, de modo a calcular a probabilidade que uma variante é uma variante de câncer. Por exemplo, na etapa 1000, as leituras de amostras de sequência genômica podem ser geradas, por exemplo, por meio de sequenciamento de um NGS, e/ou ser recebidas, por exemplo, por meio de transmissão sobre um sistema de rede baseado em nuvem adequadamente configurado, como a partir de uma ou tanto as amostras genéticas cancerosas quanto não cancerosas. Na etapa 1010, uma sequência de referência genômica pode ser gerada, como para comparação das leituras, na etapa 1020, um índice pode ser construído a partir da sequência de referência genômica, e na etapa 1030, a sequência genômica de amostra pode ser comparada com o índice, como empregando as implantações de software e/ou hardware reveladas no presente documento, de modo a mapear as leituras de sequência genômica para o índice, na etapa em 1040. Adicionalmente, na etapa 1050, as leituras mapeadas podem ser alinhadas com a sequência de referência genômica para gerar uma pontuação de alinhamento. As leituras mapeadas e/ou alinhadas podem ser, então, classificadas em relação à posição de referência, em 1080, e opcionalmente, em 1081, quaisquer leituras duplicadas podem ser comercializadas e removidas.[0845] Accordingly, in various embodiments, a somatic variant calling procedure as exemplified in Figure 43F may be performed to calculate the probability that a variant is a cancer variant. For example, in step 1000, genomic sequence sample reads may be generated, e.g., via NGS sequencing, and/or received, e.g., via transmission over a suitably configured cloud-based network system, such as from one or both of the cancerous and non-cancerous genetic samples. In step 1010, a genomic reference sequence may be generated, such as for comparison of reads, in step 1020, an index may be constructed from the genomic reference sequence, and in step 1030, the sample genomic sequence may be compared to the index, such as by employing the software and/or hardware implementations disclosed herein, so as to map the genomic sequence reads to the index, in step 1040. Additionally, in step 1050, the mapped reads may be aligned to the genomic reference sequence to generate an alignment score. The mapped and/or aligned reads may then be ranked relative to the reference position, in 1080, and optionally, in 1081, any duplicate reads may be traded and removed.

[0846] De modo semelhante, em 1082, as leituras sobrepostas a partir de um acúmulo de leituras podem ser analisadas para determinar se uma ou mais, por exemplo, uma maioria das leituras, concordam com a sequência genômica de referência (ou sequências genômicas de referências), e na etapa 1094, as probabilidades posteriores de cada variante possível podem ser calculadas. Nesse ponto, na etapa 1096, os haplótipos variantes podem ser determinados, se desejado, como realizando-se uma análise de HMM, e/ou na etapa 1120, os dados de chamada de variante, por exemplo, de todas as amostras, podem opcionalmente fundidos de modo a intensificar a precisão de chamada de variante para cada amostra individual. Adicionalmente, na etapa 1122, a probabilidade de alelos de não referência, por exemplo, em regiões em que nenhuma variante é chamada pode ser determinada e relatada.[0846] Similarly, at 1082, overlapping reads from a pool of reads may be analyzed to determine whether one or more, e.g., a majority of the reads, agree with the reference genomic sequence (or reference genomic sequences), and at step 1094, the posterior probabilities of each possible variant may be calculated. At this point, at step 1096, variant haplotypes may be determined, if desired, such as by performing an HMM analysis, and/or at step 1120, variant calling data, e.g., from all samples, may optionally be merged so as to enhance variant calling accuracy for each individual sample. Additionally, at step 1122, the probability of non-reference alleles, e.g., in regions where no variants are called, may be determined and reported.

[0847] Adicionalmente, conforme pode ser observado em referência à Figura 43, em um aspecto, uma loja de app online é fornecida para permitir que os usuários desenvolvam, vendam e usem ferramentas genômicas que podem ser incorporadas ao sistema e ser empregadas para analisar os dados genômicos transmitidos para e inseridos no sistema. Particularmente, a loja de app genômico possibilita que os clientes que desejam desenvolver testes genético, por exemplo, como um teste de NICU, e uma vez desenvolvidos pode ser transferido por upload no sistema, por exemplo, mercado genético, para adquirir e executar como uma plataforma no mesmo, para que qualquer um que execute a plataforma de sistema recém- desenvolvida possa instalar os testes transferidos por upload por meio do portal da web. Mais particularmente, um usuário pode navegar pela loja de "app" de portal da web, encontrar um teste desejado, por exemplo, o teste de NICU, transferir por download, e/ou configurar o sistema para implantar o mesmo, como em seus dados genéticos transferíveis por upload. O mercado de “coorte" online, portanto, apresenta uma maneira rápida e eficaz para instalar novas aplicações analíticas genéticas, cujas aplicações permitem que os resultados idênticos sejam obtidos a partir de qualquer uma das plataformas de sistema presentes que executam a aplicação transferida por download. Mais particularmente, o mercado online fornece um mecanismo para qualquer um trabalhar com o sistema para desenvolver aplicações de análise genética que os usuários remotos podem transferir por download e configurar para uso de acordo com os presentes modelos de fluxo de trabalho.[0847] Additionally, as can be seen with reference to Figure 43 , in one aspect, an online app store is provided to allow users to develop, sell, and use genomic tools that can be incorporated into the system and employed to analyze genomic data transmitted to and input into the system. In particular, the genomic app store enables customers who wish to develop genetic tests, e.g., as a NICU test, and once developed can be uploaded to the system, e.g., genetic marketplace, to purchase and run as a platform therein, so that anyone running the newly developed system platform can install the uploaded tests via the web portal. More particularly, a user can browse the web portal app store, find a desired test, e.g., NICU test, download it, and/or configure the system to deploy the same, as their uploadable genetic data. The online “cohort” marketplace therefore presents a quick and efficient way to deploy new genetic analytical applications, which applications allow identical results to be obtained from any of the present system platforms running the downloaded application. More particularly, the online marketplace provides a mechanism for anyone working with the system to develop genetic analysis applications that remote users can download and configure for use in accordance with the present workflow models.

[0848] Outro aspecto do mercado de coorte revelado no presente documento é o que permite o compartilhamento seguro de dados. Por exemplo, a transmissão e o armazenamento de dados genômicos devem ser altamente protegidos. Entretanto, frequentemente tais dados genéticos são grandes e difíceis de transferir de maneira segura e protegida, como quando a identidade do sujeito é restrita. Consequentemente, o presente mercado de genética permite que os participantes de coorte compartilhem os dados genéticos sem precisar identificar o sujeito. Em tal mercado, os participantes de coorte podem compartilhar questões e processos de modo a avançar sua pesquisa em um ambiente protegido e seguro, sem arriscar a identidade de seus respectivos genomas do sujeito. Adicionalmente, um usuário pode listar o auxílio de outros pesquisadores na análise de seus conjuntos de amostra sem identificar a quem esses genomas pertencem.[0848] Another aspect of the cohort market disclosed herein is that which enables secure data sharing. For example, the transmission and storage of genomic data must be highly secure. However, such genetic data is often large and difficult to transfer in a secure and protected manner, such as when the identity of the subject is restricted. Accordingly, the present genetics market enables cohort participants to share genetic data without needing to identify the subject. In such a market, cohort participants can share questions and processes in order to advance their research in a protected and secure environment, without risking the identity of their respective subject genomes. Additionally, a user can enlist the assistance of other researchers in analyzing their sample sets without identifying who those genomes belong to.

[0849] Por exemplo, um usuário pode identificar sujeitos que têm um genótipo e/ou fenótipo específico, como câncer de mama de estágio 3 e/ou que foram tratados com um fármaco particular. Um coorte pode ser formado para ver como esses fármacos afetam o crescimento de célula canceroso em um nível genético. Portanto, essas características, entre outros, pode formar critérios de seleção de coorte que permitirão que outros pesquisadores, por exemplo, remotamente localizados, realizem análises genéticas padrão nos dados genéticos, com o uso de procedimentos analíticos uniformes, em sujeitos que têm acesso a esse ajuste nos critérios de coorte. Dessa maneira, um dado pesquisador não precisa ser responsável por identificar e proteger todos os membros de um conjunto de amostras, por exemplo, sujeitos que se ajustam nos critérios, para substanciar sua consulta científica.[0849] For example, a user may identify subjects who have a specific genotype and/or phenotype, such as stage 3 breast cancer and/or who have been treated with a particular drug. A cohort may be formed to see how these drugs affect cancer cell growth at a genetic level. Thus, these characteristics, among others, may form cohort selection criteria that will allow other researchers, e.g. remotely located, to perform standard genetic analyses on genetic data, using uniform analytical procedures, on subjects who have access to this cohort criteria fit. In this way, a given researcher need not be responsible for identifying and securing all members of a sample set, e.g., subjects who fit the criteria, to substantiate his or her scientific query.

[0850] Particularmente, o Pesquisador A pode definir um coorte de pesquisa no mercado e identificar os critérios de seleção apropriados para sujeitos, o teste genômico (ou testes genômicos) a ser executado, e os parâmetros pelos quais o teste deve ser executado. Os pesquisadores B e C, localizados remotamente em relação ao Pesquisador A, podem, então, se cadastrar para o coorte, identificar e selecionar sujeitos que correspondem aos critérios e, então, executar os testes especificados em seus sujeitos, com o uso dos procedimentos uniformes revelados no presente documento, de modo a auxiliar o Pesquisador A a alcançar ou cumprir melhor seus objetivos de pesquisa de maneira rápida. Isso é benéfico visto que apenas uma porção de dados genéticos é transmitida, a identidade de sujeito é protegida, e visto que os dados são analisados com o uso do mesmo sistema de análise genética que emprega os mesmos parâmetros, os dados de resultados serão os mesmos a despeito de onde e em qual máquina o teste (ou testes) é executado. Consequentemente, o mercado de coorte permite que os usuários formem e construam coortes postando-se simplesmente os critérios de seleção e executem os parâmetros no painel. As taxas de compensação também podem ser postadas e os pagamentos executados empregando-se um comércio adequadamente configurado, por exemplo, programa de câmbio monetário.[0850] In particular, Researcher A may define a research cohort in the marketplace and identify appropriate selection criteria for subjects, the genomic test (or genomic tests) to be performed, and the parameters by which the testing should be performed. Researchers B and C, located remotely from Researcher A, may then register for the cohort, identify and select subjects who meet the criteria, and then perform the specified tests on their subjects using the uniform procedures disclosed herein, so as to assist Researcher A in achieving or better fulfilling his or her research objectives in a timely manner. This is beneficial since only a portion of the genetic data is transmitted, subject identity is protected, and since the data is analyzed using the same genetic analysis system employing the same parameters, the data results will be the same regardless of where and on which machine the test (or tests) is performed. Consequently, the cohort marketplace allows users to form and build cohorts by simply posting selection criteria and executing parameters in the dashboard. Clearing rates can also be posted and payouts executed using a suitably configured trading, e.g., currency exchange program.

[0851] Qualquer um que aceite a participação no coorte pode, então, transferir os critérios por download e o arquivo de dados (ou arquivos de dados) e/ou usar dados genéticos de sujeitos que já geraram e/ou armazenaram na realização das análises solicitadas. Por exemplo, cada participante de coorte terá, ou poderá gerar, um banco de dados de arquivos de BCL e/ou FASTQ que são armazenados em seus servidores individuais. Esses arquivos genéticos terão sido derivados de sujeitos que, por acaso, satisfizeram os critérios de seleção. Especificamente, esses dados genéticos armazenados e/ou outros dados do sujeito podem ser varridos de modo a determinar a adequabilidade para inclusão nos critérios de seleção de coorte. Tais dados podem ter sido gerados com vários propósitos, mas a despeito das razões para a geração, uma vez gerados, os mesmos podem ser selecionados e submetidos às análises de segmentação solicitadas e usadas para inclusão no coorte.[0851] Anyone who accepts participation in the cohort may then download the criteria and data file (or data files) and/or use genetic data from subjects that they have already generated and/or stored in performing the requested analyses. For example, each cohort participant will have, or may generate, a database of BCL and/or FASTQ files that are stored on their individual servers. These genetic files will have been derived from subjects who happened to meet the selection criteria. Specifically, such stored genetic data and/or other subject data may be screened to determine suitability for inclusion in the cohort selection criteria. Such data may have been generated for a variety of purposes, but regardless of the reasons for generation, once generated, it may be selected and subjected to the requested segmentation analyses and used for inclusion in the cohort.

[0852] Consequentemente, em várias modalidades, o sistema de coorte pode ser um fórum para conectar os pesquisadores, de modo a permitir que os mesmos agrupem seus recursos e dados, por exemplo, dados de sequência genética. Por exemplo, engatar um coorte permitiria que um primeiro pesquisador introduza um projeto que necessita de análises de dados genéticos que necessitam da mineração e/ou exam inação de vários genomas de vários sujeitos, como em relação ao mapeamento, alinhamento, chamada de variante e/ou semelhantes. Portanto, em vez de precisar reunir sujeitos e coletar conjuntos de amostra individualmente, o iniciador de coorte pode anunciar a necessidade por um procedimento de análises prescrito a ser executado em conjuntos de amostra anteriormente ou a serem coletados por outros, e como tal abordagem coletiva, para gerar conjuntos de amostra e analisar os mesmos é fornecido pela organização de coorte no presente documento. Particularmente, o iniciador de coorte pode definir a seleção de coorte, criar um arquivo de configuração a ser compartilhado com os participantes de coorte potenciais, criar os parâmetros de fluxo de trabalho, por exemplo, em uma pasta de fluxo de trabalho, e podem assim automatizar a geração e análises de dados, por exemplo, por meio do sistema de gerenciamento de fluxo de trabalho. O sistema também pode habilitar o aspecto comercial da transação, por exemplo, o processamento de pagamento para compensar os participantes de coorte por sua provisão de conjuntos de dados genéticos que podem ser analisados, como em relação a mapeamento, alinhamento, chamada de variante, e/ou em relação a análises terciárias.[0852] Accordingly, in various embodiments, the cohort system may be a forum for connecting researchers to enable them to pool their resources and data, e.g., genetic sequence data. For example, engaging a cohort would allow a first researcher to introduce a project that requires genetic data analyses that require mining and/or examining multiple genomes from multiple subjects, such as with respect to mapping, alignment, variant calling, and/or the like. Therefore, rather than needing to gather subjects and collect sample sets individually, the cohort initiator may announce the need for a prescribed analysis procedure to be performed on sample sets previously or to be collected by others, and as such a collective approach to generating sample sets and analyzing the same is provided by the cohort organization herein. In particular, the cohort initiator may define the cohort selection, create a configuration file to be shared with potential cohort participants, create the workflow parameters, e.g., in a workflow folder, and may thereby automate data generation and analyses, e.g., through the workflow management system. The system may also enable the commercial aspect of the transaction, e.g., payment processing to compensate cohort participants for their provision of genetic datasets that may be analyzed, such as with respect to mapping, alignment, variant calling, and/or with respect to tertiary analyses.

[0853] Em várias modalidades, as análises estruturadas de coorte podem ser direcionadas ao processamento primário, por exemplo, de DNA ou RNA, como em relação a processamento de imagem e/ou recalibração de pontuação de qualidade de base, análise de metilação e semelhantes; e/ou podem ser direcionadas ao desempenho de análise secundária, como em relação ao mapeamento, alinhamento, seleção, chamada de variante, e semelhantes; e/ou pode ser direcionado à análise terciária, como em relação ao arranjo, análises genômica, epigenômica, metagenômica, de genotipagem, variantes e/ou outras formas de análises terciárias. Adicionalmente, deve ser entendido que, embora muitas das segmentações e análises realizadas possam envolver, assim, processamento primário e/ou secundário, várias plataformas de análise no presente documento podem não ser direcionadas a processamento primário ou secundário. Por exemplo, em certos casos, uma plataforma de análise pode ser exclusivamente direcionada à realização de análise terciária, tal como em dados genéticos, ou outras formas de análises de genômica e/ou bioinformática.[0853] In various embodiments, structured cohort analyses may be directed toward primary processing, e.g., of DNA or RNA, such as with respect to image processing and/or base quality score recalibration, methylation analysis, and the like; and/or may be directed toward performing secondary analysis, such as with respect to mapping, alignment, selection, variant calling, and the like; and/or may be directed toward tertiary analysis, such as with respect to array, genomic, epigenomic, metagenomic, genotyping, variant analysis, and/or other forms of tertiary analysis. Additionally, it should be understood that while many of the segmentations and analyses performed may thus involve primary and/or secondary processing, various analysis platforms herein may not be directed toward primary or secondary processing. For example, in certain cases, an analysis platform may be exclusively directed toward performing tertiary analysis, such as on genetic data, or other forms of genomic and/or bioinformatics analyses.

[0854] Por exemplo, em modalidades particulares, em relação aos procedimentos analíticos particulares a serem executados, as análises a serem realizadas podem incluir um ou mais dentre mapeamento, alinhamento, classificação, chamada de variante, e similares, para produzir dados de resultados que podem ser submetidos a um ou mais procedimentos analíticos secundários e/ou terciários, dependendo das segmentações específicas selecionadas para serem executadas. O fluxo de trabalho pode ser simples ou pode ser complexo, por exemplo, pode exigir o desempenho de um módulo de segmentação, por exemplo, mapeamento, ou múltiplos módulos, tal como mapeamento, alinhamento, classificação, chamada de variante e/ou outros, mas um parâmetro importante é que o fluxo de trabalho deve ser idêntico para cada pessoa que faz parte do coorte. Particularmente, um recurso exclusivo do sistema é que o solicitante que estabelece o coorte apresenta parâmetros de controle a fim de assegurar que a análise a ser realizada seja da mesma maneira, independentemente de onde aqueles procedimentos são realizados e em quais máquinas.[0854] For example, in particular embodiments, with respect to the particular analytical procedures to be performed, the analyses to be performed may include one or more of mapping, alignment, classification, variant calling, and the like, to produce result data that may be subjected to one or more secondary and/or tertiary analytical procedures, depending on the specific segmentations selected to be performed. The workflow may be simple or it may be complex, e.g., it may require the performance of a segmentation module, e.g., mapping, or multiple modules, such as mapping, alignment, classification, variant calling, and/or others, but an important parameter is that the workflow must be identical for each person who is part of the cohort. In particular, a unique feature of the system is that the applicant establishing the cohort introduces control parameters in order to ensure that the analysis to be performed is in the same manner, regardless of where those procedures are performed and on which machines.

[0855] Consequentemente, mediante a definição do coorte, o solicitante irá transferir por upload ambos os critérios de seleção juntamente um arquivo de configuração. Outros participantes do coorte irão, então, visualizar os critérios de seleção para determinar se os mesmos têm conjuntos de dados de informações genéticas incluídos nos critérios apresentados, e se for o caso, realizarão a análise solicitada nos dados, com base nas definições do arquivo de configuração. Pesquisas podem ser inscritas para serem selecionadas como um participante do coorte, e se a inscrição for grande, uma loteria ou competição pode ser mantida para selecionar os participantes. Em vários casos, um sistema de licitação poderia ser iniciado. Os dados de resultados gerados pelos participantes do coorte podem ser processados no local ou na nuvem, e contanto que o arquivo de configuração seja seguido, o processamento dos dados será igual. Particularmente, o arquivo de configuração apresenta como o dispositivo analítico BioIT deve ser configurado, e uma vez que o dispositivo é definido de acordo com a configuração prescrita, um dispositivo associado ao sistema irá realizar as análises genéticas solicitadas da mesma maneira, independentemente de onde está situado, por exemplo, local ou remotamente. Os dados de resultados podem ser, então, transferidos por upload no mercado de coorte e o pagamento apresentado e recebido em vista dos dados de resultados recebidos.[0855] Accordingly, upon defining the cohort, the requester will upload both selection criteria together with a configuration file. Other cohort participants will then view the selection criteria to determine whether they have genetic information datasets that meet the criteria provided, and if so, will perform the requested analysis on the data based on the settings in the configuration file. Research subjects may be enrolled to be selected as a cohort participant, and if enrollment is large, a lottery or competition may be held to select participants. In many cases, a bidding system could be initiated. The results data generated by cohort participants may be processed on-site or in the cloud, and as long as the configuration file is followed, the data processing will be the same. In particular, the configuration file shows how the BioIT analytical device should be configured, and once the device is set up according to the prescribed configuration, a device associated with the system will perform the requested genetic analyses in the same manner, regardless of where it is located, e.g., locally or remotely. The results data can then be uploaded to the cohort marketplace and payment submitted and received in view of the results data received.

[0856] Por exemplo, a análise dos dados genéticos pode ser realizada localmente e os resultados transferidos por upload na nuvem, ou os próprios dados genéticos podem ser transferidos por upload e as análises executadas na nuvem, por exemplo, um servidor ou rede de servidor, tal como plataforma de processamento quântico, associada à nuvem. Em vários casos, pode ser útil apenas transferir por upload os dados de resultados, a fim de proteger melhor as identidades dos sujeitos. Particularmente, mediante a transferência por upload apenas de dados de resultados, não apenas tem proteção de segurança, mas grandes quantidades de dados não precisam ser transferidas, intensificando, assim, a eficácia do sistema.[0856] For example, the analysis of genetic data may be performed locally and the results uploaded to the cloud, or the genetic data itself may be uploaded and the analyses performed in the cloud, e.g., a server or server network, such as a quantum processing platform, associated with the cloud. In many cases, it may be useful to only upload the result data in order to better protect the identities of the subjects. In particular, by uploading only the result data, not only is security protected, but large amounts of data do not need to be transferred, thus enhancing the efficiency of the system.

[0857] Mais particularmente, em vários casos, um arquivo compactado que contém dados de resultados a partir de uma ou mais segmentações pode ser transferido por upload, e em alguns casos, apenas um arquivo que contém uma descrição de variações precisa ser transferido por upload. Em alguns casos, apenas uma resposta precisa ser dada, tal como uma resposta de texto, por exemplo, uma resposta de "sim" ou "não". Tais respostas são preferenciais à medida que não apresentam a identidade do sujeito. Entretanto, se as análises precisam ser realizadas online, por exemplo, na nuvem, os arquivos BCL e/ou FASTQ selecionados podem ser transferidos por upload, as análises realizadas, e os dados de resultados podem ser, então, recuados para o apresentante inicial, que pode, então, transferir por upload os dados de resultados na interface de coorte. Os dados brutos originais podem ser , então, deletados da memória online. Dessa e de outras maneiras, o solicitante de coorte não terá acesso às identidades dos sujeitos.[0857] More particularly, in many cases, a compressed file containing outcome data from one or more segmentations may be uploaded, and in some cases, only a file containing a description of variations need be uploaded. In some cases, only one response need be given, such as a text response, e.g., a "yes" or "no" answer. Such responses are preferred as they do not reveal the identity of the subject. However, if analyses need to be performed online, e.g., in the cloud, the selected BCL and/or FASTQ files may be uploaded, the analyses performed, and the outcome data may then be backed up to the initial submitter, who may then upload the outcome data into the cohort interface. The original raw data may then be deleted from the online memory. In these and other ways, the cohort requester will not have access to the identities of the subjects.

[0858] A compactação, tal como aquela empregada na "análise no momento exato" (JIT), é particularmente útil na intensificação da eficácia do coorte. Por exemplo, com o uso de procedimentos típicos, o movimento de dados para dentro e fora do sistema de coorte é muito dispendioso. Consequentemente, embora em diversas configurações, os dados brutos e/ou não compactados transferidos por upload para o sistema podem ser armazenados no mesmo, em casos particulares, os dados podem ser compactados antes de serem transferidos por upload, os dados podem ser, então, processados dentro do sistema, e os resultados podem ser, então, compactados antes de serem transmitidos para fora do sistema, tal como onde a compactação é efetuada de acordo com um protocolo JIT. Nesse caso, o armazenamento de tais dados, tal como em uma forma compactada, é menos dispendioso e, portanto, o sistema de coorte é muito mais econômico.[0858] Compression, such as that employed in "just-in-time" (JIT) analysis, is particularly useful in enhancing cohort efficiency. For example, using typical procedures, the movement of data into and out of the cohort system is very expensive. Consequently, although in many configurations, raw and/or uncompressed data uploaded to the system may be stored therein, in particular cases, the data may be compressed prior to being uploaded, the data may then be processed within the system, and the results may then be compressed prior to being transmitted out of the system, such as where compression is performed according to a JIT protocol. In such a case, storage of such data, such as in a compressed form, is less expensive and therefore the cohort system is much more cost-effective.

[0859] Adicionalmente, em vários casos, uma pluralidade de coortes pode ser fornecido dentro de um mercado online, e dados os processos de compactação descritos no presente documento, os dados podem ser transmitidos a partir de um coorte para outro, a fim de permitir que pesquisas de diversos coortes diferentes compartilhem dados entre as mesmas, que, sem os métodos de compactação revelados na presente invenção, poderiam ser proibitivamente dispendioso. Particularmente, sem a velocidade e eficácia de JIT, os dados de compactação, uma vez transmitidos na nuvem, tipicamente permaneceriam na nuvem, embora sejam acessíveis na mesma para análise e manipulação. Entretanto, JIT permite que os dados sejam rapidamente transmitidos para e a partir da nuvem tanto para o processamento local como à base de nuvem. Ademais, conforme pode ser observado em relação à Figura 41B e 43, em casos particulares, o sistema 1 pode ser configurado para submeter os dados gerados e/ou processados de modo secundário ao processamento adicional, por exemplo, através de um recurso de computação local 100 e/ou remoto 300, tal como mediante a execução do mesmo através de uma ou mais segmentações de processamento terciário, tais como um ou mais dentre uma segmentação de análise microarranjo, um genoma, por exemplo, cuja segmentação de análise de genoma, segmentação de análise de genotipagem, segmentação de análise de exoma, segmentação de análise de epigenoma, segmentação de análise de metagenoma, segmentação de análise de microbioma, segmentação de análise de genotipagem, incluindo genotipagem de junção, segmentação de análises de variantes, incluindo segmentações de variantes estruturais, segmentações de variantes somáticas, e segmentações GATK e/ou MuTect2, bem como segmentações de sequenciamento de RNA e/ou outra segmentação de processamento terciário. Tais dados de resultados de tal processamento podem ser, então, comprimidos e/ou armazenados remotamente 400 e/ou ser transferidos a fim de serem armazenados localmente 200.[0859] Additionally, in various cases, a plurality of cohorts may be provided within an online marketplace, and given the compression processes described herein, data may be transmitted from one cohort to another to allow research from several different cohorts to share data between them, which, without the compression methods disclosed herein, would be prohibitively expensive. In particular, without the speed and efficiency of JIT, compression data, once transmitted to the cloud, would typically remain in the cloud, although accessible there for analysis and manipulation. However, JIT allows data to be rapidly transmitted to and from the cloud for both local and cloud-based processing. Furthermore, as can be seen with respect to Figure 41B and 43, in particular cases, the system 1 can be configured to subject the generated and/or processed data in a secondary manner to further processing, for example, through a local computing resource 100 and/or remote computing resource 300, such as by running the same through one or more tertiary processing threads, such as one or more of a microarray analysis thread, a genome, for example, which genome analysis thread, genotyping analysis thread, exome analysis thread, epigenome analysis thread, metagenome analysis thread, microbiome analysis thread, genotyping analysis thread including junction genotyping, variant analysis thread including structural variant threads, somatic variant threads, and GATK and/or MuTect2 threads, as well as RNA sequencing threads and/or other tertiary processing thread. Such result data from such processing may then be compressed and/or stored remotely 400 and/or be transferred in order to be stored locally 200.

[0860] Particularmente, uma ou mais, por exemplo, todas, essas funções podem ser realizadas localmente, por exemplo, no local 10, em uma nuvem local 30 ou por meio de acesso controlado através da nuvem híbrida 50. Em tal caso, um ambiente do desenvolvedor é criado, o qual permite que um usuário controle a funcionalidade do sistema para cumprir com suas necessidades individuais e/ou permitir acesso ao mesmo para outros que buscam os mesmos resultados ou resultados semelhantes. Consequentemente, os diversos componentes, processos, procedimentos, ferramentas, estratos e hierarquias do sistema podem ser configuráveis, tais como por meio de uma interface GUI que permite que o usuário selecione quais componentes do sistema a serem operados em quais dados em que momento e em que ordem de acordo com os desejos determinados por usuário e protocolos a fim de gerar dados relevantes e conexões entre dados que podem ser comunicados de modo seguro por todo o sistema local ou remotamente. Conforme indicado, esses componentes podem ser feitos para se comunicar de modo ininterrupto em conjunto, por exemplo, independentemente do local e/ou como conectados, tal como estando em uma configuração firmemente acoplada e/ou um acoplamento baseado em nuvem ininterrupta e/ou sendo configuráveis, por exemplo, por meio de um protocolo JIT, a fim de operar os mesmos processos ou processos semelhantes da mesma forma ou de forma semelhante, tal como empregando-se interfaces API correspondentes dispersadas por todo o sistema, cujo emprego permite que os diversos usuários configurem os diversos componentes para operar os diversos procedimentos de forma semelhante.[0860] In particular, one or more, e.g., all, of these functions may be performed locally, e.g., at site 10, in a local cloud 30, or via controlled access via hybrid cloud 50. In such a case, a developer environment is created which allows a user to control the functionality of the system to meet his or her individual needs and/or allow access thereto to others seeking the same or similar results. Accordingly, the various components, processes, procedures, tools, layers, and hierarchies of the system may be configurable, such as via a GUI interface which allows the user to select which components of the system to operate on which data at what time and in what order according to user-determined desires and protocols in order to generate relevant data and connections between data which may be securely communicated throughout the system locally or remotely. As indicated, these components may be made to communicate seamlessly together, e.g., independently of location and/or as connected, such as being in a tightly coupled configuration and/or a seamless cloud-based coupling, and/or being configurable, e.g., via a JIT protocol, in order to operate the same or similar processes in the same or similar manner, such as by employing corresponding API interfaces dispersed throughout the system, the employment of which allows various users to configure the various components to operate the various procedures in a similar manner.

[0861] Por exemplo, uma API pode ser definida em um arquivo de cabeçalho em relação aos processos a serem operados por cada componente particular do sistema 1, em que o cabeçalho descreve a funcionalidade e determina como chamar uma função, tal como os parâmetros que são passados, as entradas recebidas e as saídas transmitidas e a forma em que isso ocorre, o que entra e como, o que sai e como e o que é retornado e de que forma. Por exemplo, em diversas modalidades, um ou mais dos componentes e/ou elementos dos mesmos, os quais podem formar uma ou mais tubulações de um ou mais estratos do sistema, podem ser configuráveis tal como por meio de instruções inseridas por um usuário e/ou uma ou mais aplicações de segundos e/ou terceiros. Essas instruções podem ser comunicadas ao sistema por meio das APIs correspondentes que se comunicam com um ou mais dos diversos drivers do sistema, instruindo o driver (ou drivers) sobre quais partes do sistema, por exemplo, quais módulos e/ou quais processos do mesmo, devem ser ativadas, quando e em que ordem, dada uma configuração de parâmetro pré-selecionada, a qual pode ser determinada por uma interface selecionável por usuário, por exemplo, GUI.[0861] For example, an API may be defined in a header file with respect to the processes to be operated by each particular component of the system 1, wherein the header describes the functionality and determines how to call a function, such as the parameters that are passed, the inputs received and the outputs transmitted and the manner in which this occurs, what goes in and how, what goes out and how, and what is returned and in what form. For example, in various embodiments, one or more of the components and/or elements thereof, which may form one or more pipelines of one or more layers of the system, may be configurable such as by means of instructions entered by a user and/or one or more second and/or third party applications. These instructions may be communicated to the system via corresponding APIs that communicate with one or more of the system's various drivers, instructing the driver (or drivers) which parts of the system, e.g. which modules and/or which processes thereof, should be activated, when, and in what order, given a pre-selected parameter configuration, which may be determined by a user-selectable interface, e.g. GUI.

[0862] Particularmente, o um ou mais drivers de DMA do sistema 1 podem ser configurados para operar de forma correspondente, tal como no nível de kernel de cada componente e do sistema 1 como um todo. Em tal caso, um ou mais dentre os kernels fornecidos podem ter sua própria API básica de nível muito baixo que fornece acesso ao hardware e às funções dos diversos componentes do sistema 1 a fim de acessar registros e módulos aplicáveis a fim de configurar e direcionar os processos e as formas em que os mesmos são operados no sistema 1. Especificamente, no topo dessa camada, uma camada virtual de funções de serviço pode ser construída a fim de formar os blocos de construção que são usados para uma multiplicidade de funções que enviam arquivos para o kernel (ou kernels) e consegue resultados de volta, codifica, encripta e/ou transmite os dados relevantes e realiza adicionalmente funções de nível mais alto nas mesmas. No topo daquela camada, uma camada adicional pode ser construída, a qual usa essas funções de serviço, as quais podem estar em nível de API com a qual um usuário pode realizar interface, a qual pode ser adaptada para funcionar primariamente para configuração do sistema 1 como um todo ou suas partes de componente, transferindo por download arquivos e transferindo por upload resultados, em que os arquivos e/ou resultados podem ser transmitidos através do sistema local ou globalmente. Os APIs adicionais podem ser configurados e incluídos conforme apresentado em maiores detalhes acima em relação ao armazenamento seguro de dados.[0862] In particular, the one or more DMA drivers of system 1 may be configured to operate correspondingly, such as at the kernel level of each component and of system 1 as a whole. In such a case, one or more of the provided kernels may have their own very low-level core API that provides access to the hardware and functions of the various components of system 1 in order to access applicable registers and modules in order to configure and direct the processes and the ways in which they are operated in system 1. Specifically, on top of this layer, a virtual layer of service functions may be constructed in order to form the building blocks that are used for a multitude of functions that send files to the kernel (or kernels) and get results back, encode, encrypt and/or transmit the relevant data, and additionally perform higher-level functions thereon. On top of that layer, an additional layer may be built which uses these service functions, which may be at the API level with which a user can interface, which may be adapted to function primarily for configuring the system 1 as a whole or its component parts, downloading files and uploading results, where the files and/or results may be transmitted across the system locally or globally. Additional APIs may be configured and included as discussed in greater detail above in relation to secure data storage.

[0863] Tal configuração dos diversos APIs, memórias e/ou firmware do sistema pode incluir a comunicação com registradores e também a realização de chamadas funcionais. Por exemplo, conforme descrito no presente documento acima, uma ou mais chamadas de função necessárias e/ou úteis para realizar as etapas, por exemplo, sequencialmente, para executar um mapeamento e/ou um alinhamento e/ou uma classificação e/ou uma chamada de variante ou outras funções secundárias e/ou terciárias, conforme descrito no presente documento, pode ser implantada de acordo com as operações de hardware e/ou algoritmos relacionados a fim de gerar os processos necessários e realizar as etapas exigidas.[0863] Such configuration of the various APIs, memories and/or system firmware may include communicating with registers and also performing functional calls. For example, as described herein above, one or more function calls necessary and/or useful to perform the steps, e.g., sequentially, to perform a mapping and/or an alignment and/or a classification and/or a variant call or other secondary and/or tertiary functions as described herein, may be implemented in accordance with the hardware operations and/or related algorithms in order to generate the necessary processes and perform the required steps.

[0864] Especificamente, devido ao fato de que, em determinadas modalidades, uma ou mais dessas operações podem ser baseadas em uma ou mais estruturas, as diversas estruturas necessárias para implantar essas operações podem precisar ser construídas. Portanto, será uma chamada de função que realiza essa função, em que a chamada de função fará com que a estrutura exigida seja construída para o desempenho da operação e, devido a isso, uma chamada aceitará um nome de arquivo de onde os arquivos de parâmetro de estrutura estarão armazenados e gerará, então, um ou mais arquivos de dados que contêm e/ou configuram a estrutura exigida. Outra chamada de função pode ser para carregar a estrutura que foi gerada por meio do respectivo algoritmo e transferir a mesma para a memória no chip e/ou sistema 1 e/ou colocar a mesma no local correto em que o hardware está esperando que a mesma esteja Obviamente, diversos dados precisarão ser transferidos por download no chip e/ou transferidos de outro modo para o gerador de sistema, assim como para o desempenho das diversas outras funções selecionadas do sistema 1 e o gerenciador de configuração pode realizar essas funções, tais como carregando-se tudo o que precisa estar lá a fim de os módulos de tubulações dos estratos das plataformas do chip e/ou sistema como um todo realizarem suas funções, em uma memória no chip e/ou sistema, fixada ou associada de outro modo aos mesmos.[0864] Specifically, because in certain embodiments one or more of these operations may be based on one or more structures, the various structures required to implement these operations may need to be constructed. Therefore, a function call will perform this function, wherein the function call will cause the required structure to be constructed to perform the operation, and because of this, a call will accept a file name of where the structure parameter files will be stored and will then generate one or more data files that contain and/or configure the required structure. Another function call may be to load the structure that was generated by the respective algorithm and transfer it to on-chip and/or system memory 1 and/or place it in the correct location where the hardware is expecting it to be. Obviously, various data will need to be downloaded to the chip and/or otherwise transferred to the system generator, as well as to perform various other selected functions of system 1, and the configuration manager may perform these functions, such as loading whatever needs to be there in order for the pipeline modules of the layers of the chip platforms and/or system as a whole to perform their functions, into on-chip and/or system memory attached to or otherwise associated with them.

[0865] Adicionalmente, o sistema pode ser configurado para permitir que vários componentes do sistema se comuniquem uns com os outros, tal como para permitir que um ou mais chips do sistema 1 realize interface com a placa de circuitos do sequenciador 121, do recurso de computação 100/300, do transformador 151, do analisador 152, do interpretador 310, do colaborador 320 ou de outro componente de sistema, quando incluídos nos mesmo, a fim de receber a FASTQ e/ou outros arquivos de sequenciamento genético gerados e/ou processados diretamente a partir do sequenciador ou de outro componente de processamento, tal como imediatamente uma vez que os mesmos foram gerados e/ou processados e, então, transfere aquelas informações para o gerenciador de configuração que, então, direciona aquelas informações para os bancos de memória apropriados no hardware e/ou software que tornam aquelas informações disponíveis para os módulos pertinentes do hardware, software e/ou sistema como um todo, de forma que os mesmos possam realizar suas funções designadas naquelas informações a fim de chamar bases, mapear, alinhar, classificar, etc. a DNA/RNA de amostra em relação ao genoma de referência e/ou operar operações de processamento secundárias e/ou terciárias associadas nas mesmas.[0865] Additionally, the system may be configured to allow various system components to communicate with each other, such as to allow one or more chips of system 1 to interface with the circuit board of sequencer 121, computing resource 100/300, transformer 151, analyzer 152, interpreter 310, collaborator 320, or other system component, when included therein, in order to receive FASTQ and/or other genetic sequencing files generated and/or processed directly from the sequencer or other processing component, such as immediately once they have been generated and/or processed, and then transfer that information to the configuration manager, which then directs that information to the appropriate memory banks in the hardware and/or software that make that information available to the pertinent modules of the hardware, software, and/or system as a whole so that they may perform their designated functions on that information in order to call bases, mapping, aligning, classifying, etc. the sample DNA/RNA against the reference genome and/or performing associated secondary and/or tertiary processing operations on the same.

[0866] Consequentemente, em diversas modalidades, uma interface no nível de cliente (CLI) pode ser incluída, em que a CLI pode seguir o usuário para chamar uma ou mais dessas funções diretamente. Em diversas modalidades, a CLI pode ser uma aplicação de software, por exemplo, que tem uma GUI, a qual é adaptada para configurar a acessibilidade e/ou o uso do hardware e/ou diversas outras aplicações de software do sistema. A CLI, portanto, pode ser um programa que aceita instruções, por exemplo, argumentos e torna a funcionalidade disponível simplesmente chamando-se um programa de aplicação. Conforme indicado acima, a CLI pode ser baseada em linha de comando ou baseada em GUI (interface de usuário gráfica). Os comandos baseados em linha acontecem em um nível abaixo da GUI, em que a GUI inclui um gerenciador de arquivo baseado em janelas com caixas de função de clique que delineiam quais módulos, quais tubulações, quais estratos, de quais plataformas serão usados e os parâmetros de seu uso. Por exemplo, na operação, se instruída, a CLI localizará a referência, determinará se uma tabela de dispersão e/ou um índice precisa ser gerado ou, se já gerado, localiza onde o mesmo está armazenado e direciona a transferência por upload da tabela de dispersão e/ou do índice gerados, etc. Esses tipos de instruções podem aparecer como opções de usuário na GUI em que o usuário pode selecionar o chip (ou chips)/sistema associados 1 para realizar.[0866] Accordingly, in various embodiments, a client-level interface (CLI) may be included, wherein the CLI may follow the user to call one or more of these functions directly. In various embodiments, the CLI may be a software application, e.g., that has a GUI, which is adapted to configure the accessibility and/or use of the hardware and/or various other software applications of the system. The CLI, therefore, may be a program that accepts instructions, e.g., arguments, and makes functionality available simply by calling an application program. As indicated above, the CLI may be command-line based or GUI (graphical user interface) based. The line-based commands occur at a level below the GUI, wherein the GUI includes a window-based file manager with click-through function boxes that delineate which modules, which pipelines, which layers, from which platforms will be used, and the parameters of their use. For example, in the operation, if instructed, the CLI will locate the reference, determine if a hash table and/or index needs to be generated, or if already generated, locate where it is stored and direct the upload of the generated hash table and/or index, etc. These types of instructions may appear as user options in the GUI where the user can select the associated chip(s)/system 1 to perform.

[0867] Adicionalmente, uma biblioteca pode ser incluída, em que a biblioteca pode incluir arquivos de configuração pré-existentes e editáveis, tais como arquivos orientados ao funcionamento selecionado por usuário do hardware e/ou software associado, tal como em relação a uma porção ou uma análise de genoma e/ou proteína completos, por exemplo, para diversas análises, tais como históricos médicos pessoais e análise ancestral, ou diagnóstico de doença, ou constatação de fármaco, substâncias terapêuticas e/ou um ou mais das outras análises, etc. Esses tipos de parâmetros podem ser predefinidos, tais como para realizar tais análises, e podem ser armazenados na biblioteca. Por exemplo, se a plataforma descrita no presente documento for empregada, tal como para NIPT, NICU, Câncer, LDT, AgBio e pesquisa relacionada em um nível coletivo, os parâmetros predefinidos podem ser configurados de modo diferente do que se a plataforma fosse simplesmente direcionada a pesquisar pesquisa baseada em genômica e/ou genealogia, tal como em um nível individual.[0867] Additionally, a library may be included, wherein the library may include pre-existing, editable configuration files, such as files geared toward user-selected operation of the associated hardware and/or software, such as with respect to a portion or a complete genome and/or protein analysis, for example, for various analyses, such as personal medical history and ancestry analysis, or disease diagnosis, or drug discovery, therapeutic substances, and/or one or more other analyses, etc. These types of parameters may be predefined, such as for performing such analyses, and may be stored in the library. For example, if the platform described herein is employed, such as for NIPT, NICU, Cancer, LDT, AgBio, and related research on a collective level, the predefined parameters may be configured differently than if the platform were simply directed to research genomics and/or genealogy-based research, such as on an individual level.

[0868] Mais particularmente, para o diagnóstico específico de um indivíduo, a precisão pode ser um fator importante. Portanto, os parâmetros do sistema podem ser definidos para assegurar precisão aumentada apesar de ser em troca de possivelmente uma diminuição na velocidade. Entretanto, para outras aplicações genômicas, a velocidade pode ser o determinante-chave e, portanto, os parâmetros do sistema podem ser enviados para maximizar a velocidade, a qual, entretanto, pode sacrificar alguma precisão. Consequentemente, em diversas modalidades, definições de parâmetro normalmente usadas para realizar tarefas diferentes podem ser predefinidas na biblioteca para facilitar a facilidade de uso. Tais definições de parâmetro também podem incluir as aplicações de software e/ou configurações de hardware necessárias empregadas na operação do sistema 1. Por exemplo, a biblioteca pode conter o código que executa a API e pode incluir adicionalmente arquivos, scripts e quaisquer outras informações auxiliares de amostra necessárias para operar o sistema 1. Logo, a biblioteca pode ser configurada para compilar software para operar a API assim como diversos dos executáveis.[0868] More particularly, for the specific diagnosis of an individual, accuracy may be an important factor. Therefore, system parameters may be set to ensure increased accuracy although at the cost of possibly decreasing speed. However, for other genomic applications, speed may be the key determinant and therefore system parameters may be set to maximize speed, which may however sacrifice some accuracy. Accordingly, in various embodiments, parameter settings typically used to perform different tasks may be predefined in the library to facilitate ease of use. Such parameter settings may also include the necessary software applications and/or hardware configurations employed in the operation of the system 1. For example, the library may contain code that executes the API and may additionally include sample files, scripts, and any other auxiliary information necessary to operate the system 1. Accordingly, the library may be configured to compile software to operate the API as well as several of the executables.

[0869] Adicionalmente, conforme pode ser observado em relação à Figura 42C e 43, o sistema pode ser configurado de forma que um ou mais dentre os componentes de sistema possam ser realizados remotamente, tal como quando o componente de sistema é adaptado para operar uma ou mais funções comparativas nos dados, tal como uma função interpretativa 310 e/ou função colaborativa 320. Por exemplo, quando um protocolo interpretativo é empregado nos dados, o protocolo interpretativo 312 pode ser configurado para analisar e chegar a conclusões sobre os dados e/ou determinar diversas relações em relação às mesmas, um ou mais outros protocolos analíticos também podem ser realizados e incluem anotar os dados 311, realizar um diagnóstico 313 nos dados e/ou analisar os dados, a fim de determinar a presença ou a ausência de um ou mais biomarcadores 314. Conforme indicado, uma ou mais dessas funções podem ser dirigidas pelo WMS e/ou realizadas pelo módulo A/I revelado no presente documento.[0869] Additionally, as can be seen with respect to Figure 42C and 43, the system can be configured such that one or more of the system components can be performed remotely, such as when the system component is adapted to perform one or more comparative functions on the data, such as an interpretive function 310 and/or collaborative function 320. For example, when an interpretive protocol is employed on the data, the interpretive protocol 312 can be configured to analyze and draw conclusions about the data and/or determine various relationships thereto, one or more other analytical protocols can also be performed and include annotating the data 311, performing a diagnosis 313 on the data, and/or analyzing the data to determine the presence or absence of one or more biomarkers 314. As indicated, one or more of these functions can be directed by the WMS and/or performed by the A/I module disclosed herein.

[0870] Adicionalmente, quando um protocolo colaborativo é realizado, o sistema 1 pode ser configurado para fornecer um fórum eletrônico quando o compartilhamento de dados 321 pode ocorrer, em que o protocolo de compartilhamento de dados pode incluir definições de segurança 324 e/ou privacidade 322 selecionáveis por usuário que permitem que os dados sejam encriptados e/ou protegidos por senha, de forma que a identidade e as fontes dos dados possam ser escondidas de um usuário do sistema 1. Em casos particulares, o sistema 1 pode ser configurado a fim de permitir que um analisador de terceiros 121 opere simulações virtuais nos dados. Adicionalmente, uma vez gerados, os dados interpretados e/ou os dados submetidos a uma ou mais análises colaborativas podem ser armazenados remotamente 400 ou localmente 200 a fim de serem tornados disponíveis aos recursos de computação remotos 300 ou locais 100, tal como para processamento e/ou análise adicional.[0870] Additionally, when a collaborative protocol is performed, the system 1 may be configured to provide an electronic forum where data sharing 321 may occur, wherein the data sharing protocol may include user-selectable security 324 and/or privacy 322 settings that allow the data to be encrypted and/or password protected so that the identity and sources of the data may be hidden from a user of the system 1. In particular cases, the system 1 may be configured to allow a third-party analyzer 121 to run virtual simulations on the data. Additionally, once generated, the interpreted data and/or data subjected to one or more collaborative analyses may be stored remotely 400 or locally 200 in order to be made available to remote 300 or local 100 computing resources, such as for further processing and/or analysis.

[0871] Em outro aspecto, conforme pode ser observado em relação à Figura 44, um método para usar o sistema para gerar um ou mais arquivos de dados mediante os quais um ou mais protocolos de processamento secundário e/ou terciário podem ser operados é fornecido. Por exemplo, o método pode incluir que fornece uma infraestrutura genômica, tal como para um ou mais dentre geração e/ou processamento e/ou análise genômica e/ou de bioinformática no local, baseados em nuvem e/ou híbridos.[0871] In another aspect, as can be seen with respect to Figure 44, a method for using the system to generate one or more data files upon which one or more secondary and/or tertiary processing protocols can be operated is provided. For example, the method can include providing a genomic infrastructure, such as for one or more of on-premises, cloud-based, and/or hybrid genomic and/or bioinformatics generation and/or processing and/or analysis.

[0872] Em tal caso, a infraestrutura genômica pode incluir uma plataforma de processamento de bioinformática que tem uma ou mais memórias que são configuradas para armazenar uma ou mais estruturas de processamento configuráveis para configurar o sistema a fim de ter capacidade para realizar uma ou mais funções de processamento analíticas em dados, tais como dados que incluem uma sequência genômica de interesse ou dados de resultado processados que pertencem à mesma. A memória pode incluir a sequência genômica de interesse a ser processada, por exemplo, uma vez gerada e/ou adquirida, uma ou mais sequências de referência genética, e/ou pode incluir adicionalmente um índice da uma ou mais sequências de referência genética e/ou uma lista de junções de emenda que pertence às mesmas. O sistema também pode incluir uma entrada que tem uma interface de programação de aplicação de plataforma (API) para selecionar a partir de uma lista de opções de uma ou mais das estruturas de processamento configuráveis, tal como para configurar o sistema, tal como selecionando-se quais funções de processamento do sistema serão operadas nos dados, por exemplo, as sequências genômicas pré ou processadas de interesse. Uma interface de usuário gráfica (GUI) também pode estar presente, tal como operacionalmente associada à API, a fim de apresentar um menu pelo qual um usuário pode selecionar qual das opções disponíveis se deseja que sejam operadas nos dados.[0872] In such a case, the genomic infrastructure may include a bioinformatics processing platform that has one or more memories that are configured to store one or more configurable processing structures for configuring the system to be capable of performing one or more analytical processing functions on data, such as data that includes a genomic sequence of interest or processed result data that pertains thereto. The memory may include the genomic sequence of interest to be processed, e.g., once generated and/or acquired, one or more genetic reference sequences, and/or may further include an index of the one or more genetic reference sequences and/or a list of splice junctions that pertain thereto. The system may also include an input that has a platform application programming interface (API) for selecting from a list of options of one or more of the configurable processing structures, such as for configuring the system, such as selecting which processing functions of the system will be operated on the data, e.g., the pre- or pre-processed genomic sequences of interest. A graphical user interface (GUI) may also be present, such as operationally associated with the API, in order to present a menu by which a user can select which of the available options he wishes to have operated on the data.

[0873] Logo, nesses e/em outros tais casos, a nuvem híbrida 50 pode ser configurada para permitir transmissão ininterrupta e protegida de dados por todos os componentes do sistema, tais como quando a nuvem híbrida 50 é adaptada para permitir que os diversos usuários do sistema configurem suas partes de componente e/ou o próprio sistema, por exemplo, por meio do WMS, a fim de cumprir com as necessidades de pesquisa e/ou desenvolvimento, diagnóstico, constatação terapêutica e/ou profilática do usuário. Particularmente, a nuvem híbrida 50 e/ou os diversos componentes do sistema 1 podem ser operacionalmente conectados a interfaces API compatíveis e/ou correspondentes que são adaptadas para permitir que um usuário configure remotamente os diversos componentes do sistema 1 a fim de instalar os recursos desejados da forma desejada e fazer adicionalmente isso local, remotamente ou em uma combinação dos mesmos, tal como baseado nas demandas do sistema e nos particulares das análises que são realizadas, tendo capacidade durante todo o tempo para se comunicar em um ambiente seguro encriptável.[0873] Thus, in these and/or other such cases, the hybrid cloud 50 may be configured to allow uninterrupted and protected transmission of data by all components of the system, such as when the hybrid cloud 50 is adapted to allow the various users of the system to configure its component parts and/or the system itself, for example, by means of the WMS, in order to meet the user's research and/or development, diagnostic, therapeutic and/or prophylactic testing needs. In particular, the hybrid cloud 50 and/or the various components of the system 1 may be operationally connected to compatible and/or corresponding API interfaces that are adapted to allow a user to remotely configure the various components of the system 1 in order to install the desired resources in the desired manner and to do so additionally locally, remotely or in a combination thereof, as based on the demands of the system and the particulars of the analyses being performed, being able at all times to communicate in a secure, encryptable environment.

[0874] Conforme descrito acima, o sistema pode ser implantado em um ou mais circuitos integrados que podem ser formados por um ou mais conjuntos de circuitos de lógica digital configurável, por exemplo, pré-configurados e/ou com fio, que podem ser interconectados por meio de uma pluralidade de interconexões elétricas físicas. Em tal caso, o circuito integrado pode ter uma entrada, tal como uma interface de memória, para receber um ou uma pluralidade dos protocolos de estrutura configuráveis, por exemplo, a partir da memória, e pode ser adicionalmente adaptada para implantar a uma ou mais estruturas no circuito integrado de acordo com os protocolos de estrutura de processamento configuráveis. A interface de memória da entrada também pode ser configurada para receber os dados de sequência genômica, os quais podem estar na forma de uma pluralidade de leituras de dados genômicos. A interface também pode ser adaptada para acessar a uma ou mais sequências de referência genética e o índice (ou índices).[0874] As described above, the system may be implemented on one or more integrated circuits that may be formed by one or more sets of configurable digital logic circuits, e.g., preconfigured and/or hardwired, that may be interconnected via a plurality of physical electrical interconnects. In such a case, the integrated circuit may have an input, such as a memory interface, for receiving one or a plurality of the configurable framework protocols, e.g., from memory, and may be further adapted to implement the one or more frameworks on the integrated circuit in accordance with the configurable framework processing protocols. The input memory interface may also be configured to receive genomic sequence data, which may be in the form of a plurality of genomic data reads. The interface may also be adapted to access the one or more genetic reference sequences and the index (or indices).

[0875] Em diversos casos, os circuitos de lógica digital podem ser dispostos como um conjunto de mecanismos de processamento que são formados, cada um, por um subconjunto dos circuitos de lógica digital. Os circuitos de lógica digital e/ou os mecanismos de processamento podem ser configurados a fim de realizar uma ou mais etapas pré-configuráveis de um protocolo de processamento primário, secundário e/ou terciário a fim de gerar a pluralidade de leituras de dados de sequência genômica e/ou para processar a pluralidade de leituras de dados genômicos, tal como de acordo com a sequência (ou sequências) genética de referência ou outras informações derivadas de sequência genética. O circuito integrado pode ter adicionalmente uma entrada a fim de emitir dados de resultado do processamento primário, secundário e/ou terciário, tal como de acordo com a interface de programação de aplicação de plataforma (API).[0875] In various instances, the digital logic circuitry may be arranged as a set of processing engines that are each formed by a subset of the digital logic circuitry. The digital logic circuitry and/or the processing engines may be configured to perform one or more preconfigurable steps of a primary, secondary, and/or tertiary processing protocol to generate the plurality of genomic sequence data reads and/or to process the plurality of genomic data reads, such as in accordance with the reference gene sequence(s) or other genetic sequence-derived information. The integrated circuit may additionally have an input for outputting result data from the primary, secondary, and/or tertiary processing, such as in accordance with the platform application programming interface (API).

[0876] Particularmente, em diversas modalidades, os circuitos de lógica digital e/ou os conjuntos de mecanismos de processamento podem formar uma pluralidade de tubulações de processamento genômico, tal como quando cada segmentação pode ter uma entrada que é definida de acordo com a interface de programação de aplicação de plataforma a fim de receber os dados de resultado do processamento primário e/ou secundário pela plataforma de processamento de bioinformática e para realizar um ou mais processos analíticos na mesma a fim de produzir dados de resultado. Adicionalmente, a pluralidade de segmentações de processamento genômico pode ter uma API de segmentação comum que define uma operação de processamento secundário e/ou terciário a ser operada nos dados de resultado dos dados processados primários e/ou secundários, tais como quando cada uma dentre a pluralidade de tubulações de processamento genômico é configurada para realizar um subconjunto das operações de processamento secundárias e/ou terciárias e para emitir dados de resultado do processamento secundário e/ou terciário de acordo com a API de segmentação.[0876] Particularly, in various embodiments, the digital logic circuits and/or sets of processing engines may form a plurality of genomic processing pipelines, such as where each pipeline may have an input that is defined in accordance with the platform application programming interface for receiving primary and/or secondary processing result data by the bioinformatics processing platform and for performing one or more analytical processes thereon to produce result data. Additionally, the plurality of genomic processing pipelines may have a common pipeline API that defines a secondary and/or tertiary processing operation to be operated on the result data of the primary and/or secondary processed data, such as where each of the plurality of genomic processing pipelines is configured to perform a subset of the secondary and/or tertiary processing operations and to output secondary and/or tertiary processing result data in accordance with the pipeline API.

[0877] Em tais casos, uma pluralidade das aplicações de análise genômica pode ser armazenadas na memória e/ou um repositório de aplicação pesquisável associado, tal como quando cada uma dentre a pluralidade de aplicações de análise genômica é acessível por meio de uma mídia eletrônica por uma computador, tal como para execução por meio de um processador de computador, a fim de realizar uma análise direcionada dos dados genômicos pré ou pós-processados a partir dos dados de resultado do processamento primário, secundário e/ou terciário, tal como por uma ou mais dentre a pluralidade de tubulações de processamento genômico. Em casos particulares, cada uma dentre a pluralidade de aplicações de análise genômica pode ser definida pela API e pode ser configurada para receber os dados de resultado do processamento primário, secundário e/ou terciário e/ou para realizar a análise-alvo dos dados genômicos pré ou pós-processados e para emitir os dados de resultado da análise direcionada a um dentre um ou mais bancos de dados genômicos.[0877] In such cases, a plurality of genomic analysis applications may be stored in memory and/or an associated searchable application repository, such as where each of the plurality of genomic analysis applications is accessible via an electronic medium by a computer, such as for execution by a computer processor, in order to perform a targeted analysis of pre- or post-processed genomic data from primary, secondary, and/or tertiary processing result data, such as by one or more of the plurality of genomic processing pipelines. In particular cases, each of the plurality of genomic analysis applications may be defined by the API and may be configured to receive primary, secondary, and/or tertiary processing result data and/or to perform targeted analysis of the pre- or post-processed genomic data and to output the targeted analysis result data to one of one or more genomic databases.

[0878] O método pode incluir adicionalmente selecionar, por exemplo, a partir do menu da GUI, uma ou mais tubulações de processamento genômico a partir de uma pluralidade das tubulações de processamento genômico disponíveis do sistema; selecionar uma ou mais aplicações de análise genômica a partir da pluralidade de aplicações de análise genômica que são armazenadas em um repositório de aplicação; e executar, com o uso de um processador de computador, a uma ou mais aplicações de análise genômica selecionadas para realizar uma análise direcionada de f dados genômicos a partir dos dados de resultado do processamento primário, secundário e/ou terciário.[0878] The method may further include selecting, for example, from a GUI menu, one or more genomic processing pipelines from a plurality of the system's available genomic processing pipelines; selecting one or more genomic analysis applications from the plurality of genomic analysis applications that are stored in an application repository; and executing, using a computer processor, the one or more selected genomic analysis applications to perform a targeted analysis of genomic data from the primary, secondary, and/or tertiary processing result data.

[0879] Adicionalmente, em diversas modalidades, todos dentre mapeamento, alinhamento e classificação e chamada de variante podem ocorrer no chip e realinhamento local, marcação de duplicada, recalibração de pontuação de qualidade de base também podem, e/ou um ou mais do protocolos e/ou tubulações de processamento terciário, em diversas modalidades, ocorrer no chip ou em software e, em diversos casos, diversos protocolos de compressão, tais como SAM e/ou BAM e/ou CRAM, também podem ocorrer no chip. Entretanto, uma vez que os dados processados primários, secundários e/ou terciários foram produzidos, os mesmos podem ser comprimidos, tal como antes de serem transmitidos, tal como por meio de serem enviados através do sistema, serem enviados para a nuvem, tal como para o desempenho do módulo de chamada de variante, uma plataforma de processamento secundária, terciária e/ou outra, tal como incluindo um protocolo de análise interpretativo e/ou colaborativo. Isso pode ser útil especialmente dado o fato de que a chamada de variante, incluindo o processamento terciário da mesma, pode ser um alvo móvel, por exemplo, existe um não padronizado concordado de acordo com o algoritmo que a indústria usa.[0879] Additionally, in various embodiments, all of the mapping, alignment and classification, and variant calling may occur on-chip, and local realignment, duplicate marking, base quality score recalibration may also occur, and/or one or more of the tertiary processing protocols and/or pipelines, in various embodiments, may occur on-chip or in software, and in various cases, various compression protocols, such as SAM and/or BAM and/or CRAM, may also occur on-chip. However, once the primary, secondary, and/or tertiary processed data has been produced, it may be compressed, such as before being transmitted, such as by being sent through the system, being sent to the cloud, such as for performance by the variant calling module, a secondary, tertiary, and/or other processing platform, such as including an interpretive and/or collaborative analysis protocol. This can be useful especially given the fact that variant calling, including tertiary processing thereof, can be a moving target, e.g. there is no agreed standard according to the algorithm that the industry uses.

[0880] Logo, algoritmos diferentes podem ser empregados, tais como por usuários remotos, a fim de alcançar um tipo diferente de resultado, conforme desejado, e como tal ter um módulo baseado em nuvem para o desempenho dessa função pode ser útil para permitir que a flexibilidade selecione qual algoritmo é útil em qualquer dado momento particular e também para processamento em série e/ou paralelo. Consequentemente, qualquer um dos módulos revelados no presente documento pode ser implantado como hardware, por exemplo, no chip, ou software, por exemplo, na nuvem, mas, em determinadas modalidades, todos os módulos podem ser configurados de forma que sua função possa ser realizada no chip ou todos os módulos podem ser configurados de forma que sua função possa ser realizada remotamente, tal como na nuvem, ou haverá uma mistura de módulos em que alguns são posicionados em um ou mais chips e alguns são posicionados na nuvem. Adicionalmente, conforme indicado, em diversas modalidades, o próprio chip (ou chips) pode ser configurado a fim de funcionar em conjunto com e, em algumas modalidades, em operação imediata com um sequenciador genético, tal como um NGS e/ou um sequenciador em um chip.[0880] Accordingly, different algorithms may be employed, such as by remote users, in order to achieve a different type of result as desired, and as such having a cloud-based module to perform this function may be useful to allow flexibility in selecting which algorithm is useful at any particular time, and also for serial and/or parallel processing. Accordingly, any of the modules disclosed herein may be deployed as hardware, e.g., on-chip, or software, e.g., in the cloud, but in certain embodiments, all of the modules may be configured such that their function may be performed on-chip, or all of the modules may be configured such that their function may be performed remotely, such as in the cloud, or there will be a mix of modules where some are located on one or more chips and some are located in the cloud. Additionally, as indicated, in various embodiments, the chip(s) itself may be configured to function in conjunction with, and in some embodiments, in immediate operation with, a genetic sequencer, such as an NGS and/or a sequencer-on-a-chip.

[0881] Mais especificamente, em diversas modalidades, um aparelho da revelação pode ser um chip, tal como um chip que é configurado para processar dados genômicos, tal como empregando-se uma segmentação de módulos de análise de dados. Consequentemente, conforme pode ser observado em relação à Figura 45, um chip de processador de segmentação genômica 100 é fornecido em conjunto com hardware associado de um sistema de processador de segmentação genômica 10. O chip 100 tem uma ou mais conexões à memória externa 102 (em “Controlador de Memória DDR3”) e uma conexão 104 (por exemplo, “Interface de PCIe ou QPI”) ao mundo externo, tal como um computador hospedeiro 1000, por exemplo. Uma barra cruzada 108 (por exemplo, comutador) fornece acesso às interfaces de memória a diversos solicitadores. Os mecanismos de DMA 110 transferem dados em altas velocidades entre o hospedeiro e as memórias externas 102 do chip do processador 100 (por meio da barra cruzada 108) e/ou entre o hospedeiro e um controlador central 112. O controlador central 112 controla operações de chip, especialmente coordenando os esforços de múltiplos mecanismos de processamento 13. Os mecanismos de processamento são formados por um conjunto de circuitos lógicos digitais com fio que são interconectados por meio de interconexões elétricas físicas e são organizados em agrupamentos de mecanismo 11/114. Em algumas implantações, os mecanismos 13 em um agrupamento 11/114 compartilham uma porta de barra cruzada, por meio de um árbitro 115. O controlador central 112 tem conexões a cada um dos agrupamentos de mecanismo. Cada agrupamento de mecanismo 11/114 tem vários mecanismos de processamento 13 para o processamento de dados genômicos, incluindo um mapeador 120 (ou módulo de mapeamento), um alinhador 122 (ou módulo de alinhamento) e um classificador 124 (ou módulo de classificação), um ou mais mecanismos de processamento para a realização de outras funções, tais como chamada de variante, também podem ser fornecidos. Logo, um agrupamento de mecanismo 11/114 também pode incluir outros mecanismos ou módulos, tais como um módulo de chamador de variante.[0881] More specifically, in various embodiments, an apparatus of the disclosure may be a chip, such as a chip that is configured to process genomic data, such as by employing a segmentation of data analysis modules. Accordingly, as can be seen with respect to Figure 45 , a genomic segmentation processor chip 100 is provided in conjunction with associated hardware of a genomic segmentation processor system 10. The chip 100 has one or more connections to external memory 102 (at “DDR3 Memory Controller”) and a connection 104 (e.g., “PCIe Interface or QPI”) to the outside world, such as a host computer 1000, for example. A crossbar 108 (e.g., switch) provides access to the memory interfaces to various requestors. DMA engines 110 transfer data at high speeds between the host and external memories 102 of processor chip 100 (via crossbar 108) and/or between the host and a central controller 112. Central controller 112 controls chip operations, particularly by coordinating the efforts of multiple processing engines 13. Processing engines are comprised of a set of hard-wired digital logic circuits that are interconnected via physical electrical interconnects and are organized into engine clusters 11/114. In some implementations, engines 13 in a cluster 11/114 share a crossbar port, via an arbiter 115. Central controller 112 has connections to each of the engine clusters. Each engine cluster 11/114 has a plurality of processing engines 13 for processing genomic data, including a mapper 120 (or mapping module), an aligner 122 (or alignment module), and a classifier 124 (or classification module), and one or more processing engines for performing other functions, such as variant calling, may also be provided. Thus, an engine cluster 11/114 may also include other engines or modules, such as a variant caller module.

[0882] De acordo com um modelo de fluxo de dados consistente com as implantações descritas no presente documento, a CPU hospedeira 1000 envia comandos e dados por meio dos mecanismos de DMA 110 ao controlador central 112, o qual equilibra por carga os dados para os mecanismos de processamento 13. Os mecanismos de processamento retornam dados processados ao controlador central 112, o qual transmite de modo contínuo os mesmos de volta para o hospedeiro por meio dos mecanismos de DMA 110. Esse modelo de fluxo de dados é adequado para mapeamento e alinhamento e chamada de variante. Conforme indicado, em vários casos, a comunicação com a CPU perdida pode ser através de um acoplamento relativamente solto ou firme, tal como uma interconexão de largura de banda alta e latência baixa, tal como uma QPI, para manter a coerência de cache entre os elementos de memória associados dos dois ou mais dispositivos.[0882] In accordance with a data flow model consistent with the implementations described herein, the host CPU 1000 sends commands and data via the DMA engines 110 to the central controller 112, which load balances the data to the processing engines 13. The processing engines return processed data to the central controller 112, which continuously transmits the same back to the host via the DMA engines 110. This data flow model is suitable for mapping and alignment and variant calling. As indicated, in various cases, communication with the lost CPU may be via a relatively loose or tight coupling, such as a high-bandwidth, low-latency interconnect, such as a QPI, to maintain cache coherence between the associated memory elements of the two or more devices.

[0883] Por exemplo, em vários casos, devido a diversas restrições de potência e/ou espaço, tal como mediante a realização de analítica de dados grandes, tal como as mapeamento/alinhamento/chamada de variante em um ambiente acelerado de software/hardware híbrido, conforme descrito no presente documento, em que os dados precisam ser movidos tanto rápido como continuamente entre dispositivos de sistema, uma interface de acoplamento firme coerente de cache pode ser útil para realizar tais transmissões de dados através do sistema para e a partir dos dispositivos acoplados, tal como para e a partir do sequenciador, DSP (processador de sinal digital), CPU e/ou GPU ou híbrido de CPU/GPU, circuito integrado acelerado, por exemplo, FPGA, ASIC (em cartão de rede), bem como outros aceleradores de rede inteligentes de uma maneira coerente em cache e rápida. Em tais casos, uma interconexão de acoplamento firme com coerência de cache adequada pode ser uma ou mais dentre uma especificação de tecnologia de interconexão única que é configurada para assegurar que o processamento, tal como entre uma multiplicidade de plataformas de processamento, com o uso de arquiteturas de conjunto de instrução diferente (ISA), possa compartilhar de modo coerente dados entre as plataformas diferentes e/ou com um ou mais aceleradores associados, por exemplo, como um acelerador implantado por FPGA com fio, a fim de possibilitar a computação heterogênea eficaz e, assim, aperfeiçoar significativamente a eficácia do sistema, que, em vários casos, pode ser configurada como um sistema de servidor baseado em nuvem. Logo, em certos casos, um protocolo de interconexão coerente em cache, de baixa latência e largura de banda alta, tal como uma QPI, interface de acelerador de processador coerente (CAPI), NVLink/GPU, ou outro protocolo de interconexão adequado pode ser empregado para agilizar diversas transmissões de dados entre os diversos componentes do sistema, tais como que pertencem às funções de computação de mapeamento, alinhamento e/ou chamada de variante que podem envolver o uso de mecanismos de aceleração cujo funcionamento exige a necessidade de acessar, processar e mover dados de modo contínuo entre diversos componentes de sistema em que os diversos dados a serem processados residem no sistema. E, em que tais dados são retidos dentro de um dispositivo de memória associado, tal como uma RAM ou DRAM, as atividades de transmissão podem envolver ainda pesquisa coerente e rápida e processamento de banco de dados em memória.[0883] For example, in various cases due to various power and/or space constraints, such as when performing big data analytics such as mapping/alignment/variant calling in a hybrid software/hardware accelerated environment as described herein, where data needs to be moved both rapidly and continuously between system devices, a cache coherent tight coupling interface may be useful for performing such data transmissions throughout the system to and from the coupled devices, such as to and from the sequencer, DSP (digital signal processor), CPU and/or GPU or CPU/GPU hybrid, accelerated integrated circuit, e.g., FPGA, ASIC (on network card), as well as other intelligent network accelerators in a cache coherent and fast manner. In such cases, a tightly coupled interconnect with adequate cache coherence may be one or more of a single interconnect technology specification that is configured to ensure that processing, such as between a plurality of processing platforms using different instruction set architectures (ISAs), can coherently share data between the different platforms and/or with one or more associated accelerators, e.g., such as a wired FPGA-deployed accelerator, in order to enable efficient heterogeneous computing and thereby significantly improve the efficiency of the system, which in various cases may be configured as a cloud-based server system. Thus, in certain cases, a low-latency, high-bandwidth, cache-coherent interconnect protocol such as QPI, Coherent Processor Accelerator Interface (CAPI), NVLink/GPU, or other suitable interconnect protocol may be employed to expedite various data transmissions between various system components, such as those pertaining to mapping, alignment, and/or variant calling computation functions that may involve the use of acceleration mechanisms whose operation requires the need to access, process, and move data seamlessly between various system components where the various data to be processed resides in the system. And, where such data is retained within an associated memory device such as RAM or DRAM, the transmission activities may also involve fast coherent lookup and in-memory database processing.

[0884] Particularmente, em modalidades particulares, tal computação heterogênea pode envolver uma multiplicidade de arquiteturas de processamento e/ou aceleração que podem ser interconectadas em um formato de computação de conjunto de instruções reduzido. Em tal caso, tal dispositivo de interconexão pode ser um dispositivo de seis interconexões de conexão coerente (CCVI), que é configurado para permitir que todos os componentes de computação dentro do sistema enderecem, leiam e/ou gravem em uma ou mais memórias associadas de uma maneira coerente, consistente e única. Mais particularmente, uma interconexão CCVI pode ser empregada a fim de conectar diversos dispositivos do sistema, tais como a CPU e/ou GPU ou híbrido de CPU/GPU, FPGA e/ou memórias associadas, etc. uns aos outros, tais como de uma maneira de largura de banda alta que é configurada para aumentar as taxas de transferência entre os diversos componentes, enquanto que evidencia taxas de latência extremamente reduzidas. Especificamente, uma interconexão CCVI pode ser empregada e configurada para permitir que componentes do sistema acessem e processem dados independentemente de onde os dados residem, e sem a necessidade de ambientes de programação complexos que de outro modo precisariam ser implantados para tornar os dados coerentes. Outras tais interconexões que podem ser empregadas a fim de acelerar, por exemplo, diminuir, o tempo de processamento e aumentar a precisão incluem QPI, CAPI, NVLink ou outra interconexão que possa ser configurada para interconectar os diversos componentes do sistema e/ou ficar no topo de uma interconexão periférica PCI expressa associada.[0884] Particularly, in particular embodiments, such heterogeneous computing may involve a multiplicity of processing and/or acceleration architectures that may be interconnected in a reduced instruction set computing format. In such a case, such an interconnect device may be a six coherent connection interconnect (CCVI) device, which is configured to allow all computing components within the system to address, read from, and/or write to one or more associated memories in a coherent, consistent, and unique manner. More particularly, a CCVI interconnect may be employed to connect multiple system devices, such as the CPU and/or GPU or CPU/GPU hybrid, FPGA and/or associated memories, etc. to each other, such as in a high bandwidth manner that is configured to increase transfer rates between the multiple components while evidencing greatly reduced latency rates. Specifically, a CCVI interconnect may be employed and configured to allow system components to access and process data regardless of where the data resides, and without the need for complex programming environments that would otherwise need to be implemented to make the data coherent. Other such interconnects that may be employed in order to speed up, e.g., decrease, processing time and increase accuracy include QPI, CAPI, NVLink, or other interconnect that may be configured to interconnect the various system components and/or sit on top of an associated PCI Express peripheral interconnect.

[0885] Logo, de acordo com um modelo de fluxo de dados alternativo consistente com as implantações descritas no presente documento, a CPU hospedeira 1000 transmite de modo contínuo dados para a memória externa 1014, diretamente por meio de mecanismos de DMA 110 e da barra cruzada 108 ou por meio do controlador central 112. A CPU hospedeira 1000 envia comandos ao controlador central 112, o qual envia comandos aos mecanismos de processamento 13, os quais instruem os mecanismos de processamento sobre quais dados se deve processar. Devido ao acoplamento firme, os mecanismos de processamento 13 acessam dados de entrada diretamente a partir da memória externa 1014 ou uma memória cache associada à mesma, processam os mesmos e gravam os resultados de volta na memória externa 1014, tal como sobre a interconexão acoplada firmemente 3, relatando a situação para o controlador central 112. O controlador central 112 transmite de forma contínua os dados de resultado de volta para o hospedeiro 1000 a partir da memória externa 1014 ou notifica o hospedeiro para que o próprio busque os dados de resultado por meio dos mecanismos de DMA 110.[0885] Thus, in accordance with an alternative data flow model consistent with the implementations described herein, host CPU 1000 continuously transmits data to external memory 1014, either directly via DMA engines 110 and crossbar 108 or via central controller 112. Host CPU 1000 sends commands to central controller 112, which sends commands to processing engines 13, which instruct the processing engines what data to process. Due to the tight coupling, the processing engines 13 access input data directly from the external memory 1014 or a cache memory associated therewith, process it, and write the results back to the external memory 1014, such as over the tightly coupled interconnect 3, reporting the situation to the central controller 112. The central controller 112 either continuously transmits the result data back to the host 1000 from the external memory 1014 or notifies the host to itself fetch the result data via the DMA engines 110.

[0886] Figura 46 ilustra um sistema e processador de segmentação genômica 20, que mostra um complemento total de mecanismos de processamento 13 dentro de um agrupamento de mecanismo 11/214. O sistema de processador de segmentação 20 pode incluir um ou mais agrupamentos de mecanismo 11/214. Em algumas implantações, o sistema de processador de segmentação 20 inclui quatro ou mais agrupamentos de mecanismo 11/214. Os mecanismos de processamento 13 ou os tipos de mecanismo de processamento podem incluir, sem limitação, um mapeador, um alinhador, um classificador, um realinhador local, um recalibrador de qualidade de base, um marcador duplicado, um chamador de variante, um compressor e/ou um descompressor. Em algumas implantações, cada agrupamento de mecanismo 11/214 tem um de cada tipo de mecanismo de processamento. Consequentemente, todos os mecanismos de processamento 13 do mesmo tipo podem acessar a barra cruzada 208 simultaneamente, através de portas de barra cruzada diferentes, devido ao fato de que os mesmos estão, cada um, em um agrupamento de mecanismo diferente 11/214. Nem todo tipo de mecanismo de processamento precisa ser realizado em todo agrupamento de mecanismo 11/214. Os tipos de mecanismo de processamento que exigem processamento paralelo ou largura de banda de memória massivos, tal como o mapeador (e o alinhador (ou alinhadores) fixado) e o classificador, podem aparecer em todo agrupamento de mecanismo do sistema de processador de segmentação 20. Outros tipos de mecanismo podem aparecer em apenas um ou em alguns dos agrupamentos de mecanismo 214, conforme necessário para satisfazer suas exigências de desempenho ou as exigências de desempenho do sistema de processador de segmentação 20.[0886] Figure 46 illustrates a genomic segmentation system and processor 20, showing a full complement of processing engines 13 within an engine cluster 11/214. Segmentation processor system 20 may include one or more engine clusters 11/214. In some implementations, segmentation processor system 20 includes four or more engine clusters 11/214. Processing engines 13 or processing engine types may include, without limitation, a mapper, an aligner, a classifier, a local realigner, a base quality recalibrator, a duplicate marker, a variant caller, a compressor, and/or a decompressor. In some implementations, each engine cluster 11/214 has one of each processing engine type. Accordingly, all processing engines 13 of the same type may access crossbar 208 simultaneously, through different crossbar ports, because they are each in a different engine cluster 11/214. Not every processing engine type need be realized in every engine cluster 11/214. Processing engine types that require massive parallel processing or memory bandwidth, such as the mapper (and attached aligner(s)) and the sorter, may appear in every engine cluster of the segmentation processor system 20. Other engine types may appear in only one or some of the engine clusters 214, as needed to satisfy their performance requirements or the performance requirements of the segmentation processor system 20.

[0887] Figura 47 ilustra um sistema de processador de segmentação genômica 30 que mostra, além dos agrupamentos de mecanismo 11 descritos acima, uma ou mais unidades de processamento central (CPUs) embutidas 302. Os exemplos de tais CPUs embutidas incluem Snapdragons® ou núcleos ARM® padrão, ou em outros casos, podem ser um FPGA. Essas CPUs executam algoritmos bio-IT completamente programáveis, tais como chamada de variante avançada, tal como a construção de um DBG ou a realização de um HMM. Tal processamento é acelerado computando-se funções nos vários agrupamentos de mecanismo 11, os quais podem ser chamados pelos núcleos de CPU 302 conforme necessário. Adicionalmente, processamento central de mecanismo uniforme, tal como mapeamento e alinhamento, pode ser gerenciado pelos núcleos de CPU 302, dando aos mesmos programabilidade aumentada.[0887] Figure 47 illustrates a genomic segmentation processor system 30 showing, in addition to the engine clusters 11 described above, one or more embedded central processing units (CPUs) 302. Examples of such embedded CPUs include standard Snapdragons® or ARM® cores, or in other cases, may be an FPGA. These CPUs execute fully programmable bio-IT algorithms, such as advanced variant calling, such as constructing a DBG or performing an HMM. Such processing is accelerated by computing functions in the various engine clusters 11, which may be called by CPU cores 302 as needed. Additionally, uniform engine central processing, such as mapping and alignment, may be managed by CPU cores 302, giving them increased programmability.

[0888] Figura 48 ilustra um fluxo de processamento para um sistema e um método de processador de segmentação genômica. Em algumas implantações preferenciais, existem três passagens através dos dados. A primeira passagem inclui mapeamento 402 e alinhamento 404, com o conjunto de leituras completo transmitido de modo contínuo através dos mecanismos 13. A segunda passagem inclui classificação 406, em que um bloco grande a ser classificado (por exemplo, uma porção substancial ou todas as leituras anteriormente mapeadas para um único cromossomo) é carregado na memória, classificado pelos mecanismos de processamento e retornado para o hospedeiro. A terceira passagem inclui estágios a jusante (realinhamento local 408, marcação de duplicada 410, recalibração de pontuação de qualidade de base (BQSR) 412, saída de SAM 414, saída de BAM reduzida 416 e/ou compressão de CRAM 418). As etapas e as funções da terceira passagem podem ser feitas em qualquer combinação ou subcombinação, e em qualquer ordem, em uma única passagem.[0888] Figure 48 illustrates a processing flow for a genomic segmentation processor system and method. In some preferred implementations, there are three passes through the data. The first pass includes mapping 402 and alignment 404, with the complete read set streamed continuously through engines 13. The second pass includes classification 406, in which a large block to be classified (e.g., a substantial portion or all of the reads previously mapped to a single chromosome) is loaded into memory, classified by the processing engines, and returned to the host. The third pass includes downstream stages (local realignment 408, duplicate flagging 410, base quality score recalibration (BQSR) 412, SAM output 414, reduced BAM output 416, and/or CRAM compression 418). The steps and functions of the third pass may be done in any combination or subcombination, and in any order, in a single pass.

[0889] Logo, dessa maneira, os dados são passados de modo relativamente contínuo a partir do um ou mais mecanismos de processamento para a CPU hospedeira, tal como de acordo com uma ou mais metodologias descritas no presente documento. Logo, uma arquitetura de segmentação virtual, tal como conforme descrito acima, é usada para transmitir de modo contínuo leituras do hospedeiro para armazenamentos temporários circulares na memória, através de um mecanismo de processamento após outro na sequência, e de volta para o hospedeiro. Em algumas implantações, a descompressão de CRAM pode ser uma função de transmissão contínua separada. Em algumas implantações, a saída de SAM 414, a saída de BAM reduzida 416 e/ou a compressão de CRAM 418 pode ser substituída com chamada de variante, compressão e descompressão.[0889] Thus, in this manner, data is passed in a relatively continuous fashion from the one or more processing engines to the host CPU, such as in accordance with one or more methodologies described herein. Thus, a virtual segmentation architecture, such as as described above, is used to continuously stream reads from the host to circular buffers in memory, through one processing engine after another in sequence, and back to the host. In some implementations, CRAM decompression may be a separate streaming function. In some implementations, SAM output 414, reduced BAM output 416, and/or CRAM compression 418 may be replaced with variant call, compression, and decompression.

[0890] Em diversos casos, uma implantação de hardware de uma segmentação de análise de sequência é descrita. Isso pode ser feito de diversas formas diferentes, tal como em uma implantação de FPGA ou ASIC ou ASIC estruturado. Os blocos funcionais que são implantados pelo FPGA ou pelo ASIC ou pelo ASIC estruturado são apresentados na Figura 49, Consequentemente, o sistema inclui diversos blocos ou módulos para fazer a análise de sequência. A entrada para a realização de hardware pode ser um arquivo de FASTQ, mas não é limitada a esse formato. Além do arquivo de FASTQ, a entrada ao FPGA ou ao ASIC ou ao ASIC estruturado consiste em informações secundárias, tais como Informações de Espaço de Fluxo da tecnologia, tal como do NGS. Os blocos ou módulos podem incluir os seguintes blocos: Controle de Erro, Mapeamento, Alinhamento, Classificação, Realinhamento Local, Marcação de Duplicado, Recalibração de Qualidade de Base, redução de Informações de BAM e Secundárias e/ou chamada de variante.[0890] In many cases, a hardware implementation of a sequence analysis segment is described. This can be done in many different ways, such as in an FPGA or ASIC or structured ASIC implementation. The functional blocks that are implemented by the FPGA or ASIC or structured ASIC are shown in Figure 49. Accordingly, the system includes several blocks or modules to perform sequence analysis. The input to the hardware implementation can be a FASTQ file, but is not limited to that format. In addition to the FASTQ file, the input to the FPGA or ASIC or structured ASIC consists of secondary information, such as Flow Space Information from the technology, such as from NGS. The blocks or modules can include the following blocks: Error Control, Mapping, Alignment, Classification, Local Realignment, Duplicate Marking, Base Quality Recalibration, BAM and Secondary Information reduction, and/or variant calling.

[0891] Esses blocos ou módulos podem ser apresentados dentro, ou implantados por, do hardware, mas alguns desses blocos podem ser omitidos ou outros blocos adicionados para alcançar o propósito de realizar uma segmentação de análise de sequência. Os Blocos 2 e 3 descrevem duas alternativas da plataforma de segmentação de análise de sequência. A plataforma de segmentação de análise de sequência que compreende um FPGA ou um ASIC ou um ASIC estruturado e software auxiliado por um hospedeiro (por exemplo, PC, servidor, agrupamento ou computação em nuvem) com armazenamento em nuvem e/ou agrupamento. Os Blocos 4 a 7 descrevem interfaces diferentes que a segmentação de análise de sequência pode ter. Nos Blocos 4 e 6, a interface pode ser uma interface de PCIe e/ou interface de QPI/CAPI/CCVI/NVLink, mas não é limitada a uma interface de PCIe, QPI ou outra interface. Nos Blocos 5 e 7, o hardware (FPGA ou ASIC ou ASIC estruturado) pode ser diretamente integrado em uma máquina de sequenciamento. Os blocos 8 e 9 descrevem a integração da segmentação de análise de sequência em hardware integrada em um sistema hospedeiro, tal como um PC, um agrupamento de servidor ou um sequenciador. Uma pluralidade de elementos de memória DDR3 e uma interface de PCIe/QPI/CAPI/CCVI/NVLink está cercando o FPGA ou o ASIC ou o ASIC estruturado em hardware. A placa com o FPGA/ASIC/sASIC se conecta a um computador hospedeiro, que consiste em uma CPU e/ou GPU hospedeira, que pode ser uma CPU de baixa potência, tal como um ARM®, Snapdragon®, ou qualquer outro processador. O bloco 10 ilustra uma API de segmentação de análise de sequência em hardware que pode ser acessada por aplicações de terceiros para realizar análise terciária.[0891] These blocks or modules may be present within, or implemented by, the hardware, but some of these blocks may be omitted or other blocks added to achieve the purpose of performing a sequence analysis segmentation. Blocks 2 and 3 describe two alternatives of the sequence analysis segmentation platform. The sequence analysis segmentation platform comprising an FPGA or an ASIC or a structured ASIC and software supported by a host (e.g., PC, server, cluster or cloud computing) with cloud storage and/or cluster. Blocks 4 through 7 describe different interfaces that the sequence analysis segmentation may have. In Blocks 4 and 6, the interface may be a PCIe interface and/or QPI/CAPI/CCVI/NVLink interface, but is not limited to a PCIe, QPI or other interface. In Blocks 5 and 7, the hardware (FPGA or ASIC or structured ASIC) may be directly integrated into a sequencing machine. Blocks 8 and 9 describe the integration of hardware sequence analysis segmentation embedded in a host system, such as a PC, a server cluster, or a sequencer. A plurality of DDR3 memory elements and a PCIe/QPI/CAPI/CCVI/NVLink interface surround the FPGA or ASIC or hardware-structured ASIC. The board with the FPGA/ASIC/sASIC connects to a host computer, which consists of a host CPU and/or GPU, which may be a low-power CPU, such as an ARM®, Snapdragon®, or any other processor. Block 10 illustrates a hardware sequence analysis segmentation API that can be accessed by third-party applications to perform tertiary analysis.

[0892] A Figura 50A e 50B representam um cartão de expansão 104 que tem um chip de processamento 100, por exemplo, um FPGA, da revelação, bem como um ou mais elementos associados 105 para acoplar o FPGA 100 com a CPU/GPU hospedeira, como para a transferência de dados, tais como dados a serem processados e dados de resultado, para trás e para frente a partir da CPU/GPU para o FPGA 100. A Figura 50B representa o cartão de expansão da Figura 50A que tem uma pluralidade, por exemplo, 3, de fendas que contêm uma pluralidade, por exemplo, 3, de chips de processamento da revelação.[0892] Figures 50A and 50B depict an expansion card 104 having a processing chip 100, e.g., an FPGA, of the disclosure, as well as one or more associated elements 105 for coupling the FPGA 100 with the host CPU/GPU, such as for transferring data, such as data to be processed and result data, back and forth from the CPU/GPU to the FPGA 100. Figures 50B depict the expansion card of Figure 50A having a plurality, e.g., 3, of slots containing a plurality, e.g., 3, of processing chips of the disclosure.

[0893] Especificamente, conforme representado nas Figuras 50A e 50B, em várias modalidades, um aparelho da revelação pode incluir uma arquitetura de computação, tal como embutida em um arranjo de portas programáveis por campo de silício (FPGA) ou circuito integrado para aplicação específica (ASIC) 100. O FPGA 100 pode ser integrado em uma placa de circuitos impressa (PCB) 104, tal como um cartão de Interface de Componente Periférica - Expressa (PCIe), a qual pode ser conectada em uma plataforma de computação. Em diversos casos, conforme mostrado na Figura 50A, o cartão de PCIe 104 pode incluir um único FPGA 100, em que o FPGA pode ser cercado por memórias locais 105, entretanto, em diversas modalidades, conforme representado na Figura 50B, o cartão de PCIe 104 pode incluir uma pluralidade de FPGAs 100A, 100B e 100C. Em diversos casos, o cartão de PCI também pode incluir um barramento de PCIe. Esse cartão de PCIe 104 pode ser adicionado a uma plataforma de computação para executar algoritmos em conjuntos de dados extremamente grandes. Em uma modalidade alternativa, conforme observado acima em relação à Figura 34, em várias modalidades, o FPGA pode ser adaptado para ser diretamente associado à CPU/GPU, tal como através de um interpolador, e firmemente acoplado à mesma, tal como através de uma interface QPI, CAPI, CCVI. Consequentemente, em diversos casos, o fluxo de trabalho geral de sequenciamento genômico que envolve o FPGA pode incluir o seguinte: Preparação de amostra, Alinhamento (incluindo mapeamento e alinhamento), Análise de variante, Interpretação Biológica e/ou Aplicações Específicas.[0893] Specifically, as depicted in Figures 50A and 50B, in various embodiments, an apparatus of the disclosure may include a computing architecture, such as embedded in a silicon field-programmable gate array (FPGA) or application-specific integrated circuit (ASIC) 100. The FPGA 100 may be integrated onto a printed circuit board (PCB) 104, such as a Peripheral Component Interface - Express (PCIe) card, which may be connected to a computing platform. In various cases, as shown in Figure 50A, the PCIe card 104 may include a single FPGA 100, wherein the FPGA may be surrounded by local memories 105, however, in various embodiments, as depicted in Figure 50B, the PCIe card 104 may include a plurality of FPGAs 100A, 100B, and 100C. In various instances, the PCI card may also include a PCIe bus. This PCIe card 104 may be added to a computing platform to execute algorithms on extremely large data sets. In an alternative embodiment, as noted above with respect to Figure 34, in various embodiments, the FPGA may be adapted to be directly associated with the CPU/GPU, such as through an interpolator, and tightly coupled thereto, such as through a QPI, CAPI, CCVI interface. Accordingly, in various instances, the overall genomic sequencing workflow involving the FPGA may include the following: Sample Preparation, Alignment (including mapping and alignment), Variant Analysis, Biological Interpretation, and/or Specific Applications.

[0894] Logo, em diversas modalidades, um aparelho da revelação pode incluir uma arquitetura de computação que alcança a execução de alto desempenho de algoritmos, tal como algoritmos de mapeamento e alinhamento, que operam em conjuntos de dados extremamente grandes, tais como quando os conjuntos de dados exibem localidade ruim de referência (LOR). Esses algoritmos são projetados para reconstruir um genoma completo a partir de milhões de sequências de leitura curtas, a partir de sequenciadores modernos chamados de nova geração, que exigem estruturas de dados de múltiplos gigabytes que são aleatoriamente acessados. Uma vez que a reconstrução é alcançada, conforme descrito no presente documento acima, algoritmos adicionais com características semelhantes são usados para comparar um genoma com bibliotecas de outros, fazer análise de função genética, etc.[0894] Thus, in various embodiments, an apparatus of the disclosure may include a computing architecture that achieves high-performance execution of algorithms, such as mapping and alignment algorithms, that operate on extremely large data sets, such as when the data sets exhibit poor locality of reference (LOR). These algorithms are designed to reconstruct a complete genome from millions of short-read sequences, from modern so-called next-generation sequencers, which require multi-gigabyte data structures that are randomly accessed. Once reconstruction is achieved, as described herein above, additional algorithms with similar characteristics are used to compare a genome to libraries of others, perform gene function analysis, etc.

[0895] Existem duas outras arquiteturas típicas que, em geral, podem ser construídas para a realização de uma ou mais operações no presente documento descritas em detalhe, como incluindo CPUs de propósito de núcleo múltiplo e unidades de processamento gráfico de propósito geral (GPGPUs). Em tal caso, cada CPU/GPU em um sistema de múltiplos núcleos pode ter uma arquitetura baseada em cache clássica, em que as instruções e os dados são buscados a partir de um cache de nível 1 (cache de L1) que é pequeno, mas tem acesso extremamente rápido. Múltiplos caches L1 podem ser conectados a um cache de L2 maior, mas mais lento, compartilhado. O cache de L2 pode ser conectado a uma memória de sistema DRAM (Memória de Acesso Aleatório Dinâmico) grande, mas mais lenta, ou pode ser conectado a um cache de L3 ainda maior, mas mais lento, o qual pode, então, ser conectado à DRAM. Uma vantagem dessa disposição pode ser que aplicações em que programas e dados exibem localidade de referência se comportam quase como se os mesmos estivessem sendo executados em um computador com uma única memória tão grande quanto a DRAM, mas tão rápida quanto o cache de L1. Devido ao fato de que CPUs altamente otimizadas completamente personalizadas operam em taxas de relógio muito altas, por exemplo, 2 a 4 GHz, essa arquitetura pode ser essencial para alcançar bom desempenho. Adicionalmente, conforme discutido em detalhes em relação à Figura 33, em várias modalidades, a CPU pode ser firmemente acoplada a um FPGA, tal como um FPGA configurado para executar uma ou mais funções relacionadas às diversas operações descritas no presente documento, tal como através de uma interconexão de latência baixa e largura de banda alta como uma QPI, CCVI, CAPI, a fim de intensificar ainda mais o desempenho, bem como a velocidade e coerência dos dados transferidos por todo o sistema. Em tal caso, a coerência de cache pode ser mantida entre os dois dispositivos, conforme observado acima.[0895] There are two other typical architectures that can generally be constructed to perform one or more of the operations described in detail herein, such as including multi-core purpose CPUs and general-purpose graphics processing units (GPGPUs). In such a case, each CPU/GPU in a multi-core system can have a classic cache-based architecture, where instructions and data are fetched from a level 1 cache (L1 cache) that is small but has extremely fast access. Multiple L1 caches can be connected to a larger but slower shared L2 cache. The L2 cache can be connected to a large but slower DRAM (Dynamic Random Access Memory) system memory, or it can be connected to an even larger but slower L3 cache, which can then be connected to DRAM. One advantage of this arrangement may be that applications in which programs and data exhibit locality of reference behave almost as if they were running on a computer with a single memory as large as DRAM but as fast as L1 cache. Because fully custom, highly optimized CPUs operate at very high clock rates, e.g., 2 to 4 GHz, this architecture may be essential to achieving good performance. Additionally, as discussed in detail with respect to Figure 33, in various embodiments, the CPU may be tightly coupled to an FPGA, such as an FPGA configured to perform one or more functions related to the various operations described herein, such as through a low latency, high bandwidth interconnect such as a QPI, CCVI, CAPI, in order to further enhance performance as well as the speed and coherence of data transferred throughout the system. In such a case, cache coherence may be maintained between the two devices, as noted above.

[0896] Adicionalmente, as GPGPUs podem ser empregadas para estender essa arquitetura, tal como implantando-se números muito grandes de CPUs pequenas, cada um com seu próprio cache pequeno L1, em que cada CPU executa as mesmas instruções em subconjuntos diferentes dos dados. Isso é uma arquitetura chamada SIMD (Corrente de Instrução Única, Corrente de Múltiplos Dados). A economia pode ser ganha compartilhando-se a lógica de busca e decodificação de instrução através de um grande número de CPUs. Cada cache tem acesso a múltiplas DRAMs externas grandes por meio de uma rede de interconexão. Supondo que a computação a ser realizada é altamente paralelizável, as GPGPUs têm uma vantagem significativa sobre as CPUs de propósito geral devido a terem grandes números de recursos de computação. Contudo, as mesmas ainda têm uma arquitetura de cache e seu desempenho é prejudicado por aplicações que não têm um grau alto o suficiente de localidade de referência. Isso leva a uma taxa de perda de cache alta e processadores que estão ociosos enquanto esperam que os dados cheguem da DRAM externa.[0896] Additionally, GPGPUs can be used to extend this architecture, such as by deploying very large numbers of small CPUs, each with its own small L1 cache, where each CPU executes the same instructions on different subsets of the data. This is an architecture called SIMD (Single Instruction Stream, Multiple Data Stream). Economy can be gained by sharing the instruction fetch and decode logic across a large number of CPUs. Each cache has access to multiple large external DRAMs via an interconnect network. Assuming that the computation to be performed is highly parallelizable, GPGPUs have a significant advantage over general-purpose CPUs due to having large numbers of computing resources. However, they still have a cache architecture and their performance suffers for applications that do not have a high enough degree of locality of reference. This leads to a high cache miss rate and processors that are idle while waiting for data to arrive from the external DRAM.

[0897] Por exemplo, em diversos casos, RAMs Dinâmicas podem ser usadas para memória de sistema devido ao fato de que as mesmas são mais econômicas do que RAMs Estáticas (SRAM). A regra de elevador costumava ser que DRAMs tinham 4x a capacidade pelo mesmo custo que as SRAMs. Entretanto, devido à demanda decrescente por SRAMs a favor de DRAMs, essa diferença aumentou consideravelmente devido às economias de escala que favorecem DRAMs, as quais estão em alta demanda. Independentemente do custo, as DRAMs são 4x mais densas que as SRAMs colocadas na mesma área de silício devido ao fato de que as mesmas exigem apenas um transistor e um capacitor por bit em comparação com 4 transistores por bit para implantar o flip-flop da SRAM. A DRAM representa um único bit de informações como a presença ou a ausência de carga em um capacitor.[0897] For example, in many cases, Dynamic RAMs can be used for system memory because they are less expensive than Static RAMs (SRAMs). The elevator rule used to be that DRAMs had 4x the capacity for the same cost as SRAMs. However, due to the decreasing demand for SRAMs in favor of DRAMs, this difference has increased considerably due to economies of scale favoring DRAMs, which are in high demand. Regardless of cost, DRAMs are 4x denser than SRAMs placed on the same silicon area because they require only one transistor and one capacitor per bit compared to 4 transistors per bit to implement the SRAM flip-flop. DRAM represents a single bit of information such as the presence or absence of charge on a capacitor.

[0898] Um problema com essa disposição é que a carga decai ao longo do tempo, então a mesma tem que ser atualizada periodicamente. A necessidade de fazer isso levou a arquiteturas que organizam a memória em blocos independentes e acessar mecanismos que entregam múltiplas palavras de memória por solicitação. Isso compensa as vezes em que um dado bloco está indisponível enquanto é atualizado. A ideia é mover muitos dos dados enquanto um dado bloco está disponível. Isso é em contraste com SRAMs nas quais qualquer local na memória está disponível em um único acesso em uma quantidade constante de tempo. Essa característica permite que os acessos de memória sejam orientados por uma única palavra em vez de orientados por bloco. As DRAMs funcionam bem em uma arquitetura de cache devido ao fato de que cada cache se desorienta para um bloco de memória que é lido a partir da DRAM. A teoria de localidade de referência é que se a mesma acessou há pouco tempo a palavra N, então, a mesma acessará provavelmente as palavras N+1, N+2, N+3 e assim por diante.[0898] One problem with this arrangement is that the load decays over time, so it has to be refreshed periodically. The need to do this has led to architectures that organize memory into independent blocks and access mechanisms that deliver multiple words of memory per request. This compensates for the times when a given block is unavailable while it is being refreshed. The idea is to move as much of the data as possible while a given block is available. This is in contrast to SRAMs in which any location in memory is available in a single access in a constant amount of time. This characteristic allows memory accesses to be single-word oriented rather than block oriented. DRAMs work well in a cache architecture because each cache is redirected to a block of memory that is read from the DRAM. The theory of locality of reference is that if it recently accessed word N, then it will probably access words N+1, N+2, N+3, and so on.

[0899] A Figura 51 fornece uma implantação exemplificadora de um sistema 500 da revelação, incluindo um ou mais cartões de expansão da Figura 50, tal como para processamento de bioinformática 10. O sistema inclui um chip de processamento Bio IT 100 que é configurado para realizar uma ou mais funções em uma segmentação de processamento, tal como uma chamada de base, correção de erro, mapeamento, alinhamento, classificação, montagem, chamada de variante e similares, conforme descrito no presente documento.[0899] Figure 51 provides an exemplary implementation of a system 500 of the disclosure including one or more expansion cards of Figure 50, such as for bioinformatics processing 10. The system includes a Bio IT processing chip 100 that is configured to perform one or more functions in a processing pipeline, such as base calling, error correction, mapping, alignment, classification, assembly, variant calling, and the like, as described herein.

[0900] O sistema 500 inclui adicionalmente um gerenciador de configurações que é adaptado para configurar o funcionamento integrado do um ou mais processadores 100. Especificamente, em várias modalidades, o gerenciador de configurações é adaptado para comunicar instruções para o controlador interno do FPGA, por exemplo, firmware, tal como por meio de um driver adequadamente configurado em uma interconexão solta ou acoplada firmemente, a fim de configurar a uma ou mais funções de processamento do sistema 500. Por exemplo, o gerenciador de configurações pode ser adaptado para configurar os agrupamentos de processamento internos 11 e/ou mecanismos 13 associados ao mesmo, a fim de realizar uma ou mais operações desejadas, tais como mapeamento, alinhamento, classificação, chamada de variante, e similares, de acordo com as instruções recebidas. De tal maneira, apenas os agrupamentos 11 que contêm os mecanismos de processamento 13 para realizar as operações de processamento solicitadas nos dados fornecidos a partir do sistema hospedeiro 1000 para o chip 100 podem ser envolvidas para processar os dados de acordo com as instruções recebidas.[0900] The system 500 further includes a configuration manager that is adapted to configure the integrated operation of the one or more processors 100. Specifically, in various embodiments, the configuration manager is adapted to communicate instructions to the internal controller of the FPGA, e.g., firmware, such as via a suitably configured driver in a loose or tightly coupled interconnect, in order to configure the one or more processing functions of the system 500. For example, the configuration manager may be adapted to configure the internal processing clusters 11 and/or engines 13 associated therewith in order to perform one or more desired operations, such as mapping, alignment, classification, variant calling, and the like, in accordance with received instructions. In such a manner, only the clusters 11 that contain the processing engines 13 to perform the requested processing operations on the data provided from the host system 1000 to the chip 100 may be engaged to process the data in accordance with the received instructions.

[0901] Adicionalmente, em várias modalidades, o gerenciador de configurações pode ser adicionalmente adaptado a fim que seja adaptado por si mesmo, por exemplo, remotamente, por um usuário de terceiros, tal como em uma conexão de API, conforme descrito em maiores detalhes no presente documento acima, tal como por uma interface de usuário (GUI) apresentada por um aplicativo do sistema 500. Adicionalmente, o gerenciador de configurações pode ser conectado a uma ou mais memórias externas, tais como uma memória que forma ou de outro contém um banco de dados, tal como um banco de dados que inclui um ou mais genomas de referência ou individualmente sequenciados e/ou um índice dos mesmos e/ou um ou mais genomas anteriormente mapeados, alinhados e/ou classificados ou porções dos mesmos. Em vários casos, o banco de dados pode incluir adicionalmente um ou mais perfis genéticos que caracterizam um estado doentio, tal como para a realização de um ou mais protocolos de processamento terciário, como sob sequências genéticas alinhadas e recém-mapeadas ou um VCF que pertence às mesmas.[0901] Additionally, in various embodiments, the configuration manager may be further adapted so that it can be adapted by itself, e.g., remotely, by a third-party user, such as in an API connection as described in greater detail herein above, such as by a user interface (GUI) presented by an application of the system 500. Additionally, the configuration manager may be connected to one or more external memories, such as a memory that forms or otherwise contains a database, such as a database that includes one or more reference or individually sequenced genomes and/or an index thereof and/or one or more previously mapped, aligned, and/or classified genomes or portions thereof. In various cases, the database may further include one or more genetic profiles that characterize a disease state, such as for performing one or more tertiary processing protocols, such as on aligned and newly mapped genetic sequences or a VCF pertaining thereto.

[0902] O sistema 500 também pode incluir um acesso à base da Web a fim de permitir comunicações remotas como através da Internet, para formar uma nuvem ou pelo menos uma plataforma de comunicações de nuvem híbrida 504. De tal maneira, as informações processadas geradas a partir do processador Bio IT, por exemplo, dados de resultados, podem ser criptografadas e armazenadas como um registro de saúde eletrônico, tal como em um banco de dados externo, por exemplo, remoto. Em vários casos, o banco de dados EMR pode ser passível de pesquisa, como em relação às informações genéticas armazenadas no mesmo, a fim de realizar uma ou mais análises estatísticas nos dados, como para determinar tendências ou estados doentios ou com a finalidade de analisar a eficácia de uma ou mais profilaxias ou tratamentos que pertencem as mesmas. Tais informações juntamente com os dados de EMR podem ser, então, adicionalmente processados e/ou armazenados em um banco de dados adicional 508 de uma maneira que garante a confidencialidade da fonte das informações genéticas.[0902] The system 500 may also include a web-based access to enable remote communications such as over the Internet, to form a cloud or at least one hybrid cloud communications platform 504. In such a manner, processed information generated from the Bio IT processor, e.g., results data, may be encrypted and stored as an electronic health record, such as in an external, e.g., remote, database. In various cases, the EMR database may be searchable, such as with respect to genetic information stored therein, in order to perform one or more statistical analyses on the data, such as to determine trends or disease states or for the purpose of analyzing the effectiveness of one or more prophylaxis or treatments pertaining thereto. Such information together with the EMR data may then be further processed and/or stored in an additional database 508 in a manner that ensures confidentiality of the source of the genetic information.

[0903] Mais particularmente, a Figura 51 ilustra um sistema 500 para executar uma segmentação de análise de sequência nos dados de sequência genética. O sistema 500 inclui um gerenciador de configuração 502 que inclui um sistema de computação. O sistema de computação do gerenciador de configuração 502 pode incluir um computador pessoal ou outra estação de trabalho de computador ou pode ser implantado por um pacote de computadores em rede. O gerenciador de configuração 502 pode incluir adicionalmente uma ou mais aplicações de terceiros conectadas ao sistema de computação por uma ou mais APIs, as quais, com uma ou mais aplicações proprietárias, geram uma configuração para processar dados genômicos a partir de um sequenciador ou de outra fonte de dados genômicos. O gerenciador de configuração 502 inclui adicionalmente drivers que carregam a configuração no sistema de processador de segmentação genômica 10. O sistema de processador de segmentação genômica 10 pode emitir dados de resultado para, ou ser acesso por meio da, a Web 504 ou outra rede, para armazenamento dos dados de resultado em um registro de saúde eletrônico 506 ou outro banco de dados de conhecimento 508.[0903] More particularly, Figure 51 illustrates a system 500 for performing a segmentation sequence analysis on genetic sequence data. The system 500 includes a configuration manager 502 that includes a computing system. The computing system of the configuration manager 502 may include a personal computer or other computer workstation or may be implemented by a networked computer cluster. The configuration manager 502 may further include one or more third party applications connected to the computing system by one or more APIs, which, with one or more proprietary applications, generate a configuration for processing genomic data from a sequencer or other genomic data source. The configuration manager 502 further includes drivers that load the configuration into the genomic segmentation processor system 10. The genomic segmentation processor system 10 may output result data to, or be accessed through, the Web 504 or other network, for storage of the result data in an electronic health record 506 or other knowledge database 508.

[0904] Conforme discutido em diversos momentos no presente documento acima, o chip que implanta o processador de segmentação genômica pode ser conectado ou integrado em um sequenciador. O chip também pode ser conectado ou integrado, por exemplo, diretamente por meio de um interpolador ou indiretamente, por exemplo, em um cartão de expansão, tal como por meio de um PCIe, e o cartão de expansão pode ser conectado ou integrado em um sequenciador. Em outras implantações, o chip pode ser conectado ou integrado em um computador com servidor que é conectado a um sequenciador, para transferir leituras genômicas do sequenciador para o servidor. Em ainda outras implantações, o chip pode ser conectado ou integrado em um servidor em um agrupamento de computação em nuvem de computadores e servidores. Um sistema pode incluir um ou mais sequenciadores conectados (por exemplo, por meio de Ethernet) a um servidor que contém o chip, em que leituras genômicas são geradas pelos múltiplos sequenciadores, transmitidas para o servidor e, então, mapeadas e alinhadas no chip.[0904] As discussed at various points in this document above, the chip implementing the genomic segmentation processor may be connected to or integrated with a sequencer. The chip may also be connected to or integrated, e.g., directly via an interpolator or indirectly, e.g., with an expansion card, such as via PCIe, and the expansion card may be connected to or integrated with a sequencer. In other implementations, the chip may be connected to or integrated with a server computer that is connected to a sequencer, to transfer genomic reads from the sequencer to the server. In still other implementations, the chip may be connected to or integrated with a server in a cloud computing cluster of computers and servers. A system may include one or more sequencers connected (e.g., via Ethernet) to a server containing the chip, where genomic reads are generated by the multiple sequencers, transmitted to the server, and then mapped and aligned on the chip.

[0905] Por exemplo, em tubulações de dados de sequenciador de DNA de nova geração (NGS) gerais, o processamento do estágio de análise primária é geralmente específico para uma dada tecnologia de sequenciamento. Esse estágio de análise primária funciona para traduzir sinais físicos detectados dentro do sequenciador em “leituras” de sequências de nucleotídeos com pontuações de qualidade (confiança) associadas, por exemplo, arquivos de formato FASTQ, ou outros formatos que contêm informações de sequência e normalmente qualidade. A análise primária, conforme mencionado acima, tem normalmente natureza bastante específica para a tecnologia de sequenciamento empregada. Em diversos sequenciadores, nucleotídeos são detectados percebendo-se alterações em fluorescência e/ou cargas elétricas, correntes elétricas ou luz radiada. Algumas tubulações de análise primária incluem normalmente: O processamento de sinal para amplificar, filtrar, separar e medir saída de sensor; Redução de dados, tal como por meio de quantização, decimação, ponderação, transformação, etc.; Processamento de imagem ou processamento numérico para identificar e aprimorar sinais significativos e associar os mesmos a leituras e nucleotídeos específicos (por exemplo, cálculo de desvio de imagem, identificação de agrupamento); Processamento algorítmico e aritmética heurística para compensar os artefatos de tecnologia de sequenciamento (por exemplo, estimativas de faseamento, matrizes de diafonia); Cálculos de probabilidade bayesianos; Modelos Ocultos de Markov; Chamada de base (que seleciona o nucleotídeo mais provável em cada posição na sequência); Estimativa de qualidade de chamada de base (confiança) e semelhantes. Conforme discutido no presente documento acima, uma ou mais dessas etapas podem ser beneficiadas mediante a implantação de uma ou mais funções de processamento necessárias em hardware, tal como implantada por um circuito integrado, por exemplo, um FPGA. Adicionalmente, após tal formato se alcançado, a análise secundária procede, conforme descrito no presente documento, para determinar o conteúdo do DNA (ou RNA etc.) de amostra sequenciado, tal como por meio de leituras de mapeamento e alinhamento para um genoma de referência, classificação, marcação de duplicada, recalibração de pontuação de qualidade de base, realinhamento local e chamada de variante. A análise terciária pode, então, seguir para extrair implicações médicas ou de pesquisa a partir do conteúdo de DNA determinado.[0905] For example, in general next-generation DNA sequencer (NGS) data pipelines, the primary analysis stage processing is typically specific to a given sequencing technology. This primary analysis stage functions to translate physical signals detected within the sequencer into nucleotide sequence “reads” with associated quality (confidence) scores, e.g., FASTQ format files, or other formats that contain sequence and typically quality information. Primary analysis, as noted above, is typically quite specific in nature to the sequencing technology employed. In many sequencers, nucleotides are detected by sensing changes in fluorescence and/or electrical charges, electrical currents, or radiated light. Some primary analysis pipelines typically include: Signal processing to amplify, filter, separate, and measure sensor output; Data reduction, such as through quantization, decimation, weighting, transformation, etc.; Image processing or numerical processing to identify and enhance meaningful signals and associate them with specific reads and nucleotides (e.g., image offset calculation, cluster identification); Algorithmic processing and heuristic arithmetic to compensate for sequencing technology artifacts (e.g., phasing estimates, crosstalk matrices); Bayesian probability calculations; Hidden Markov Models; Base calling (which selects the most likely nucleotide at each position in the sequence); Base calling quality (confidence) estimation, and the like. As discussed in this document above, one or more of these steps may be benefited by implementing one or more of the necessary processing functions in hardware, such as implemented by an integrated circuit, e.g., an FPGA. Additionally, after such a format is achieved, secondary analysis proceeds, as described herein, to determine the DNA (or RNA, etc.) content of the sequenced sample, such as by mapping and aligning reads to a reference genome, classification, duplicate marking, base quality score recalibration, local realignment, and variant calling. Tertiary analysis may then proceed to extract medical or research implications from the determined DNA content.

[0906] Consequentemente, dada a natureza sequencial das funções de processamento acima, pode ser vantajoso integrar aceleração de processamento primário, secundário e/ou terciário em um único single circuito integrado ou múltiplos circuitos integrados posicionados em um único cartão de expansão. Isso pode ser benéfico devido ao fato de que sequenciadores produzem dados que tipicamente exigem análise tanto primária quanto secundária, de modo a serem úteis e poderem ser adicionalmente usados em vários protocolos de processamento terciário, e a integração dos mesmos em um único dispositivo é a mais eficiente em termos de custo, espaço, potência e compartilhamento de recurso. Logo, em um aspecto particular, a revelação é direcionada a um sistema, tal como a um sistema para executar uma segmentação de análise de sequência em dados de sequência genética. Em diversos casos, o sistema pode incluir uma fonte de dados eletrônica, tal como uma fonte de dados que fornece sinais digitais, por exemplo, sinais digitais que representam uma pluralidade de leituras de dados genômicos, em que cada uma dentre a pluralidade de leituras de dados genômicos inclui uma sequência de nucleotídeos. O sistema pode incluir um ou mais dentre uma memória, tal como uma memória que armazena uma ou mais sequências de referência genética, e/ou um índice da uma ou mais sequências de referência genética; e/ou o sistema pode incluir um chip, tal como um ASIC, um FPGA ou um sASIC.[0906] Accordingly, given the sequential nature of the above processing functions, it may be advantageous to integrate primary, secondary, and/or tertiary processing acceleration into a single integrated circuit or multiple integrated circuits positioned on a single expansion card. This may be beneficial because sequencers produce data that typically requires both primary and secondary analysis in order to be useful and can be further used in multiple tertiary processing protocols, and integrating the same into a single device is most efficient in terms of cost, space, power, and resource sharing. Thus, in a particular aspect, the disclosure is directed to a system, such as a system for performing a segmentation sequence analysis on genetic sequence data. In various cases, the system may include an electronic data source, such as a data source that provides digital signals, e.g., digital signals representing a plurality of genomic data reads, wherein each of the plurality of genomic data reads includes a nucleotide sequence. The system may include one or more of a memory, such as a memory that stores one or more genetic reference sequences, and/or an index of the one or more genetic reference sequences; and/or the system may include a chip, such as an ASIC, an FPGA, or a sASIC.

[0907] Um ou mais aspectos ou recursos da matéria descrita no presente documento podem ser realizados em conjunto de circuitos eletrônico digital, conjunto de circuitos integrado, circuitos integrados (ASICs) de aplicação específica especialmente projetados, arranjos de portas programável em campo (FPGAs) ou hardware, firmware, software e/ou combinações dos mesmos de computador de ASIC estruturado.[0907] One or more aspects or features of the subject matter described herein may be embodied in digital electronic circuitry, integrated circuitry, specially designed application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or structured ASIC computer hardware, firmware, software, and/or combinations thereof.

[0908] Esses diversos aspectos ou recursos podem incluir a implantação em um ou mais programas de computador que são executáveis e/ou interpretáveis em um sistema programável que inclui pelo menos um processador programável, o qual pode ter propósito especial ou geral, acoplado para receber dados e instruções a partir de, e para transmitir dados e instruções para, um sistema de armazenamento, pelo menos um dispositivo de entrada e pelo menos um dispositivo de saída. O sistema programável ou o sistema de computação pode incluir clientes e servidores. Um cliente e um servidor são geralmente remotos um do outro e interagem tipicamente através de uma rede de comunicação. A relação de cliente e servidor surge em virtude de programas de computador que operam nos respectivos computadores e que têm uma relação de cliente-servidor um com o outro.[0908] These various aspects or features may include implementation in one or more computer programs that are executable and/or interpretable on a programmable system that includes at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. The programmable system or computing system may include clients and servers. A client and a server are generally remote from each other and typically interact through a communications network. The client and server relationship arises by virtue of computer programs that operate on the respective computers and that have a client-server relationship with each other.

[0909] Esses programas de computador, os quais também podem ser denominados como programas, software, aplicações de software, aplicações, componentes ou código, incluem instruções de máquina para um processador programável e podem ser implantados em uma língua de programação orientada por objeto e/ou procedural de alto nível e/ou em língua de montagem/máquina. Conforme usado no presente documento, o termo “mídia legível por máquina” se refere a qualquer produto de programa de computador, aparelho e/ou dispositivo, tal como, por exemplo, discos magnéticos, discos ópticos, memória e Dispositivos de Lógica Programável (PLDs), usados para fornecer instruções de máquina e/ou dados a um processador programável, incluindo uma mídia legível por máquina que recebe instruções de máquina como um sinal legível por máquina. O termo “sinal legível por máquina” se refere a qualquer sinal usado para fornecer instruções de máquina e/ou dados a um processador programável. A mídia legível por máquina pode armazenar tais instruções de máquina de modo não transitório, tal como, por exemplo, como faria uma memória de estado sólido não transiente ou um disco rígido magnético ou qualquer mídia de armazenamento equivalente. A mídia legível por máquina pode armazenar, alternativa ou adicionalmente, tais instruções de máquina de uma forma transiente, tal como, por exemplo, como faria um cache de processador ou outra memória de acesso aleatório associada a um ou mais núcleos de processador físicos.[0909] These computer programs, which may also be referred to as programs, software, software applications, applications, components or code, include machine instructions for a programmable processor and may be implemented in a high-level procedural and/or object-oriented programming language and/or assembly/machine language. As used herein, the term “machine-readable media” refers to any computer program product, apparatus and/or device, such as, for example, magnetic disks, optical disks, memory and Programmable Logic Devices (PLDs), used to provide machine instructions and/or data to a programmable processor, including a machine-readable media 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. The machine-readable media may store such machine instructions in a non-transitory manner, such as, for example, as would a non-transitory solid-state memory or a magnetic hard disk or any equivalent storage medium. The machine-readable media may alternatively or additionally store such machine instructions in a transient manner, such as, for example, as would a processor cache or other random-access memory associated with one or more physical processor cores.

[0910] Adicionalmente, devido ao crescimento imenso em aquisição e produção de dados no século 21, se desenvolveu uma necessidade por potência de processamento aumentada que tenha capacidade para manusear análises crescentes e intensas em termos de computação sob a qual o desenvolvimento moderno é fundamentado. Os supercomputadores foram introduzidos e foram úteis para avançar o desenvolvimento tecnológico em uma ampla gama de plataformas. Entretanto, embora a supercomputação seja útil, foi comprovada como insuficiente para alguns dentre os muitos problemas de computação complexa que grande parte das empresas de tecnologia atuais enfrentam. Particularmente, desde o sequenciamento do genoma humano, o avanço tecnológico nas técnicas biológicas foi exponencial. Todavia, em vista da taxa alta e complexidade aumentada dos dados brutos produzidos todos os dias, tem evoluído um obstáculo problemático no processamento e análise dos dados gerados. Os computadores quânticos foram desenvolvidos para o mesmo para ajudar a resolver esse obstáculo. A computação quântica representa uma nova linha de frente em computação, fornecendo uma abordagem totalmente nova para solucionar as necessidades computacionais mais desafiadoras do mundo.[0910] Additionally, due to the immense growth in data acquisition and production in the 21st century, a need has developed for increased processing power that can handle the increasingly computationally intensive analyses upon which modern development is based. Supercomputers have been introduced and have been instrumental in advancing technological development across a wide range of platforms. However, while supercomputing is useful, it has proven insufficient for some of the many complex computing problems that many modern technology companies face. Particularly since the sequencing of the human genome, technological advancement in biological techniques has been exponential. However, given the high rate and increasing complexity of raw data produced every day, a problematic hurdle has evolved in the processing and analysis of the generated data. Quantum computers have been developed to help solve this hurdle. Quantum computing represents a new frontier in computing, providing an entirely new approach to solving the world's most challenging computational needs.

[0911] A computação quântica é conhecida desde 1982. Por exemplo, no International Journal of Theoretical Physics, Richard Feynman teorizou um sistema para realizar a computação quântica. Especificamente, Feynman propôs um sistema quântico que poderia ser configurado para uso na simulação de outros sistemas quânticos de modo que as funções convencionais do processamento de computador possam ser realizadas de maneira rápida e eficiente. Consulte Feynman, 1982, International Journal of Theoretical Physics 21, páginas 467 a 488, que está incorporado ao presente documento a título de referência, em sua totalidade. Particularmente, um sistema de computador quântico pode ser projetado para exibir economias de tempo exponenciais em computações complexas. Tais sistemas quânticos controláveis são comumente conhecidos como computadores quânticos, e foram desenvolvidos com sucesso em computadores de processamento de propósito geral que não apenas podem ser usados para simular sistemas quânticos, mas também podem ser adaptados para executar algoritmos quânticos especializados. Mais particularmente, os problemas complexos podem ser modelados sob a forma de uma equação, tal como uma Hamiltoniana, que pode ser representada no sistema quântico de modo que o comportamento do sistema forneça informações referentes à solução para a equação. Consulte Deutsch, 1985, Proceedings of the Royal Society of London A 400, páginas 97 a 117, que está incorporado ao presente documento a título de referência, em sua totalidade. Em tais casos, a resolução de um modelo para o comportamento do sistema quântico pode ser configurada para envolver a resolução de uma equação diferencial relacionada à descrição mecânico de onda de uma partícula, por exemplo, Hamiltoniana, do sistema quântico.[0911] Quantum computing has been known since 1982. For example, in the International Journal of Theoretical Physics, Richard Feynman theorized a system for performing quantum computation. Specifically, Feynman proposed a quantum system that could be configured for use in simulating other quantum systems so that conventional computer processing functions could be performed quickly and efficiently. See Feynman, 1982, International Journal of Theoretical Physics 21, pp. 467–488, which is incorporated herein by reference in its entirety. In particular, a quantum computer system can be designed to exhibit exponential time savings in complex computations. Such controllable quantum systems are commonly known as quantum computers, and have been successfully developed into general-purpose computing computers that can not only be used to simulate quantum systems, but can also be adapted to run specialized quantum algorithms. More particularly, complex problems may be modeled in the form of an equation, such as a Hamiltonian, which can be represented in the quantum system in such a way that the behavior of the system provides information concerning the solution to the equation. See Deutsch, 1985, Proceedings of the Royal Society of London A 400, pages 97–117, which is incorporated herein by reference in its entirety. In such cases, solving a model for the behavior of the quantum system may be configured to involve solving a differential equation related to the wave mechanical description of a particle, e.g., the Hamiltonian, of the quantum system.

[0912] Em essência, a computação quântica é um sistema computacional que usa fenômenos mecânicos e quânticos, por exemplo, superposição e/ou entrelaçamento, para realizar diversos cálculos em quantidades grandes de dados extremamente rápidos. Como tal, os computadores quânticos são um aprimoramento vasto em relação a computadores lógicos digitais convencionais. Especificamente, os circuitos lógicos digitais convencionais funcionam com o uso de portas lógicas digitais binárias que são formadas através da conexão direta de conjunto de circuitos eletrônicos em um substrato condutivo. Em um circuito lógico digital, um estado “ligado/desligado” de um transístor serve como uma unidade básica de informações, por exemplo, um bit. Particularmente, um processador de computador digital comum emprega dígitos, por exemplo, bits, em um estado “ligado” ou “desligado”, por exemplo, como um 0 ou1, para codificar dados. A computação quântica, por outro lado, emprega um dispositivo de informações que usa superposições de estados entrelaçados, chamados de bits quânticos ou qubits, para codificar dados.[0912] In essence, quantum computing is a computational system that uses quantum mechanical phenomena, e.g., superposition and/or entanglement, to perform various calculations on large amounts of data extremely quickly. As such, quantum computers are a vast improvement over conventional digital logic computers. Specifically, conventional digital logic circuits operate using binary digital logic gates that are formed by directly connecting electronic circuitry to a conductive substrate. In a digital logic circuit, an “on/off” state of a transistor serves as a basic unit of information, e.g., a bit. In particular, a common digital computer processor employs digits, e.g., bits, in an “on” or “off” state, e.g., as a 0 or 1, to encode data. Quantum computing, on the other hand, employs an information device that uses superpositions of entangled states, called quantum bits or qubits, to encode data.

[0913] A base para realizar tais computações quânticas é um dispositivo de informações, por exemplo, uma unidade, que forma o bit quântico. O qubit é análogo ao "bit" digital em computadores digitais tradicionais, exceto pelo fato de que o qubit tem potencial computacional maior que um bit digital. Particularmente, conforme descrito em maiores detalhes no presente documento, em vez de apenas codificar um dos dois estados distintos, como um "0" e um "1", conforme encontrado em um bit digital, um qubit também pode ser colocado em uma superposição de "0" e "1". Especificamente, o qubit pode existir tanto no estado "0" como "1" ao mesmo tempo. Consequentemente, o qubit pode realizar uma computação quântica em ambos os estados simultaneamente. Em geral, N qubits podem ser em uma superposição de 2N estados. Os algoritmos quânticos, portanto, pode fazer uso dessa propriedade de superposição para acelerar certas computações.[0913] The basis for performing such quantum computations is an information device, e.g., a unit, which forms the quantum bit. The qubit is analogous to the digital "bit" in traditional digital computers, except that the qubit has greater computational potential than a digital bit. In particular, as described in greater detail in this document, instead of simply encoding one of two distinct states, such as a "0" and a "1", as found in a digital bit, a qubit can also be placed in a superposition of "0" and "1". Specifically, the qubit can exist in both the "0" and "1" states at the same time. Consequently, the qubit can perform a quantum computation in both states simultaneously. In general, N qubits can be in a superposition of 2N states. Quantum algorithms, therefore, can make use of this superposition property to speed up certain computations.

[0914] Um qubit, portanto, é análogo a um bit em um computador digital tradicional e é um tipo de dispositivo de informações que exibe coerência. Particularmente, um dispositivo de computação quântica é construído a partir de uma pluralidade de dispositivos de informações, por exemplo, qubit, blocos de construção. Por exemplo, a potência de computação de um computador quântico aumenta à medida que os dispositivos de informações que formam seus blocos de construção são acoplados, por exemplo, entrelaçados, em conjunto de uma maneira controlável. Em tal caso, o estado quântico de um dispositivo de informações afeta o estado quântico de cada um dentre os outros dispositivos de informações aos quais o mesmo é acoplado.[0914] A qubit, therefore, is analogous to a bit in a traditional digital computer and is a type of information device that exhibits coherence. In particular, a quantum computing device is constructed from a plurality of information devices, e.g., qubit, building blocks. For example, the computing power of a quantum computer increases as the information devices that form its building blocks are coupled, e.g., entangled, together in a controllable manner. In such a case, the quantum state of one information device affects the quantum state of each of the other information devices to which it is coupled.

[0915] Consequentemente, como o bit em computação digital clássica, o qubit em computação quântica serve como a unidade básica para a codificação de informações, como informações quânticas. Similar a um bit, o qubit codifica dados em um sistema de dois estados que, nesse caso, é um sistema quântico-mecânico. Especificamente, para o qubit, os dois estados quânticos envolvem entrelaçamento, como envolve a polarização de um único fóton. Logo, em que em um sistema clássico, um bit tem que estar em um estado ou no outro, em uma plataforma de computação quântica, o qubit pode estar em uma superposição de ambos os estados ao mesmo tempo, tal propriedade é fundamental para o processamento quântico. Consequentemente, o recurso de distinção entre o qubit e o bit clássico é que múltiplos qubits exibem entrelaçamento quântico. Tal entrelaçamento é uma propriedade não local que permite que um conjunto de qubits expresse correlação maior do que é possível em um sistema clássico.[0915] Consequently, like the bit in classical digital computing, the qubit in quantum computing serves as the basic unit for encoding information, such as quantum information. Similar to a bit, the qubit encodes data in a two-state system, which in this case is a quantum-mechanical system. Specifically, for the qubit, the two quantum states involve entanglement, as does the polarization of a single photon. Hence, whereas in a classical system, a bit must be in one state or the other, in a quantum computing platform, the qubit can be in a superposition of both states at the same time, such a property being fundamental to quantum processing. Consequently, the distinguishing feature between the qubit and the classical bit is that multiple qubits exhibit quantum entanglement. Such entanglement is a non-local property that allows a set of qubits to express greater correlation than is possible in a classical system.

[0916] Com a finalidade de funcionar, tais dispositivos de informações, por exemplo, bits quânticos, precisam atender vários requisitos. Primeiramente, o dispositivo de informações precisa ser reduzível a um sistema de dois níveis quânticos. Isso significa que o dispositivo de informações precisa ter dois estados quânticos distinguíveis que podem ser usados para realizar computações. Em segundo lugar, os dispositivos de informações precisam ter capacidade para produzir efeitos quânticos como entrelaçamento e superposição. Adicionalmente, em certos casos, o dispositivo de informações pode ser configurado para armazenar informações, por exemplo, informações quânticas, como em uma forma coerente. Em tais casos, o dispositivo coerente pode ter um estado quântico que persiste sem degradação significativa durante um período de tempo longo, como na ordem de microssegundos ou mais.[0916] In order to function, such information devices, e.g., quantum bits, must meet several requirements. First, the information device must be reducible to a two-level quantum system. This means that the information device must have two distinguishable quantum states that can be used to perform computations. Second, the information devices must be capable of producing quantum effects such as entanglement and superposition. Additionally, in certain cases, the information device may be configured to store information, e.g., quantum information, such as in a coherent form. In such cases, the coherent device may have a quantum state that persists without significant degradation over a long period of time, such as on the order of microseconds or longer.

[0917] Particularmente, o entrelaçamento quântico é o fenômeno físico que ocorre quando um par ou um grupo de partículas é gerado ou de outro modo configurado para interagir de uma maneira que o estado quântico de uma partícula não possa ser descrito independentemente da outra, apesar do espaço que separa as mesmas. Consequentemente, em vez de descrever o estado de uma partícula no isolamento das outras, um estado quântico precisa ser descrito para o sistema como um todo. Em tais casos, as medições de diversas propriedades físicas, como a posição, momento, rotação e/ou polarização, realizadas em partículas entrelaçadas são correlacionadas. Por exemplo, se um par de partículas for gerado de modo que sua rotação total seja conhecida como sendo zero, e uma partícula for constatada como tendo rotação no sentido horário em um certo eixo geométrico, a rotação da outra partícula, medida no mesmo eixo geométrico, será constatada como sendo no sentido anti-horário, a ser esperado devido a seu entrelaçamento.[0917] In particular, quantum entanglement is the physical phenomenon that occurs when a pair or group of particles is generated or otherwise configured to interact in such a way that the quantum state of one particle cannot be described independently of the other, despite the space separating them. Consequently, rather than describing the state of one particle in isolation from the others, a quantum state needs to be described for the system as a whole. In such cases, measurements of various physical properties, such as position, momentum, spin and/or polarization, performed on entangled particles are correlated. For example, if a pair of particles is generated so that their total spin is known to be zero, and one particle is found to have clockwise spin on a certain axis, the spin of the other particle, measured on the same axis, will be found to be counterclockwise, as would be expected due to their entanglement.

[0918] Logo, uma partícula de um par entrelaçado simplesmente “conhece” qual medição foi realizada na outra, e com qual resultado, apesar de não existir meio conhecido para tais informações serem comunicadas entre as partículas, que no momento da medição podem ser separadas por distâncias arbitrariamente grandes. Devido à essa relação, diferente de bits clássicos que podem ter apenas um valor em um momento, o entrelaçamento permite que múltiplos estados ajam simultaneamente. Essas relações entrelaçadas exclusivas e estados quânticos que foram capitalizados para o desenvolvimento de computação quântica.[0918] Thus, one particle in an entangled pair simply “knows” what measurement was performed on the other, and with what result, despite there being no known means for such information to be communicated between the particles, which at the time of the measurement may be separated by arbitrarily large distances. Because of this relationship, unlike classical bits which can have only one value at a time, entanglement allows multiple states to act simultaneously. It is these unique entangled relationships and quantum states that have been capitalized upon for the development of quantum computing.

[0919] Consequentemente, existem diversos tipos de operações físicas que empregam estados de qubit puros que podem ser realizados. Por exemplo, uma porta lógica quântica pode ser formada e configurada para operar no qubit básico, em que o qubit se submete a uma transformação unitária, tal como onde as transformações unitárias correspondem a rotações ou outros fenômenos quânticos do qubit. De fato, qualquer sistema de dois níveis pode ser usado como um qubit, tal como fótons, elétrons, spins nucleares, estados de luz coerentes, malhas ópticas, junções de Josephson, pontos quânticos e similares. Especificamente, a uma porta quântica é a base para um circuito quântico que opera em um número pequeno de qubits. Por exemplo, um circuito quântico é compreendido de portas quânticas que agem em números fixos de qubits, como dois ou três, ou mais. Qubits, portanto, são os blocos de construção de circuitos quânticos, como portas lógicas clássicas são para circuitos digitais convencionais. Especificamente, um circuito quântico é um modelo para computação quântica em que a computação é uma sequência de portas quânticas que são transformações reversíveis em um análogo mecânico quântico de um registrador de n-bit. Tais estruturas análogas são denominadas como registradores de n-qubit. Logo, diferente de portas lógicas clássicas, as portas lógicas quânticas são sempre reversíveis.[0919] Consequently, there are several types of physical operations employing pure qubit states that can be performed. For example, a quantum logic gate can be formed and configured to operate on the basic qubit, where the qubit undergoes a unitary transformation, such as where the unitary transformations correspond to rotations or other quantum phenomena of the qubit. Indeed, any two-level system can be used as a qubit, such as photons, electrons, nuclear spins, coherent states of light, optical lattices, Josephson junctions, quantum dots, and the like. Specifically, a quantum gate is the basis for a quantum circuit that operates on a small number of qubits. For example, a quantum circuit is comprised of quantum gates that act on fixed numbers of qubits, such as two or three, or more. Qubits, therefore, are the building blocks of quantum circuits, as classical logic gates are for conventional digital circuits. Specifically, a quantum circuit is a model for quantum computation in which the computation is a sequence of quantum gates that are reversible transformations on a quantum mechanical analogue of an n-bit register. Such analogous structures are referred to as n-qubit registers. Thus, unlike classical logic gates, quantum logic gates are always reversible.

[0920] Particularmente, conforme descrito no presente documento, uma porta lógica digital é um dispositivo com fio físico que pode ser implantado com o uso de um ou mais diodos ou transístores que agem como comutadores eletrônicos para realizar operações lógicas, por exemplo, funções boolianas, em uma ou mais entradas binárias, a fim de produzir uma única saída binária. Com amplificação, as portas lógicas podem ser dispostas em cascata da mesma maneira que as funções boolianas podem ser compostas, permitindo a constrição de um modelo físico de toda a lógica booliana e, portanto, todos os algoritmos e matemáticas que podem ser descritos com a lógica booliana podem ser realizados por portas lógicas digitais. De maneira similar, uma cascata de portas lógicas quânticas pode ser formada para o desempenho de operações lógicas boolianas.[0920] In particular, as described herein, a digital logic gate is a hard-wired device that can be implemented using one or more diodes or transistors that act as electronic switches to perform logical operations, e.g., Boolean functions, on one or more binary inputs to produce a single binary output. With amplification, logic gates can be cascaded in the same manner that Boolean functions can be composed, allowing for the constriction of a physical model of all Boolean logic, and thus all algorithms and mathematics that can be described with Boolean logic can be performed by digital logic gates. Similarly, a cascade of quantum logic gates can be formed for the performance of Boolean logic operations.

[0921] As portas quânticas são normalmente representadas como matrizes. Em diversas implantações, uma porta quântica age em k que pode ser representado por matriz unitária de 2k x 2k. Em tais casos, o número de qubits na entrada e saída da porta deve ser igual, e a ação da porta em um estado quântico específico é encontrada mediante a multiplicação do vetor que representa o estado pela matriz que representa a porta. Logo, dada essa configuração, as operações quânticas podem ser executadas em um número muito pequeno de bits quânticos. Por exemplo, existem algoritmos quânticos que são configurados para executar computações muito mais complexas mais rápidas que qualquer algoritmo clássico probabilístico possível. Particularmente, um algoritmo quântico é um algoritmo que funciona em um modelo de circuito quântico de computação.[0921] Quantum gates are typically represented as matrices. In many implementations, a quantum gate acts on k which can be represented by a unitary matrix of 2k x 2k. In such cases, the number of qubits at the input and output of the gate must be equal, and the action of the gate on a particular quantum state is found by multiplying the vector representing the state by the matrix representing the gate. Hence, given this configuration, quantum operations can be performed on a very small number of quantum bits. For example, there are quantum algorithms that are configured to perform much more complex computations faster than any possible probabilistic classical algorithm. In particular, a quantum algorithm is an algorithm that operates on a quantum circuit model of computation.

[0922] Em que um algoritmo clássico é uma sequência finita de procedimentos ou instruções de etapa por etapa que pode ser realizada por circuitos lógicos digitais de um computador clássico; um algoritmo quântico é um procedimento de etapa por etapa, em que cada uma das etapas pode ser realizada em um computador quântico. Entretanto, apesar de algoritmos quânticos existirem, tais como algoritmos de Shor, Grovar e Simon, todos os algoritmos clássicos também podem ser realizados em um computador quântico com as configurações corretas. Os algoritmos quânticos são normalmente usados para aqueles algoritmos que são inerentemente quânticos, por exemplo, como envolvendo a superposição ou entrelaçamento quântico. Os algoritmos quânticos podem ser mencionados em diversos modelos de computação quântica, como o modelo de oráculo Hamiltoniano.[0922] Where a classical algorithm is a finite sequence of step-by-step procedures or instructions that can be performed by the digital logic circuits of a classical computer; a quantum algorithm is a step-by-step procedure, each of the steps of which can be performed on a quantum computer. However, although quantum algorithms exist, such as Shor's, Grovar's and Simon's algorithms, all classical algorithms can also be performed on a quantum computer with the right settings. Quantum algorithms are typically used for those algorithms that are inherently quantum, for example involving quantum superposition or entanglement. Quantum algorithms can be referred to in various models of quantum computing, such as the Hamiltonian oracle model.

[0923] Consequentemente, à medida que o computador clássico tem uma memória composta de bits, em que cada bit é representado por um "1" ou um "0"; um computador quântico suporta uma sequência de qubits em que um único qubit pode representar um número um, um número zero ou qualquer superposição daqueles dois estados de qubit. Consequentemente, um par de qubits pode ser em qualquer superposição quântica de 4 estado e três qubits podem ser em qualquer superposição de 8 estados. Em geral, um computador quântico com n qubits pode ser em uma superposição arbitrária de até 2n estados diferentes simultaneamente, que se compara a um computador normal que pode estar apenas em um desses 2n estados em qualquer momento. Portanto, qubits podem reter exponencialmente mais informações que suas contrapartes clássicas. Em ação, um computador quântico opera definindo-se os qubits em um desvio que soluciona o problema mediante a manipulação daqueles qubits com uma sequência fixa de portas lógicas quânticas. É essa sequência de portas lógicas quânticas que forma as operações de algoritmos quânticos. O cálculo termina com uma medição, com colapso do sistema de qubits em um dos 2n estados puros, em que cada qubit é “0” ou “1”, decompondo em um estado clássico. Logo, os algoritmos tradicionais também podem ser realizados em uma plataforma de computação quântica, em que o resultado é tipicamente n bits clássicos de informações.[0923] Consequently, as the classical computer has a memory composed of bits, where each bit is represented by either a "1" or a "0", a quantum computer supports a sequence of qubits where a single qubit can represent a one, a zero, or any superposition of those two qubit states. Consequently, a pair of qubits can be in any 4-state quantum superposition, and three qubits can be in any 8-state superposition. In general, a quantum computer with n qubits can be in an arbitrary superposition of up to 2n different states simultaneously, which compares to a normal computer that can only be in one of those 2n states at any given time. Therefore, qubits can hold exponentially more information than their classical counterparts. In action, a quantum computer operates by setting the qubits to a bias that solves the problem by manipulating those qubits with a fixed sequence of quantum logic gates. It is this sequence of quantum logic gates that forms the operations of quantum algorithms. The computation ends with a measurement, collapsing the system of qubits into one of 2n pure states, in which each qubit is either a “0” or a “1”, decomposing into a classical state. Thus, traditional algorithms can also be performed on a quantum computing platform, where the result is typically n classical bits of information.

[0924] Em notação padrão, os estados básicos de um qubit são denominados como os estados "0" e "1". Entretanto, durante a computação quântica, o estado de um qubit, em geral, pode ser uma superposição dos estados básicos ou de base, de modo que o qubit tenha uma probabilidade de não zero de ocupar o estado de base "0" e uma probabilidade de não zero simultânea de ocupar o estado de base "1". Consequentemente, a natureza quântica do qubit é derivada em grande parte de sua capacidade de existir em uma superposição coerente de estados de base, e para o estado do qubit ter uma fase. Um qubit irá reter essa capacidade de existir como uma superposição coerente de estados de base, contanto que o qubit seja suficientemente isolado de fontes de decoerência.[0924] In standard notation, the basis states of a qubit are denoted as the "0" and "1" states. However, during quantum computing, the state of a qubit can in general be a superposition of the basis or base states, such that the qubit has a non-zero probability of occupying the "0" basis state and a simultaneous non-zero probability of occupying the "1" basis state. Consequently, the quantum nature of the qubit is derived in large part from its ability to exist in a coherent superposition of basis states, and for the qubit state to have a phase. A qubit will retain this ability to exist as a coherent superposition of basis states as long as the qubit is sufficiently isolated from sources of decoherence.

[0925] Consequentemente, para completar uma computação com o uso de um qubit, o estado do qubit é medido. Conforme indicado acima, quando uma medição do qubit é feita, a natureza quântica do qubit pode ser temporariamente perdida e a superposição dos estados de base podem sofrer colapso para o estado de base "0" ou o estado de base "1". Dessa forma, de tal maneira, o qubit recupera sua similaridade a um “bit” digital convencional. O estado real do qubit depois que o mesmo sofreu colapso dependerá dos diversos estados de probabilidade presentes imediatamente antes da operação de medição. Dessa forma, qubits podem ser empregados para formar circuitos quântico que podem por si mesmo ser configurados para formar um computador quântico.[0925] Accordingly, to complete a computation using a qubit, the state of the qubit is measured. As indicated above, when a measurement of the qubit is made, the quantum nature of the qubit may be temporarily lost and the superposition of the basis states may collapse to the basis state "0" or the basis state "1". In this way, the qubit regains its similarity to a conventional digital "bit". The actual state of the qubit after it has collapsed will depend on the various probability states present immediately before the measurement operation. In this way, qubits can be used to form quantum circuits that can themselves be configured to form a quantum computer.

[0926] Existem várias abordagens gerais para o projeto e operação de um computador quântico. Uma abordagem que foi apresentada é aquela de um modelo de circuito para computação quântica. A computação quântica de modelo de circuito exige coerência quântica longa, assim, o tipo de dispositivo de informações usado em computadores quânticos que suportam tal abordagem pode ser o qubit, que por definição, tem tempos de coerência longos. Consequentemente, o modelo de circuito para computação quântica é baseado na premissa que qubits podem ser formados de e agir por portas lógicas, muito similar a bits, e pode ser programado com uso de lógica quântica a fim de realizar cálculos, como computações boolianas. Foi feita pesquisa para desenvolver qubits que podem ser programados para realizar funções lógicas quânticas dessa maneira. Por exemplo, consulte Shor, 2001, arXiv.org:quant-ph/0005003, que está incorporado ao presente documento a título de referência, em sua totalidade. De modo semelhante, um processador de computador pode assumir a forma de um processador quântico, tal como um processador quântico supercondutor.[0926] There are several general approaches to the design and operation of a quantum computer. One approach that has been presented is that of a circuit model for quantum computation. Circuit model quantum computation requires long quantum coherence, so the type of information device used in quantum computers that support such an approach might be the qubit, which by definition has long coherence times. Consequently, the circuit model for quantum computation is based on the premise that qubits can be formed from and act on logic gates, much like bits, and can be programmed using quantum logic to perform computations, such as Boolean computations. Research has been done to develop qubits that can be programmed to perform quantum logic functions in this manner. For example, see Shor, 2001, arXiv.org:quant-ph/0005003, which is incorporated herein by reference in its entirety. Similarly, a computer processor can take the form of a quantum processor, such as a superconducting quantum processor.

[0927] Um processador quântico supercondutor pode incluir vários qubits e dispositivos de polarização local associados, por exemplo, dois, três ou mais qubits de supercondução. Consequentemente, embora, em várias modalidades, um processador de computador pode ser configurado como um processador de supercondução não tradicional, em outras modalidades, o processador de computador pode ser configurado como um processador supercondutor. Por exemplo, em algumas modalidades, um processador supercondutor não tradicional pode ser configurado a fim de não focar em efeitos quânticos, como superposição, entrelaçamento e/ou tunelamento quântico, mas pode, de preferência, operar enfatizando-se princípios diferentes, como aqueles princípios que governam a operação de processadores de computador clássicos. Em outras modalidades, o processador de computador pode ser configurado como um processador supercondutor tradicional, como sendo adaptado para processar através de diversos efeitos quânticos, tais como superposição, entrelaçamento e/ou tunelamento quântico.[0927] A superconducting quantum processor may include multiple qubits and associated local bias devices, e.g., two, three, or more superconducting qubits. Accordingly, while in various embodiments a computer processor may be configured as a non-traditional superconducting processor, in other embodiments the computer processor may be configured as a superconducting processor. For example, in some embodiments a non-traditional superconducting processor may be configured to not focus on quantum effects such as superposition, entanglement, and/or quantum tunneling, but may rather operate by emphasizing different principles, such as those principles that govern the operation of classical computer processors. In other embodiments, the computer processor may be configured as a traditional superconducting processor, such as being adapted to process through various quantum effects such as superposition, entanglement, and/or quantum tunneling.

[0928] Consequentemente, em vários casos, podem existir certas vantagens para a implantação de tais processadores supercondutores. Particularmente, devido a suas propriedades físicas naturais, os processadores supercondutores em geral podem ter capacidade para velocidades de comutação maiores e tempos de computação mais curtos que processadores não supercondutores e, portanto, podem ser mais práticos para solucionar certos problemas em processadores supercondutores. Adicionalmente, detalhes e modalidades de processadores quânticos exemplificativos que podem ser usados em conjunto com os presentes dispositivos, sistemas e os métodos de seu uso são descritos em USSNs: 11/317.838; 12/013.192; 12/575.345; 12/266.378; 13/678.266; e 14/255.561; bem como as diversas divisões, continuações e/ou continuação em parte dos mesmos; incluindo patente nos U.S. 7.533.068; 7.969.805; 9.026.574; 9.355.365; 9.405.876; e todas suas contrapartes estrangeiras, que estão aqui incorporadas a título de referência, em suas totalidades.[0928] Accordingly, in many instances, there may be certain advantages to the implementation of such superconducting processors. In particular, due to their natural physical properties, superconducting processors in general may be capable of higher switching speeds and shorter computation times than non-superconducting processors and therefore may be more practical for solving certain problems in superconducting processors. Additionally, details and embodiments of exemplary quantum processors that may be used in conjunction with the present devices, systems, and methods of their use are described in USSNs: 11/317,838; 12/013,192; 12/575,345; 12/266,378; 13/678,266; and 14/255,561; as well as various divisions, continuations, and/or continuations in part thereof; including U.S. Patent 7,533,068; 7,969,805; 9,026,574; 9,355,365; 9,405,876; and all their foreign counterparts, which are incorporated herein by reference in their entirety.

[0929] Adicionalmente, além dos sistemas e dispositivos quânticos acima, métodos para seu uso na resolução de problemas computacionais complexos também são apresentados. Por exemplo, os sistemas e dispositivos quânticos revelados no presente documento podem ser empregados para controlar o estado quântico de um ou mais sistemas e/ou dispositivos de informações, de uma maneira coerente, a fim de realizar uma ou mais etapas em uma segmentação de processamento de bioinformática e/ou genômica, como para o desempenho de uma ou mais operações em um processamento de imagens, chamada de fase, mapeamento, alinhamento, classificação, chamada de variante e/ou outra segmentação de genômica e/ou bioinformática. Em modalidades particulares, a uma ou mais operações podem incluir realizar uma operação de Burrow- Wheeler, SmithWaterman e/ou uma operação de HMM.[0929] Additionally, in addition to the above quantum systems and devices, methods for their use in solving complex computational problems are also disclosed. For example, the quantum systems and devices disclosed herein may be employed to control the quantum state of one or more information systems and/or devices, in a coherent manner, in order to perform one or more steps in a bioinformatics and/or genomics processing segmentation, such as for performing one or more operations in an image processing, phase calling, mapping, alignment, classification, variant calling, and/or other genomics and/or bioinformatics segmentation. In particular embodiments, the one or more operations may include performing a Burrow-Wheeler operation, a Smith-Waterman operation, and/or an HMM operation.

[0930] Particularmente, a resolução de problemas computacionais de genômica e/ou bioinformática com o uso de um dispositivo de computação quântica pode incluir gerar um ou mais qubits e usar o mesmo para formar uma representação de circuito lógico quântico do problema computacional, codificar a representação de circuito lógico como um problema de otimização distinta, e resolver o problema de otimização distinta com o uso do processador quântico. A representação pode ser um problema aritmético e/ou geométrico para solução por meio de um circuito de adição, subtração, multiplicação e/ou divisão. O problema de otimização distinta pode ser composto de um conjunto de problemas de otimização mínimos, em que cada problema de otimização mínimo codifica uma respectiva porta lógica a partir da representação de circuito lógico. Por exemplo, um circuito matemático pode empregar representações binárias de fatores, e essas representações binárias podem ser decompostas para reduzir o número total de variáveis necessárias para representar o circuito matemático. Consequentemente, de acordo com os ensinamentos no presente documento, um processador de computador pode assumir a forma de um processador digitais e/ou analógico, por exemplo, um processador quântico, tal como um processador quântico supercondutor. Um processador quântico supercondutor pode incluir vários qubits e dispositivos de polarização local associados, por exemplo, dois ou mais qubits de supercondução, que podem ser formados em uma ou mais representações de circuito lógico quântico.[0930] In particular, solving computational problems in genomics and/or bioinformatics using a quantum computing device may include generating one or more qubits and using the same to form a quantum logic circuit representation of the computational problem, encoding the logic circuit representation as a discrete optimization problem, and solving the discrete optimization problem using the quantum processor. The representation may be an arithmetic and/or geometric problem for solution by means of an addition, subtraction, multiplication, and/or division circuit. The discrete optimization problem may be composed of a set of minimal optimization problems, where each minimal optimization problem encodes a respective logic gate from the logic circuit representation. For example, a mathematical circuit may employ binary representations of factors, and these binary representations may be decomposed to reduce the total number of variables required to represent the mathematical circuit. Accordingly, in accordance with the teachings herein, a computer processor may take the form of a digital and/or analog processor, e.g., a quantum processor, such as a superconducting quantum processor. A superconducting quantum processor may include multiple qubits and associated local bias devices, e.g., two or more superconducting qubits, which may be formed into one or more quantum logic circuit representations.

[0931] Mais particularmente, em várias modalidades, pode ser fornecido um circuito integrado supercondutor. Especificamente, em modalidades particulares, tal circuito integrado supercondutor pode incluir uma primeira trajetória de corrente supercondutora que é disposta em um metal, por exemplo, primeira camada de metal. Uma camada dielétrica, por exemplo, primeira camada dielétrica também pode ser incluída, como em que pelo menos uma porção da camada dielétrica está associada a e/ou carregada na primeira camada de metal. Uma segunda trajetória de corrente supercondutora também pode ser incluída e disposta em uma segunda camada de metal, tal como a camada de metal que é carregada em ou de outro modo associada à primeira camada dielétrica. Em tal modalidade, pelo menos uma porção da segunda trajetória de corrente supercondutora pode sobrepor pelo menos uma porção da primeira trajetória de corrente supercondutora. De modo semelhante, uma segunda camada dielétrica também pode ser incluída, como em que pelo menos uma porção da segunda camada dielétrica está associada a ou carregada na segunda camada de metal. Adicionalmente, uma terceira trajetória de corrente supercondutora pode ser incluída e disposta em uma terceira camada de metal que pode ser associada a ou carregada na segunda camada dielétrica, tal como o fato de que pelo menos uma porção da terceira trajetória de corrente supercondutora pode sobrepor pelo menos uma porção de uma dentre ou tanto a primeira como a segunda trajetórias de corrente supercondutora. Uma ou mais camadas de metal adicionais, camadas dielétricas e/ou trajetórias de corrente também podem ser incluídas e configuradas consequentemente.[0931] More particularly, in various embodiments, a superconducting integrated circuit may be provided. Specifically, in particular embodiments, such a superconducting integrated circuit may include a first superconducting current path that is disposed in a metal, e.g., first metal layer. A dielectric layer, e.g., first dielectric layer, may also be included, such as wherein at least a portion of the dielectric layer is associated with and/or charged to the first metal layer. A second superconducting current path may also be included and disposed in a second metal layer, such as the metal layer that is charged to or otherwise associated with the first dielectric layer. In such an embodiment, at least a portion of the second superconducting current path may overlap at least a portion of the first superconducting current path. Similarly, a second dielectric layer may also be included, such as wherein at least a portion of the second dielectric layer is associated with or charged to the second metal layer. Additionally, a third superconducting current path may be included and disposed in a third metal layer that may be associated with or carried in the second dielectric layer, such that at least a portion of the third superconducting current path may overlap at least a portion of one or both of the first and second superconducting current paths. One or more additional metal layers, dielectric layers, and/or current paths may also be included and configured accordingly.

[0932] Adicionalmente, uma primeira conexão de supercondutor pode ser posicionada entre a primeira trajetória de corrente supercondutora e a terceira trajetória de corrente supercondutora, como em que a primeira conexão de supercondutor se estende através tanto da primeira camada dielétrica como da segunda camada dielétrica. Uma segunda conexão de supercondutor também pode ser incluída e posicionada entre a primeira trajetória de corrente supercondutora e a terceira trajetória de corrente supercondutora, tal como o fato de que a segunda conexão de supercondutor pode se estender através tanto da primeira camada dielétrica como da segunda camada dielétrica. Adicionalmente, pelo menos uma porção da segunda trajetória de corrente supercondutora pode ser enriquecida por uma trajetória de corrente supercondutora externa que pode ser formada por pelo menos uma porção de uma ou mais dentre a primeira trajetória de corrente supercondutora, pelo menos uma porção da segunda trajetória de corrente supercondutora e/ou a primeira e a segunda conexões de supercondutor. Consequentemente, em tais casos, a segunda trajetória de corrente supercondutora pode ser configurada para acoplar, por exemplo, acoplar de modo indutivo, um sinal à trajetória de corrente supercondutora externa.[0932] Additionally, a first superconducting connection may be positioned between the first superconducting current path and the third superconducting current path, such as wherein the first superconducting connection extends through both the first dielectric layer and the second dielectric layer. A second superconducting connection may also be included and positioned between the first superconducting current path and the third superconducting current path, such as wherein the second superconducting connection may extend through both the first dielectric layer and the second dielectric layer. Additionally, at least a portion of the second superconducting current path may be enriched by an external superconducting current path that may be formed by at least a portion of one or more of the first superconducting current path, at least a portion of the second superconducting current path, and/or the first and second superconducting connections. Consequently, in such cases, the second superconducting current path may be configured to couple, e.g. inductively couple, a signal to the external superconducting current path.

[0933] Em algumas modalidades, uma indutância mútua entre a segunda trajetória de corrente supercondutora e a trajetória de corrente supercondutora externa pode ser sublinearmente proporcional a uma espessura da primeira camada dielétrica e uma espessura da segunda camada dielétrica. A primeira e a segunda conexões de supercondutor também podem incluir pelo menos uma respectiva via supercondutora. Adicionalmente, em várias modalidades, a segunda trajetória de corrente supercondutora pode ser uma porção de uma linha de sinal de entrada e uma dentre ou tanto a primeira como a terceira trajetórias de corrente supercondutora pode ser acoplada a um dispositivo programável supercondutor. Em outras modalidades, a segunda trajetória de corrente supercondutora pode ser uma porção de um dispositivo programável supercondutor e tanto a primeira como a terceira trajetórias de corrente supercondutora podem ser acopladas a uma linha de sinal de entrada. Em modalidades particulares, o dispositivo programável supercondutor pode ser um qubit supercondutor que pode ser, então, acoplado, por exemplo, acoplado de modo quântico, a um ou mais outros qubits, a fim de formar um circuito quântico, tal como de um dispositivo de processamento quântico.[0933] In some embodiments, a mutual inductance between the second superconducting current path and the external superconducting current path may be sublinearly proportional to a thickness of the first dielectric layer and a thickness of the second dielectric layer. The first and second superconducting connections may also include at least one respective superconducting via. Additionally, in various embodiments, the second superconducting current path may be a portion of an input signal line and one of or both of the first and third superconducting current paths may be coupled to a superconducting programmable device. In other embodiments, the second superconducting current path may be a portion of a superconducting programmable device and both of the first and third superconducting current paths may be coupled to an input signal line. In particular embodiments, the superconducting programmable device may be a superconducting qubit that may then be coupled, e.g., quantumly coupled, to one or more other qubits to form a quantum circuit, such as a quantum processing device.

[0934] Consequentemente, são fornecidos no presente documento dispositivos, sistemas e métodos para solucionar problemas computacionais, especialmente problemas relacionados à resolução do obstáculo de genômica e/ou bioinformática descrito no presente documento acima. Em várias modalidades, esses dispositivos, sistemas e métodos introduzem uma técnica de modo que uma representação de circuito lógico de um problema computacional possa ser solucionada diretamente e/ou possa ser codificada como um problema de otimização distinta, e o problema de otimização distinta pode ser, então, solucionado com o uso de um processador de computador, tal como um processador quântico. Por exemplo, em modalidades particulares, a resolução de tal problemas de otimização distinta pode incluir executar o circuito lógico para solucionar o problema computacional original.[0934] Accordingly, provided herein are devices, systems, and methods for solving computational problems, especially problems related to solving the genomics and/or bioinformatics hurdle described herein above. In various embodiments, these devices, systems, and methods introduce a technique such that a logic circuit representation of a computational problem can be solved directly and/or can be encoded as a discrete optimization problem, and the discrete optimization problem can then be solved using a computer processor, such as a quantum processor. For example, in particular embodiments, solving such a discrete optimization problem can include executing the logic circuit to solve the original computational problem.

[0935] Logo, os dispositivos, sistemas e métodos descritos no presente documento podem ser implantados com o uso de qualquer forma de processador de computador, tal como incluindo circuitos lógicos tradicionais e/ou representações de circuito lógico, tais como configurados para o uso como um processador quântico e/ou em processamento de supercondução. Particularmente, diversas etapas na realização de um processamento de imagens, chamada de base, mapeamento, alinhamento e/ou chamada de variante, segmentação de bioinformática podem ser codificadas como problemas de otimização distinta e, como tais, podem ser particularmente bem adequados para serem solucionados com o uso dos processadores quânticos, revelados no presente documento. Em outros casos, tais computações podem ser resolvidas mais genericamente por um processador de computador que aproveita os efeitos quânticos para alcançar tal computação; e/ou em outros casos, tais computações podem ser realizadas com o uso de um circuito integrado dedicado, tal como um FPGA, ASIC ou ASIC estruturado, conforme descrito no presente documento em detalhe. Em algumas modalidades, o problema de otimização distinta é visto como um problema mediante a configuração dos circuitos lógicos, qubits e/ou acopladores em um processador quântico. Em algumas modalidades, o processador quântico pode ser especificamente adaptado para facilitar a resolução de tais problemas de otimização distinta.[0935] Accordingly, the devices, systems, and methods described herein may be implemented using any form of computer processor, such as including traditional logic circuits and/or logic circuit representations, as configured for use as a quantum processor and/or in superconducting processing. In particular, various steps in performing image processing, basis calling, mapping, alignment and/or variant calling, bioinformatics segmentation may be encoded as distinct optimization problems and, as such, may be particularly well suited to being solved using the quantum processors disclosed herein. In other cases, such computations may be solved more generally by a computer processor that leverages quantum effects to achieve such computation; and/or in other cases, such computations may be performed using a dedicated integrated circuit, such as an FPGA, ASIC, or structured ASIC, as described in detail herein. In some embodiments, the discrete optimization problem is viewed as a problem by configuring the logic circuits, qubits, and/or couplers in a quantum processor. In some embodiments, the quantum processor may be specifically adapted to facilitate solving such discrete optimization problems.

[0936] Conforme revelado ao longo deste relatório descritivo e nas reivindicações anexas, muitas vezes é feita referência a uma “representação de circuito lógico”, por exemplo, de um problema computacional. Dependendo do contexto, um circuito lógico pode incorporar um conjunto de entradas lógicas, um conjunto de saídas lógicas, e um conjunto de portas lógicas (por exemplo, portas NAND, portas XOR e similares) que transformam as entradas lógicas nas saídas lógicas através de um conjunto de entradas lógicas intermediárias e saídas lógicas intermediárias. Um circuito lógico completo pode incluir uma representação da entrada (ou entradas) para o problema computacional, uma representação da saída (ou saídas) do problema computacional, e uma representação da sequência de etapas intermediárias entre a entrada (ou entradas) e a saída (ou saídas).[0936] As disclosed throughout this specification and in the appended claims, reference is often made to a “logic circuit representation,” e.g., of a computational problem. Depending on the context, a logic circuit may incorporate a set of logic inputs, a set of logic outputs, and a set of logic gates (e.g., NAND gates, XOR gates, and the like) that transform the logic inputs into logic outputs via a set of intermediate logic inputs and intermediate logic outputs. A complete logic circuit may include a representation of the input (or inputs) to the computational problem, a representation of the output (or outputs) of the computational problem, and a representation of the sequence of intermediate steps between the input (or inputs) and the output (or outputs).

[0937] Dessa forma, para diversos propósitos dos presentes dispositivos, sistemas e métodos, o problema computacional pode ser definido por sua entrada (ou entradas), sua saída (ou saídas) e pelas etapas intermediárias que transformam a entrada (ou entradas) na saída (ou saídas) e uma “representação de circuito lógico) pode incluir todos esses elementos. Aqueles versados na técnica irão observar que a codificação de uma “representação de circuito lógico” de um problema computacional como um problema de otimização distinta, e o mapeamento subsequente do problema de otimização distinta para um processador quântico, podem resultar em qualquer número de camadas que envolvem qualquer número de qubits por camada. Adicionalmente, tal mapeamento pode implantar qualquer esquema de acoplamento entre qubit para possibilitar qualquer esquema de acoplamento intercamadas (por exemplo, acoplamento entre os qubits de camadas diferentes) e acoplamento intracamadas (por exemplo, acoplamento entre os qubits dentro de uma camada particular).[0937] Thus, for various purposes of the present devices, systems, and methods, the computational problem may be defined by its input(s), its output(s), and the intermediate steps that transform the input(s) into the output(s), and a “logic circuit representation” may include all of these elements. Those skilled in the art will appreciate that encoding a “logic circuit representation” of a computational problem as a discrete optimization problem, and subsequently mapping the discrete optimization problem to a quantum processor, may result in any number of layers involving any number of qubits per layer. Additionally, such mapping may implement any inter-qubit coupling scheme to enable any interlayer coupling scheme (e.g., coupling between qubits of different layers) and intralayer coupling (e.g., coupling between qubits within a particular layer).

[0938] Consequentemente, conforme indicado, em algumas modalidades, a estrutura de um circuito lógico pode ser estratificada em camadas. Por exemplo, a entrada lógica (ou entradas lógicas) pode representar uma primeira camada, cada operação lógica sequencial (ou aritmética) pode representar uma respectiva camada adicional, e a saída lógica (ou saídas lógicas) pode representar uma outra camada. E conforme anteriormente descrito, uma operação lógica pode ser executada por uma única porta lógica ou por uma combinação de portas lógicas, dependendo da operação lógica específica que é executada. Dessa forma, uma “camada” em um circuito lógico pode incluir uma única porta lógica ou uma combinação de portas lógicas dependendo do circuito lógico particular que é implantado.[0938] Accordingly, as indicated, in some embodiments, the structure of a logic circuit may be stratified into layers. For example, the logic input (or logic inputs) may represent a first layer, each sequential logic (or arithmetic) operation may represent a respective additional layer, and the logic output (or logic outputs) may represent another layer. And as previously described, a logic operation may be performed by a single logic gate or by a combination of logic gates, depending on the specific logic operation being performed. Thus, a “layer” in a logic circuit may include a single logic gate or a combination of logic gates depending on the particular logic circuit being implemented.

[0939] Consequentemente, em várias modalidades, tal como o fato de que a estrutura de circuito lógico estratifica em camadas (por exemplo, com a entrada lógica (ou entradas lógicas) que representam uma primeira camada, cada operação lógica sequencial que representa uma respectiva camada adicional, e a saída lógica (ou saídas lógicas) que representa uma outra camada), cada camada pode ser incorporada por meio de um respectivo conjunto de qubits no processador quântico e/ou supercondutor. Por exemplo, em uma modalidade de um processador quântico, um ou mais, por exemplo, cada um dentre a fileira de qubits pode ser programado para representar uma respectiva camada de um circuito lógico quântico. Isto é, qubits particulares podem ser programados para representar as entradas para um circuito lógico, outros qubits podem ser programados para representar uma primeira operação lógica (executada por qualquer uma ou uma pluralidade de portas lógicas), e qubits adicionais podem ser programados para representar uma segunda operação lógica (executada de modo similar por uma ou uma pluralidade de portas lógicas), e mais outros qubits podem ser programados para representar as saídas do circuito lógico.[0939] Accordingly, in various embodiments, such as the fact that the logic circuit structure stratifies into layers (e.g., with the logic input(s) representing a first layer, each sequential logic operation representing a respective additional layer, and the logic output(s) representing a further layer), each layer may be embodied by means of a respective set of qubits in the quantum processor and/or superconductor. For example, in one embodiment of a quantum processor, one or more, e.g., each of the array of qubits may be programmed to represent a respective layer of a quantum logic circuit. That is, particular qubits may be programmed to represent the inputs to a logic circuit, other qubits may be programmed to represent a first logical operation (performed by any one or a plurality of logic gates), additional qubits may be programmed to represent a second logical operation (similarly performed by any one or a plurality of logic gates), and still other qubits may be programmed to represent the outputs of the logic circuit.

[0940] Adicionalmente, com diversos conjuntos de qubits que representam diversas camadas do problema, pode ser vantajoso possibilitar o controle dinâmico independente de cada respectivo conjunto. Adicionalmente, em várias modalidades, diversos circuitos lógicos seriais podem ser mapeados para o processador quântico, e os respectivos qubits mapeados para facilitar as interações funcionais para o processamento quântico de uma maneira adequada para possibilitar o controle independente do mesmo. A partir do acima, aqueles versados na técnica irão observar como uma função objetiva similar pode ser definida para qualquer porta lógica. Dessa forma, em algumas modalidades, o problema que representa um circuito lógico pode ser essencialmente compreendido de uma pluralidade de problemas de otimização mínima, em que cada porta no circuito lógico corresponde a um problema de otimização mínimo particular.[0940] Additionally, with multiple sets of qubits representing multiple layers of the problem, it may be advantageous to enable independent dynamic control of each respective set. Additionally, in various embodiments, multiple serial logic circuits may be mapped to the quantum processor, and the respective qubits mapped to facilitate functional interactions for quantum processing in a manner suitable for enabling independent control thereof. From the above, those skilled in the art will appreciate how a similar objective function may be defined for any logic gate. Thus, in some embodiments, the problem representing a logic circuit may be essentially comprised of a plurality of minimal optimization problems, wherein each gate in the logic circuit corresponds to a particular minimal optimization problem.

[0941] Logo, as representações de circuito lógico exemplificadoras podem ser geradas com o uso de sistemas e métodos que são conhecidos na técnica. Em um exemplo, uma representação de circuito lógico do problema computacional, por exemplo, o problema de genômica e/ou bioinformática, pode ser gerada e/ou codificada com o uso de um processador de computador digital clássico e/ou um processador quântico e/ou supercondutor, conforme descrito no presente documento. Consequentemente, uma representação de circuito lógico do problema computacional pode ser armazenada em pelo menos uma mídia de armazenamento legível por processador ou computador, tal como uma mídia de armazenamento não transitório legível por computador ou memória (por exemplo, volátil ou não volátil). Portanto, conforme discutido no presente documento, a representação de circuito lógico do problema computacional pode ser codificada como um problema de otimização distinta, ou um conjunto de objetivos de otimização, e em várias modalidades, em que um paradigma de processamento de computador digital clássico é configurado para solucionar o problema, o sistema pode ser configurado de modo que cadeias de bit que satisfazem o circuito lógico tenham energia de zero e todas as outras cadeias de bits tenham energia maior que zero, em que o problema de otimização distinta pode ser solucionado de uma maneira a fim de estabelecer uma solução para o problema computacional original.[0941] Accordingly, exemplary logic circuit representations may be generated using systems and methods that are known in the art. In one example, a logic circuit representation of the computational problem, e.g., the genomics and/or bioinformatics problem, may be generated and/or encoded using a classical digital computer processor and/or a quantum and/or superconducting processor, as described herein. Accordingly, a logic circuit representation of the computational problem may be stored on at least one processor- or computer-readable storage medium, such as a non-transitory computer-readable storage medium or memory (e.g., volatile or non-volatile). Therefore, as discussed herein, the logic circuit representation of the computational problem may be encoded as a discrete optimization problem, or a set of optimization objectives, and in various embodiments, where a classical digital computer processing paradigm is configured to solve the problem, the system may be configured such that bit strings that satisfy the logic circuit have energy of zero and all other bit strings have energy greater than zero, wherein the discrete optimization problem may be solved in a manner so as to establish a solution to the original computational problem.

[0942] Adicionalmente, em outras modalidades, o problema de otimização distinta pode ser solucionado com o uso de um processador de computador, tal como um processador quântico. Em tal caso, a resolução do problema de otimização distinta pode, então, envolver, por exemplo, evoluir o processador quântico para a configuração que minimiza a energia do sistema a fim de estabelecer uma cadeia de bits que satisfaz o objetivo (ou objetivos) de otimização. Consequentemente, em algumas modalidades, a ação de solucionar um problema de otimização distinta pode incluir três ações. Primeiramente, o problema de otimização distinta pode ser mapeado para um processador de computador. Em algumas modalidades, o processador de computador pode incluir um processador quântico e/ou supercondutor e o mapeamento do problema de otimização distinta para o processador de computador pode incluir programar os elementos (por exemplo, qubits e acopladores) do processador quântico e/ou supercondutor. O mapeamento do problema de otimização distinta para o processador de computador pode incluir o problema de otimização distinta em pelo menos uma mídia de armazenamento legível por computador ou processador, tal como uma mídia de armazenamento não transitório legível por computador ou memória (por exemplo, volátil ou não volátil).[0942] Additionally, in other embodiments, the discrete optimization problem may be solved using a computer processor, such as a quantum processor. In such a case, solving the discrete optimization problem may then involve, for example, evolving the quantum processor to the configuration that minimizes the energy of the system in order to establish a bit string that satisfies the optimization objective(s). Accordingly, in some embodiments, the action of solving a discrete optimization problem may include three actions. First, the discrete optimization problem may be mapped to a computer processor. In some embodiments, the computer processor may include a quantum and/or superconducting processor, and mapping the discrete optimization problem to the computer processor may include programming the elements (e.g., qubits and couplers) of the quantum and/or superconducting processor. The mapping of the discrete optimization problem to the computer processor may include the discrete optimization problem onto at least one computer-readable storage medium or processor, such as a non-transitory computer-readable storage medium or memory (e.g., volatile or non-volatile).

[0943] Consequentemente, em vista do exposto acima, em vários casos, é fornecido um dispositivo, sistema e método para executar uma segmentação de análise de sequência, tal como em material genômico. Por exemplo, o material genômico pode incluir uma pluralidade de leituras de dados genômicos, tais como em um arquivo de imagem, BCL, arquivo FASTQ e similares. Em várias modalidades, o dispositivo e/ou sistema pode ser empregado para executar uma análise de sequência em dados genômicos, por exemplo, leituras de dados genômicos, tal como com o uso de um índice de uma ou mais sequências genéticas de referência, por exemplo, armazenadas em uma memória, por exemplo, em que cada leitura de dados genômicos e cada sequência de referência representa uma sequência de nucleotídeos.[0943] Accordingly, in view of the foregoing, in various instances, there is provided a device, system, and method for performing a sequence analysis segmentation, such as on genomic material. For example, the genomic material may include a plurality of genomic data reads, such as in an image file, BCL, FASTQ file, and the like. In various embodiments, the device and/or system may be employed to perform a sequence analysis on genomic data, e.g., genomic data reads, such as using an index of one or more reference genetic sequences, e.g., stored in a memory, e.g., wherein each genomic data read and each reference sequence represents a nucleotide sequence.

[0944] Particularmente, em várias modalidades, o dispositivo pode ser um dispositivo de computação quântica, tal como formado por um conjunto de circuitos lógicos quânticos, por exemplo, circuitos lógicos quânticos com fio, por exemplo, em que os circuitos lógicos são interconectados um ao outro. Em vários casos, os circuitos lógicos quânticos podem ser interconectados por uma ou mais conexões de supercondutor. Adicionalmente, uma ou mais conexões de supercondutor podem incluir uma interface de memória, tal como para acessar a memória. Em conjunto, os circuitos lógicos e interconexões podem ser configurados para processar informações representadas como um estado quântico que é por si mesmo representado como um conjunto de um ou mais qubits. Mais particularmente, o conjunto de circuitos lógicos quânticos com fio pode ser disposto como um conjunto de mecanismos de processamento, tal como em que cada mecanismo de processamento pode ser formado por um subconjunto dos circuitos lógicos quânticos com fio e podem ser configurados para realizar uma ou mais etapas na segmentação de análise de sequência nas leituras de dados genômicos.[0944] Particularly, in various embodiments, the device may be a quantum computing device, such as formed by a set of quantum logic circuits, e.g., hard-wired quantum logic circuits, wherein the logic circuits are interconnected to one another. In various cases, the quantum logic circuits may be interconnected by one or more superconducting connections. Additionally, the one or more superconducting connections may include a memory interface, such as for accessing memory. Together, the logic circuits and interconnections may be configured to process information represented as a quantum state that is itself represented as a set of one or more qubits. More particularly, the set of hardwired quantum logic circuits may be arranged as a set of processing engines, such as wherein each processing engine may be formed by a subset of the hardwired quantum logic circuits and may be configured to perform one or more steps in segmenting sequence analysis on reads of genomic data.

[0945] Por exemplo, o conjunto de mecanismos de processamento pode ser configurado a fim de incluir um processamento de imagens, chamada de base, mapeamento, alinhamento, classificação, chamada de variante e/ou outro módulo de processamento de genômica e/ou bioinformática. Por exemplo, em várias modalidades, pode ser incluído um módulo de mapeamento, tal como em uma primeira configuração com fio. Adicionalmente, em modalidades adicionais, pode ser incluído um módulo de alinhamento, tal como em uma segunda configuração com fio. Adicionalmente, pode ser incluído um módulo de classificação, tal como em uma terceira configuração com fio. E, em modalidades adicionais, pode ser incluído um módulo de chamada de variante, tal como em uma quarta configuração com fio. Ainda adicionalmente, em várias modalidades, pode ser incluído um módulo de processamento de imagens e/ou chamada de base em configurações com fio adicionais, tais como em que um ou mais dessas configurações com fio podem incluir circuitos lógicos quânticos com fio que podem ser dispostos como um conjunto de mecanismos de processamento.[0945] For example, the set of processing engines may be configured to include an image processing, base calling, mapping, alignment, classification, variant calling, and/or other genomics and/or bioinformatics processing module. For example, in various embodiments, a mapping module may be included, such as in a first wired configuration. Additionally, in additional embodiments, an alignment module may be included, such as in a second wired configuration. Additionally, a classification module may be included, such as in a third wired configuration. And, in additional embodiments, a variant calling module may be included, such as in a fourth wired configuration. Still additionally, in various embodiments, an image processing and/or base calling module may be included in additional wired configurations, such as wherein one or more of these wired configurations may include wired quantum logic circuits that may be arranged as a set of processing engines.

[0946] Mais particularmente, em casos particulares, um sistema e/ou dispositivo de computação quântica pode incluir um módulo de mapeamento, em que o módulo de mapeamento compreende um conjunto de circuitos lógicos quânticos que são dispostos como um conjunto de mecanismos de processamento, um ou mais dos quais são configurados para realizar uma ou mais etapas de um procedimento de mapeamento. Por exemplo, um ou mais mecanismos de processamento quântico podem ser configurados para receber uma leitura de dados genômicos, tal como através de uma ou mais dentre uma pluralidade de conexões de supercondutor. Adicionalmente, o um ou mais mecanismos de processamento quânticos podem ser configurados para extrair uma porção da leitura para gerar uma semente, como em que a semente pode representar um subconjunto da sequência de nucleotídeos representados pela leitura. Adicionalmente, um ou mais mecanismos de processamento quânticos podem ser configurados para calcular um primeiro endereço dentro do índice com base na semente, e acessar o endereço no índice na memória, a fim de receber um registro a partir do endereço, como em que o registro representa informações de posição na sequência genética de referência. Adicionalmente, o um ou mais mecanismos de processamento quântico podem ser configurados para determinar, por exemplo, com base no registro, uma ou mais posições correspondentes a partir da leitura até a sequência genética de referência; e emitir pelo menos uma das posições correspondentes para a memória através da interface de memória.[0946] More particularly, in particular instances, a quantum computing system and/or device may include a mapping module, wherein the mapping module comprises a set of quantum logic circuits that are arranged as a set of processing engines, one or more of which are configured to perform one or more steps of a mapping procedure. For example, the one or more quantum processing engines may be configured to receive a readout of genomic data, such as through one or more of a plurality of superconductor connections. Additionally, the one or more quantum processing engines may be configured to extract a portion of the readout to generate a seed, such as wherein the seed may represent a subset of the nucleotide sequence represented by the readout. Additionally, the one or more quantum processing engines may be configured to calculate a first address within the index based on the seed, and access the address in the index in memory in order to receive a record from the address, such as wherein the record represents positional information in the reference genetic sequence. Additionally, the one or more quantum processing engines may be configured to determine, for example, based on the record, one or more corresponding positions from the readout to the reference genetic sequence; and output at least one of the corresponding positions to memory via the memory interface.

[0947] Adicionalmente, o módulo de mapeamento pode incluir um conjunto de circuitos lógicos quânticos que são dispostos como um conjunto de mecanismos de processamento configurado para calcular um segundo endereço dentro do índice, por exemplo, com base tanto no registro como em um segundo subconjunto da sequência de nucleotídeos que não está contida no primeiro subconjunto da sequência de nucleotídeos. O mecanismo (ou mecanismos) de processamento podem, então, acessar o segundo endereço no índice na memória a fim de receber um segundo registro a partir do segundo endereço, como em que o segundo registro ou um registro subsequente inclui informações de posição na sequência genética de referência. O mecanismo de processamento pode ser adicionalmente configurado para determinar, com base nas informações de posição, a uma ou mais posições correspondentes a partir da leitura para a sequência genética de referência.[0947] Additionally, the mapping module may include a set of quantum logic circuits that are arranged as a set of processing engines configured to calculate a second address within the index, for example, based on both the record and a second subset of the nucleotide sequence that is not contained in the first subset of the nucleotide sequence. The processing engine(s) may then access the second address in the index in memory in order to receive a second record from the second address, such as wherein the second or a subsequent record includes position information in the reference genetic sequence. The processing engine may be further configured to determine, based on the position information, one or more corresponding positions from the read to the reference genetic sequence.

[0948] Adicionalmente, em diversos casos, um sistema e/ou dispositivo de computação quântica pode incluir um módulo de alinhamento, em que o módulo de alinhamento compreende um conjunto de circuitos lógicos quânticos que são dispostos como um conjunto de mecanismos de processamento, um ou mais dos quais são configurados para realizar uma ou mais etapas de um procedimento de alinhamento. Por exemplo, um ou mais mecanismos de processamento quântico podem ser configurados para receber uma pluralidade de posições mapeadas para a leitura a partir da memória, e para acessar a memória para recuperar um segmento da sequência genética de referência que corresponde a cada uma das posições mapeadas. O um ou mais mecanismos de processamento formados como um módulo de alinhamento podem ser adicionalmente configurados para calcular um alinhamento da leitura para cada segmento recuperado da sequência genética de referência, a fim de gerar uma pontuação para cada alinhamento. Adicionalmente, uma vez que uma ou mais pontuações foram geradas, pelo menos um alinhamento de melhor pontuação da leitura pode ser selecionado. Em casos particulares, o dispositivo de computação quântica pode incluir um conjunto de circuitos lógicos quânticos que são dispostos como um conjunto de mecanismos de processamento que são configurados para realizar um alinhamento com lacuna ou sem lacuna, tal como um alinhamento de Smith Waterman.[0948] Additionally, in various instances, a quantum computing system and/or device may include an alignment module, wherein the alignment module comprises a set of quantum logic circuits that are arranged as a set of processing engines, one or more of which are configured to perform one or more steps of an alignment procedure. For example, the one or more quantum processing engines may be configured to receive a plurality of mapped positions for reading from memory, and to access memory to retrieve a segment of the reference genetic sequence that corresponds to each of the mapped positions. The one or more processing engines formed as an alignment module may be further configured to calculate a read alignment for each retrieved segment of the reference genetic sequence in order to generate a score for each alignment. Additionally, once one or more scores have been generated, at least one best-scoring read alignment may be selected. In particular cases, the quantum computing device may include a set of quantum logic circuits that are arranged as a set of processing engines that are configured to perform a gapped or gapless alignment, such as a Smith Waterman alignment.

[0949] Adicionalmente, em certos casos, um sistema e/ou dispositivo de computação quântica pode incluir um módulo de chamada de variante, em que o módulo de chamada de variante compreende um conjunto de circuitos lógicos quânticos que são dispostos como um conjunto de mecanismos de processamento, um ou mais dos quais são configurados para realizar uma ou mais etapas de um procedimento de chamada de variante. Por exemplo, o módulo de chamada de variante de computação quântica pode incluir um conjunto de circuitos lógicos quânticos que são adaptados para executar uma análise em uma pluralidade de leituras de dados genômicos, como com o uso de um ou mais haplótipos candidatos, por exemplo, armazenados em uma memória, em que cada leitura de dados genômicos e cada haplótipo candidato representam uma sequência de nucleotídeos.[0949] Additionally, in certain instances, a quantum computing system and/or device may include a variant calling module, wherein the variant calling module comprises a set of quantum logic circuits that are arranged as a set of processing engines, one or more of which are configured to perform one or more steps of a variant calling procedure. For example, the quantum computing variant calling module may include a set of quantum logic circuits that are adapted to perform an analysis on a plurality of genomic data reads, such as using one or more candidate haplotypes, e.g., stored in a memory, wherein each genomic data read and each candidate haplotype represents a sequence of nucleotides.

[0950] Especificamente, o conjunto de circuitos lógicos quânticos pode ser formado como um ou mais mecanismos de processamento quântico que são configurados para receber uma ou mais leituras de dados genômicos e gerar e/ou receber o um ou mais haplótipos candidatos, por exemplo, a partir da memória, como através de uma ou mais dentre uma pluralidade de conexões de supercondutor. Adicionalmente, o um ou mais mecanismos de processamento quânticos podem ser configurados para receber uma ou mais leituras de dados genômicos e o um ou mais haplótipos candidatos a partir da memória, bem como comparar nucleotídeos em cada uma dentre a uma ou mais leituras com o um ou mais haplótipos candidatos, a fim de determinar uma probabilidade de cada haplótipo candidato que representa uma chamada de variante correta. Adicionalmente, um ou mais quantum mecanismos de processamento podem ser configurados para gerar uma saída com base na probabilidade determinada.[0950] Specifically, the quantum logic circuitry may be formed as one or more quantum processing engines that are configured to receive one or more genomic data readouts and generate and/or receive the one or more candidate haplotypes, e.g., from memory, such as through one or more of a plurality of superconductor connections. Additionally, the one or more quantum processing engines may be configured to receive one or more genomic data readouts and the one or more candidate haplotypes from memory, and compare nucleotides in each of the one or more readouts to the one or more candidate haplotypes in order to determine a probability that each candidate haplotype represents a correct variant call. Additionally, the one or more quantum processing engines may be configured to generate an output based on the determined probability.

[0951] Adicionalmente, em vários casos, o conjunto de circuitos lógicos quânticos pode ser formado como um ou mais mecanismos de processamento quântico que são configurados para determinar uma probabilidade de observar cada leitura da pluralidade de leituras com base em pelo menos um haplótipo candidato que é uma sequência verdadeira de nucleotídeos, por exemplo, de um organismo de fonte da pluralidade de leituras. Em casos particulares, em relação à determinação de probabilidade, o um ou mais mecanismos de processamento quântico podem ser configurados para executar um modelo oculto de Markov. Mais particularmente, em modalidades adicionais, o um ou mais mecanismos de processamento quântico podem ser configurados para fundir a pluralidade de leituras em uma ou mais sequências de nucleotídeos contíguas e/ou para gerar o um ou mais haplótipos candidatos da uma ou mais sequências de nucleotídeos contíguas. Por exemplo, em várias modalidades, a fusão da pluralidade de leituras inclui o um ou mais mecanismos de processamento quântico que constroem um gráfico de Bruijn.[0951] Additionally, in various instances, the quantum logic circuitry may be formed as one or more quantum processing engines that are configured to determine a probability of observing each readout of the plurality of readouts based on at least one candidate haplotype that is a true nucleotide sequence, e.g., from a source organism of the plurality of readouts. In particular instances, with respect to determining the probability, the one or more quantum processing engines may be configured to execute a hidden Markov model. More particularly, in additional embodiments, the one or more quantum processing engines may be configured to fuse the plurality of readouts into one or more contiguous nucleotide sequences and/or to generate the one or more candidate haplotypes from the one or more contiguous nucleotide sequences. For example, in various embodiments, the fusion of the plurality of readouts includes the one or more quantum processing engines that construct a de Bruijn graph.

[0952] Consequentemente, à luz do mencionado acima, é fornecido um sistema para realizar diversas computações na resolução de problemas relacionados ao processamento de genômica e/ou bioinformática. Por exemplo, o sistema pode incluir um ou mais dentre um sequenciador automatizado no local, por exemplo, NGS e/ou um servidor de processamento dos quais qualquer um ou ambos podem incluir uma ou mais CPUs, GPUs e/ou outros circuitos integrados, como incluindo um FPGA, ASIC e/ou ASIC estruturado que são configurados conforme descrito no presente documento para realizar uma ou mais etapas em uma segmentação de análise de sequência. Particularmente, o sequenciador Next Gen pode ser configurado para sequenciar uma pluralidade de sequências de ácidos nucleicos a fim de gerar um ou mais arquivos de imagem, BCL e/ou FASTQ que representam as sequências de ácidos nucleicos sequenciadas, tais sequências de ácidos nucleicos podem ser uma sequência de DNA e/ou RNA. Esses arquivos de sequência podem ser processados pelo próprio sequenciador ou por uma unidade de servidor associada, como em que o sequenciador e/ou o servidor associado inclui um circuito integrado, como um FPGA ou ASIC, configurado conforme descrito no presente documento para realizar uma ou mais etapas em uma segmentação de análise de sequência secundária.[0952] Accordingly, in light of the foregoing, a system is provided for performing various computations in solving problems related to genomics and/or bioinformatics processing. For example, the system may include one or more of an on-site automated sequencer, e.g., NGS, and/or a processing server, either or both of which may include one or more CPUs, GPUs, and/or other integrated circuits, such as including an FPGA, ASIC, and/or structured ASIC, that are configured as described herein to perform one or more steps in a sequence analysis segmentation. In particular, the Next Gen sequencer may be configured to sequence a plurality of nucleic acid sequences in order to generate one or more image, BCL, and/or FASTQ files representing the sequenced nucleic acid sequences, such nucleic acid sequences being a DNA and/or RNA sequence. Such sequence files may be processed by the sequencer itself or by an associated server unit, such as wherein the sequencer and/or associated server includes an integrated circuit, such as an FPGA or ASIC, configured as described herein to perform one or more steps in a secondary sequence analysis segment.

[0953] Entretanto, em vários casos, como em que o sequenciador automatizado e/ou um servidor associado não é configurado para realizar uma análise de sequência secundária nos dados gerados a partir do sequenciador, os dados gerados podem ser transmitidos para um servidor remoto que é configurado para realizar uma análise de sequência secundária e/ou terciária nos dados, como através de uma interface mediada por nuvem. Em tal caso, o servidor acessível por nuvem pode ser configurado para receber os dados de sequência gerados, como na forma de imagem, BCL, e/ou FASTQ, e pode ser adicionalmente configurado para realizar uma análise de processamento de imagens, por exemplo, primária e/ou uma análise de processamento de secundária e/ou terciária, como uma segmentação de análise de sequência, nos dados recebidos. Por exemplo, o servidor acessível por nuvem pode ser um ou mais servidores que incluem uma CPU e/ou uma GPU, dos quais um ou ambos podem estar associados a um circuito integrado, como um FPGA ou ASIC, conforme descrito no presente documento. Particularmente, em certos casos, o servidor acessível por nuvem pode ser um servidor de computação quântica, conforme descrito no presente documento.[0953] However, in various cases, such as where the automated sequencer and/or an associated server is not configured to perform secondary sequence analysis on data generated from the sequencer, the generated data may be transmitted to a remote server that is configured to perform secondary and/or tertiary sequence analysis on the data, such as through a cloud-mediated interface. In such a case, the cloud-accessible server may be configured to receive the generated sequence data, such as in the form of image, BCL, and/or FASTQ, and may be further configured to perform an image processing analysis, e.g., primary and/or secondary and/or tertiary processing analysis, such as a segmentation sequence analysis, on the received data. For example, the cloud-accessible server may be one or more servers that include a CPU and/or a GPU, one or both of which may be associated with an integrated circuit, such as an FPGA or ASIC, as described herein. In particular, in certain cases, the cloud-accessible server may be a quantum computing server as described in this document.

[0954] Especificamente, o servidor acessível por nuvem pode ser configurado para realizar uma análise de genômica e/ou bioinformática primária, secundária e/ou terciária nos dados recebidos, tais análises podem incluir realizar uma ou mais etapas em um ou mais protocolos de processamento de imagens, chamada de base, mapeamento, alinhamento, classificação e/ou chamada de variante. Em certos casos, algumas etapas podem ser realizadas por uma plataforma de processamento, como uma CPU ou GPU, e outros podem ser realizados por uma outra plataforma de processamento, como um circuito integrado associado, por exemplo, acoplado firmemente, como um FPGA ou ASIC, que é especificamente configurado para realizar diversas etapas na segmentação de análise de sequências. Em tais casos, em que os dados e os resultados de análise devem ser transferidos de uma plataforma para outra, o sistema e seus componentes podem ser configurados para compactar os dados antes da transferência, e descompactar os dados uma vez transferidos, e como tal, os componentes de sistema podem ser configurados para gerar um ou mais dentre um arquivo SAM, BAM ou CRAM, como para a transferência. Adicionalmente, em várias modalidades, o servidor acessível por nuvem pode ser uma plataforma de computação quântica que é configurada no presente documento para realizar uma ou mais etapas na segmentação de análise de sequência, conforme descrito no presente documento, e pode incluir a realização de uma ou mais etapas de processamento secundário e/ou terciário de acordo com um ou mais métodos revelados no presente documento.[0954] Specifically, the cloud-accessible server may be configured to perform primary, secondary, and/or tertiary genomics and/or bioinformatics analysis on the received data, such analyses may include performing one or more steps in one or more image processing protocols, base calling, mapping, alignment, classification, and/or variant calling. In certain cases, some steps may be performed by one processing platform, such as a CPU or GPU, and others may be performed by another processing platform, such as a tightly coupled associated integrated circuit, such as an FPGA or ASIC, that is specifically configured to perform multiple steps in the sequence analysis segmentation. In such cases, where data and analysis results must be transferred from one platform to another, the system and its components may be configured to compress the data prior to transfer, and decompress the data once transferred, and as such, the system components may be configured to generate one or more of a SAM, BAM, or CRAM file, as required for transfer. Additionally, in various embodiments, the cloud-accessible server may be a quantum computing platform that is configured herein to perform one or more steps in sequence analysis segmentation as described herein, and may include performing one or more secondary and/or tertiary processing steps in accordance with one or more methods disclosed herein.

[0955] Adicionalmente, em relação à computação quântica, detalhes e modalidades de processadores quânticos exemplificativos e os métodos de seu uso que podem ser empregados em conjunto com os presentes dispositivos, sistemas e métodos são descritos nas patentes nos U.S. 7.135.701; 7.533.068; 7.969.805; 8.560.282; 8.700.689; 8.738.105; 9.026.574; 9.355.365; 9.405.876; bem como as diversas contrapartes das mesmas, que estão incorporadas ao presente documento a título de referência, em suas totalidades.[0955] Additionally, with respect to quantum computing, details and embodiments of exemplary quantum processors and methods of their use that may be employed in conjunction with the present devices, systems, and methods are described in U.S. Patents 7,135,701; 7,533,068; 7,969,805; 8,560,282; 8,700,689; 8,738,105; 9,026,574; 9,355,365; 9,405,876; as well as the various counterparts thereof, which are incorporated herein by reference in their entireties.

[0956] Adicionalmente, em relação ao módulo de inteligência artificial apresentado acima, em um aspecto, é fornecido um módulo de inteligência artificial acessível por nuvem, e é configurado para ser acoplado de modo comunicativo e operacional a um ou mais dentre os outros componentes da segmentação BioIT revelada no presente documento. Por exemplo, o módulo A/I pode funcionar estreitamente com o WMS a fim de direcionar e/ou controlar de modo eficaz os diversos processos do sistema revelado no presente documento. Consequentemente, em várias modalidades, é fornecido um módulo A/I, em que o módulo A/I é configurado para agir como uma interface entre o mundo genômico e o mundo clínico.[0956] Additionally, with respect to the artificial intelligence module disclosed above, in one aspect, a cloud-accessible artificial intelligence module is provided, and is configured to be communicatively and operatively coupled to one or more of the other BioIT segmentation components disclosed herein. For example, the A/I module may work closely with the WMS to effectively direct and/or control the various processes of the system disclosed herein. Accordingly, in various embodiments, an A/I module is provided, wherein the A/I module is configured to act as an interface between the genomic world and the clinical world.

[0957] Por exemplo, em diversos casos, o sistema BioIT pode ser configurado para receber dados clínicos. Em tal caso, o sistema de gerenciador de fluxo de trabalho pode ser configurado para analisar os dados clínicos e outros tais dados, e implantar um ou mais sistemas de regra determinística, a fim de derivar dados de resultados de acordo com sua análise dos dados clínicos. Por exemplo, em certas modalidades, os diversos banco de dados do sistema podem ser configurados para que tenham uma arquitetura de relação.[0957] For example, in various instances, the BioIT system may be configured to receive clinical data. In such an instance, the workflow management system may be configured to analyze the clinical and other such data, and implement one or more deterministic rule systems to derive outcome data in accordance with its analysis of the clinical data. For example, in certain embodiments, the various databases of the system may be configured to have a relational architecture.

[0958] Essas construções podem ser representadas por uma ou mais estruturas de tabela. Uma série de tabelas, por exemplo, pode ser, então, empregada por meio das quais podem ser feitas correlações pelo WMS em um modo iterativo. Por exemplo, em diversos modelos de uso, uma primeira correlação pode ser feita em relação ao nome de um sujeito com uma condição médica. Uma outra tabela pode ser, então, empregada para correlacionar a condição médica do sujeito com seu medicamento. De modo semelhante, uma tabela adicional pode ser usada para correlacionar o progresso do medicamento em relação ao alívio de sintomas e/ou da própria doença. Uma chave pode ser usada para correlacionar as tabelas, tal chave pode ser acessada em resposta ao comando ou aviso de questão. A chave pode ser qualquer identificador comum, como um nome, um número, por exemplo, um número de seguro social, número de identificação fiscal, número de empregado, um número de telefone e similares, por meio da qual uma ou mais tabelas podem ser acessadas, correlacionadas e/ou uma questão respondida. Consequentemente, sem a chave, se torna mais difícil construir correlações entre as informações em uma tabela com aquelas de uma outra.[0958] These constructs may be represented by one or more table structures. A series of tables, for example, may then be employed through which correlations may be made by the WMS in an iterative fashion. For example, in various usage models, a first correlation may be made against a subject's name with a medical condition. Another table may then be employed to correlate the subject's medical condition with his or her medication. Similarly, an additional table may be used to correlate the medication's progress toward alleviating symptoms and/or the disease itself. A key may be used to correlate the tables, such a key may be accessed in response to a question prompt or command. The key may be any common identifier, such as a name, a number, e.g., a social security number, tax identification number, employee number, a telephone number, and the like, through which one or more tables may be accessed, correlated, and/or a question answered. Consequently, without the key, it becomes more difficult to build correlations between the information in one table with that in another.

[0959] Entretanto, em outros casos, o módulo A/I pode ser configurado para fornecer uma análise mais abrangente em dados gerados e/ou fornecidos. Por exemplo, o módulo A/I pode ser configurado a fim de implantar um ou mais protocolos de aprendizado de máquina nos dados do sistema que são desenvolvidos para ensinar o módulo AI a fazer correlações entre os dados genômicos, por exemplo, gerados pelo sistema, e uma deposição clínica de um ou mais sujeitos, como em vista de EMR e outros dados clinicamente relevantes inseridos no sistema.[0959] However, in other cases, the A/I module may be configured to provide more comprehensive analysis on generated and/or provided data. For example, the A/I module may be configured to deploy one or more machine learning protocols on system data that are designed to teach the AI module to make correlations between genomic data, e.g., generated by the system, and a clinical deposition of one or more subjects, such as in view of EMR and other clinically relevant data input into the system.

[0960] Especificamente, o módulo A/I pode incluir programação dirigida ao treinamento do sistema para reconhecer mais rapidamente, por exemplo, instantaneamente, como uma saída foi alcançada com base no tipo e características da entrada recebida. O sistema é, portanto, configurado para aprender a partir das entradas que o mesmo recebe, e dos resultados que o mesmo emite, para que tenha capacidade para extrair correlações de maneira mais rápida e precisa com base na entrada inicial de dados recebidos. Tipicamente, os dados de entrada podem ser de dois tipos gerais. Em um primeiro caso, os dados podem ser de um tipo em que a saída, por exemplo, a resposta, é conhecida. Esse tipo de dados pode ser inserido no sistema e usado para propósitos de treinamento. O segundo tipo de dados pode ser aquele em que a resposta é desconhecida e, portanto, precisa ser determinada, esses dados serão provavelmente dados genômicos, mediante o qual a análise deve ser feita, ou dados clínicos para quais resultados clinicamente relevantes devem ser determinados. Especificamente, esses métodos podem ser usados para intensificar a capacidade de módulos A/I para aprender a partir do primeiro tipo de dados de entrada, a fim de prever melhor o resultado para o segundo tipo de dados de entrada. Especificamente, com base em evidência histórica, o módulo A/I pode ser configurado para aprender a prever resultados com base em dados observados anteriormente.[0960] Specifically, the A/I module may include programming directed at training the system to recognize more quickly, e.g., instantly, how an output was achieved based on the type and characteristics of the input received. The system is therefore configured to learn from the inputs it receives, and the results it outputs, so that it is able to extract correlations more quickly and accurately based on the initial data input received. Typically, the input data may be of two general types. In the first case, the data may be of a type where the output, e.g., the response, is known. This type of data may be input to the system and used for training purposes. The second type of data may be that where the response is unknown and therefore needs to be determined, such data likely being genomic data, upon which analysis is to be done, or clinical data for which clinically relevant results are to be determined. Specifically, these methods can be used to enhance the ability of A/I modules to learn from the first type of input data in order to better predict the outcome for the second type of input data. Specifically, based on historical evidence, the A/I module can be configured to learn to predict outcomes based on previously observed data.

[0961] Mais especificamente, uma plataforma de genômica clínica é apresentada no presente documento, em que a plataforma de genômica clínica é configurada para correlacionar resultados clínicos de doenças com dados genômicos. Em tal caso, os perfis clínicos de sujeitos podem ser inseridos no sistema e podem ser avaliados juntamente com seu perfil genômico determinado. Particularmente, na combinação desses dois conjuntos de dados, o módulo A/I é configurado para determinar as diversas interrelações entre os mesmos. Consequentemente, em uma primeira etapa, um banco de dados de gráfico ou gráfico conhecido pode ser construído. Por exemplo, nesse caso, o gráfico de conhecimento pode ser composto de três elementos típicos, que basicamente incluem um sujeito, um predicado e um objeto, os mesmos podem formar nós, e a relação entre os nós precisa ser determinada. Qualquer ponto de dados particular pode ser selecionado como um nó, e os nós podem variar com base nas consultas que são realizadas. Existem vários tipos diferentes de relações que podem ser determinadas. Por exemplo, as relações podem ser determinadas com base em seus efeitos, por exemplo, as mesmas são à base de efeito; ou podem ser determinadas com base em inferências, por exemplo, relações que são desconhecidas, mas determináveis.[0961] More specifically, a clinical genomics platform is presented herein, wherein the clinical genomics platform is configured to correlate clinical outcomes of diseases with genomic data. In such a case, clinical profiles of subjects can be input into the system and can be evaluated together with their determined genomic profile. Particularly, upon combining these two data sets, the A/I module is configured to determine the various interrelations between them. Accordingly, in a first step, a graph database or knowledge graph can be constructed. For example, in this case, the knowledge graph can be composed of three typical elements, which basically include a subject, a predicate and an object, which can form nodes, and the relationship between the nodes needs to be determined. Any particular data point can be selected as a node, and the nodes can vary based on the queries that are performed. There are several different types of relationships that can be determined. For example, relationships can be determined based on their effects, e.g., they are effect-based; or they can be determined based on inferences, for example, relationships that are unknown but determinable.

[0962] Consequentemente, em relação à construção do gráfico de conhecimento, qualquer ponto de dados particular pode formar um nó. Por exemplo, em um lado do gráfico, uma condição de doença pode formar um nó, e no outro lado do gráfico um genótipo, por exemplo, uma sequência de variâncias, pode formar um nó. Entre esses dois nós pode estar um terceiro nó, por exemplo, uma série de terceiros nós, como um ou mais sintomas, um ou mais medicamentos, uma ou mais alergias, uma ou mais outras condições ou traços fenotípicos, por exemplo, pressão sanguínea, colesterol, etc. Adicionalmente, entre esses nós estão as relações que podem ser determinadas.[0962] Accordingly, with respect to the construction of the knowledge graph, any particular data point may form a node. For example, on one side of the graph, a disease condition may form a node, and on the other side of the graph a genotype, e.g., a sequence of variances, may form a node. Between these two nodes may be a third node, e.g., a series of third nodes, such as one or more symptoms, one or more medications, one or more allergies, one or more other conditions or phenotypic traits, e.g., blood pressure, cholesterol, etc. Additionally, between these nodes are relationships that can be determined.

[0963] Especificamente, mediante a construção do gráfico de conhecimento, os dados clínicos inseridos no sistema, como a partir de instalações de registro médico, por exemplo, registros médicos eletrônicos, histórico familiar de condições médicas, etc. podem ser criptografados e transferidos de modo seguro eletronicamente. De modo semelhante, dados genômicos a partir do sujeito podem ser sequenciados e gerados de acordo com as etapas de processamento secundário apresentadas no presente documento. Adicionalmente, uma vez que esses dois nós foram estabelecidos, um ou mais terceiros nós podem ser inseridos no sistema, a partir da presença dos quais a relação (ou relações) entre os dois nós originais pode ser determinada.[0963] Specifically, by constructing the knowledge graph, clinical data entered into the system, such as from medical record facilities, e.g., electronic medical records, family history of medical conditions, etc., can be encrypted and securely transferred electronically. Similarly, genomic data from the subject can be sequenced and generated according to the secondary processing steps presented herein. Additionally, once these two nodes have been established, one or more third nodes can be inserted into the system, from the presence of which the relationship (or relationships) between the two original nodes can be determined.

[0964] Por exemplo, em um exemplo, um primeiro nó pode ser representado pelos registros médicos de uma pessoa ou uma população de pessoas, e um segundo nó pode ser representado por uma característica de doença. Em tal caso, um ou mais terceiros nós podem ser inseridos no sistema e gerados dentro do gráfico, como em que o terceiro nó pode ser um medicamento; uma condição física, biológica, mental e/ou característica; uma alergia; região geográfica; dieta, um item alimentício e/ou ingrediente; uma condição ambiental; uma condição geográfica; linhas de alimentação, torres centrais; e/ou similares. Uma série de relações pode ser, então, determinada mediante a análise de diversos pontos de conexão entre esses três itens. Particularmente, em um caso particular, um nó pode representar um paciente que sofre de uma condição de doença, um segundo nó pode ser os dados genômicos do paciente, e entre os terceiros nós pode ser as variações genômicas do paciente, por exemplo, as mutações do sujeito, cromossomo por cromossomo, seu medicamento, condições fisiológicas e similares. De modo semelhante, esse processo pode ser repetido para múltiplos sujeitos que têm o mesmo diagnóstico e/ou condição. Logo, dessa maneira, a correlação entre os mundos clínicos e genômicos pode ser determinada.[0964] For example, in one example, a first node may be represented by the medical records of a person or a population of people, and a second node may be represented by a disease characteristic. In such a case, one or more third nodes may be input into the system and generated within the graph, such as where the third node may be a medication; a physical, biological, mental condition and/or characteristic; an allergy; geographic region; diet, a food item and/or ingredient; an environmental condition; a geographic condition; power lines, central towers; and/or the like. A series of relationships may then be determined by analyzing various connection points between these three items. In particular, in a particular case, one node may represent a patient suffering from a disease condition, a second node may be the patient's genomic data, and among the third nodes may be the patient's genomic variations, e.g., the subject's mutations, chromosome by chromosome, his or her medication, physiological conditions, and the like. Similarly, this process can be repeated for multiple subjects who have the same diagnosis and/or condition. Thus, in this way, the correlation between the clinical and genomic worlds can be determined.

[0965] Consequentemente, uma etapa na construção de um gráfico clínico e genômico é definir os nós âncoras, sendo que esses representam os dois elementos limitantes entre os quais todas as diversas semelhanças são definidas e exploradas. Logo, uma etapa adicional é definir todas as correspondências conhecidas entre os dois nós âncoras, que pode ser representado no gráfico como um terceiro nó. Essas correspondências conhecidas podem ser construídas em torno do detalhamento dos efeitos causados por e/ou das características de um nó ou outro. Esses formam as relações conhecidas e/ou observáveis entre os nós. A partir dessas relações conhecidas, um segundo tipo de relação pode ser explorado e/ou determinado, tais relações podem ser construídas em inferências. Adicionalmente, para determinar melhor os resultados causais e/ou previsíveis, as diversas relações diferentes podem ser ponderadas, como com base no grau de certeza, número de semelhanças, número de casos que compartilham o nó, número de relações comuns e similares.[0965] Accordingly, one step in constructing a clinical and genomic graph is to define anchor nodes, which represent the two bounding elements between which all the various similarities are defined and explored. Then, an additional step is to define all the known correspondences between the two anchor nodes, which can be represented in the graph as a third node. These known correspondences can be constructed around the details of the effects caused by and/or characteristics of one node or another. These form the known and/or observable relationships between the nodes. From these known relationships, a second type of relationship can be explored and/or determined, such relationships can be built into inferences. Additionally, to better determine causal and/or predictable outcomes, the various different relationships can be weighted, such as based on degree of certainty, number of similarities, number of cases sharing the node, number of common relationships, and similarities.

[0966] Logo, a construção e implantação de um gráfico de conhecimento dinâmico é o coração da plataforma de processamento de genômica e clínico. Conforme indicado, as diversas plataformas de processamento do sistema global podem ser acopladas em conjunto, a fim de transferir de modo contínuo dados entre seus diversos componentes. Por exemplo, conforme indicado, as segmentações de mapeamento, alinhamento e/ou chamada de variante podem ser configuradas para transmitir seus dados, por exemplo, dados de resultados, para o módulo de inteligência artificial. Particularmente, o módulo A/I pode ser configurado para receber entradas de dados a partir de um ou mais componentes de plataforma de processamento secundário e/ou um ou mais outros componentes do sistema. Mais particularmente, o módulo A/I module é configurado para receber dados de mapeamento, alinhados e/ou de chamada de variante a partir do mapeador, alinhador e/ou mecanismos de processamento de chamada de variante , e para tomar esses dados e usar os mesmos para gerar um ou mais nós dentro do gráfico de conhecimento. Adicionalmente, conforme indicado, o módulo A/I pode ser configurado para receber dados de entrada a partir de uma ou mais outras fontes, tais como a partir de um consultório médico, um provedor de serviços de cuidados com a saúde, um laboratório de pesquisa, uma instalação de armazenamento de registros e similares, como em que os registros incluem dados que pertencem ao bem-estar físico, mental e/ou emocional de um ou mais sujeitos, e para tomar esses dados e usar os mesmos para gerar um ou mais nós dentro do gráfico de conhecimento.[0966] Thus, the construction and deployment of a dynamic knowledge graph is the heart of the genomic and clinical processing platform. As indicated, the various processing platforms of the overall system may be coupled together in order to seamlessly transfer data between its various components. For example, as indicated, mapping, alignment, and/or variant calling segments may be configured to transmit their data, e.g., results data, to the artificial intelligence module. In particular, the A/I module may be configured to receive data inputs from one or more secondary processing platform components and/or one or more other system components. More particularly, the A/I module is configured to receive mapping, alignment, and/or variant calling data from the mapper, aligner, and/or variant calling processing engines, and to take that data and use it to generate one or more nodes within the knowledge graph. Additionally, as indicated, the A/I module may be configured to receive input data from one or more other sources, such as from a physician's office, a health care service provider, a research laboratory, a records storage facility, and the like, such as where the records include data pertaining to the physical, mental, and/or emotional well-being of one or more subjects, and to take such data and use the same to generate one or more nodes within the knowledge graph.

[0967] Adicionalmente, uma vez que a arquitetura de gráfico de conhecimento foi construída, a mesma pode ser continuamente atualizada e desenvolvida mediante a adição de cada vez mais dados pertinentes na estrutura de conhecimento, construindo cada vez mais relações e/ou nós potenciais. Em tal caso, os nós limitantes podem ser de qualquer combinação de nós, e como tal, em certos casos, podem ser selecionáveis por usuário. Por exemplo, em várias modalidades, o sistema pode ser configurado para ser acessível por terceiros. Em tal caso, o usuário pode acessar o módulo A/I, por exemplo, através de uma interface de usuário configurada adequadamente, transferir por upload informações pertinentes no sistema e/ou determinar os nós relevantes através do qual se limita uma investigação, por exemplo, clicando-se em ou arrastando e soltando os mesmos, e pode formular uma questão relevante a ser respondida pelo módulo A/I. Consequentemente, o usuário pode analisar e/ou selecionar os nós limitantes e, então, permitir que o sistema gere um mapa de conhecimento adequado que emprega os nós selecionados, e determinar as relações entre os nós, a partir de tais relações diversas investigações podem ser consultadas e respondidas, ou pelo menos inferidas, por exemplo, pelo sistema A/I.[0967] Additionally, once the knowledge graph architecture has been constructed, it may be continually updated and developed by adding more and more pertinent data to the knowledge structure, building more and more potential relationships and/or nodes. In such a case, the bounding nodes may be any combination of nodes, and as such, in certain cases, may be user selectable. For example, in various embodiments, the system may be configured to be accessible by third parties. In such a case, the user may access the A/I module, e.g., through a suitably configured user interface, upload pertinent information to the system, and/or determine the relevant nodes by which to limit an inquiry, e.g., by clicking or dragging and dropping them, and may formulate a relevant question to be answered by the A/I module. Consequently, the user can analyze and/or select the limiting nodes and then allow the system to generate a suitable knowledge map that employs the selected nodes, and determine the relationships between the nodes, from which various inquiries can be queried and answered, or at least inferred, for example, by the A/I system.

[0968] Por exemplo, em um modelo de uso, um usuário pode ser um médico que deseja saber como uma certa dosagem de fármaco está afetando um paciente em relação a uma determinada doença. Consequentemente, o médico pode transferir por upload o EMR do paciente, a condição de doença, e a dosagem de fármaco, e com esses dados o módulo A/I pode gerar um gráfico de conhecimento adequado (e/ou adicionar a um gráfico de conhecimento já existente), a partir de tal gráfico de conhecimento, os nós limitantes podem ser selecionados e as relações determinadas. Adicionalmente, em vários casos, o usuário pode transferir por upload os dados genéticos do paciente, tais dados podem ser submetidos ao processamento secundário, e os resultados do mesmo, por exemplo, dados de resultado mapeados, alinhados e/ou de chamada de variante, e transferidos por upload para o módulo A/I. Em tal caso, os dados de doença e/ou EMR e/ou histórico médico familiar podem ser correlacionados com os dados genômicos, a partir de tais dados, as relações podem ser determinadas, as inferências avaliadas e feitas previsões.[0968] For example, in one usage model, a user may be a physician who wishes to know how a certain drug dosage is affecting a patient with respect to a certain disease. Accordingly, the physician may upload the patient's EMR, disease condition, and drug dosage, and with this data the A/I module may generate a suitable knowledge graph (and/or add to an existing knowledge graph), from which knowledge graph, boundary nodes may be selected and relationships determined. Additionally, in various cases, the user may upload the patient's genetic data, such data may undergo secondary processing, and the results thereof, e.g., result data mapped, aligned, and/or variant calling, and uploaded to the A/I module. In such a case, the disease and/or EMR and/or family medical history data may be correlated with the genomic data, from which relationships may be determined, inferences evaluated, and predictions made.

[0969] Especificamente, um VCF do sujeito pode ser inserido no sistema, por exemplo, todas as propriedades cromossômicas determinadas podem ser transferidas por upload, por exemplo, como uma constelação de nós, tais nós que podem ser usados para determinar diversas relações pertinentes para o sujeito, como consultando-se o sistema e permitindo-se que o mesmo gere as conexões adequadas a partir das quais uma resposta pode ser inferida. Mais especificamente, uma ou mais características fenotípicas do sujeito, por exemplo, a ontologia de fenótipo humano, podem ser transferidas por upload para o sistema, a fim de gerar uma constelação adicional de nós. Por exemplo, quando os históricos genômicos e/ou médicos de duas pessoas são inseridos no sistema, quaisquer relações entre os mesmos podem ser determinadas pelo módulo A/I, como em relação aos genótipos, fenótipos, condições, ambientes, geografias, alergias, antecedentes étinico-culturais, medicamentos comuns e similares.[0969] Specifically, a VCF of the subject may be input into the system, e.g., all determined chromosomal properties may be uploaded, e.g., as a constellation of nodes, such nodes may be used to determine various relationships pertinent to the subject, such as by querying the system and allowing the system to generate appropriate connections from which an answer may be inferred. More specifically, one or more phenotypic characteristics of the subject, e.g., the human phenotype ontology, may be uploaded into the system to generate an additional constellation of nodes. For example, when the genomic and/or medical histories of two individuals are input into the system, any relationships between them may be determined by the A/I module, such as with respect to genotypes, phenotypes, conditions, environments, geographies, allergies, ethnic-cultural backgrounds, common medications, and the like.

[0970] Adicionalmente, as relações entre duas ou mais características em um sujeito, ou entre sujeitos, podem ser determinadas. Por exemplo, uma relação entre uma pressão sanguínea sistólica e diastólica do sujeito pode ser determinada pelo sistema. Especificamente, uma série de leituras sistólicas e diastólicas históricas podem ser inseridas no sistema, de modo que a plataforma de aprendizado de máquina do sistema possa analisar as leituras e/ou determinar uma ou mais relações entre as duas, de modo que, se uma determinada entrada sistólica for inserida no sistema, a saída diastólica prevista possa ser dada, levando-se em conta as ponderações preditivas entre as duas. Deve-se observar que, embora o exemplo anterior seja dado em relação à pressão sanguínea, dentro de um único sujeito, o mesmo se aplicará a qualquer determinados nós que estão em uma relação matemática entre si, como em relação a uma multiplicidade de sujeitos e/ou uma variedade de condições.[0970] Additionally, relationships between two or more features within a subject, or between subjects, may be determined. For example, a relationship between a subject's systolic and diastolic blood pressure may be determined by the system. Specifically, a series of historical systolic and diastolic readings may be input to the system, such that the system's machine learning platform may analyze the readings and/or determine one or more relationships between the two, such that if a given systolic input is input to the system, the predicted diastolic output may be given, taking into account predictive weightings between the two. It should be noted that while the foregoing example is given in relation to blood pressure, within a single subject, the same will apply to any given nodes that are in a mathematical relationship to each other, such as in relation to a multiplicity of subjects and/or a variety of conditions.

[0971] Adicionalmente, embora em alguns casos, as relações possam ser configuradas em uma matriz linear, como para formar uma rede neural de informações, em diversos outros casos, as relações podem ser formadas em uma multiplicidade de estágios, como em um protocolo de aprendizado profundo. Por exemplo, o sistema A/I pode ser adaptado a fim de processar informações em um modo em camadas ou de múltiplos estágios, como para o propósito de aprendizado profundo. Consequentemente, o sistema pode ser configurado para avaliar dados em estágios. Especificamente, o módulo A/I pode ser adaptado de modo que, à medida que o mesmo examina diversos dados, como mediante a realização de um protocolo de aprendizado, estágio por estágio, cada conexão entre dados se torne ponderada pelo sistema, por exemplo, com base em características e/ou evidência históricas de relações.[0971] Additionally, while in some cases, relationships may be configured in a linear array, such as to form a neural network of information, in many other cases, relationships may be formed in a multiplicity of stages, such as in a deep learning protocol. For example, the A/I system may be adapted to process information in a layered or multi-stage fashion, such as for the purpose of deep learning. Accordingly, the system may be configured to evaluate data in stages. Specifically, the A/I module may be adapted so that as it examines multiple pieces of data, such as by performing a learning protocol, stage by stage, each connection between data becomes weighted by the system, for example, based on historical features and/or evidence of relationships.

[0972] Quanto mais estágios de aprendizado são iniciados dentro do sistema, melhor será a ponderação entre junções, e mais profundo será o aprendizado. Ademais, a transferência por upload dos dados em estágios permite uma melhor convergência dos dados dentro do sistema. Particularmente, vários paradigmas de extração de recurso podem também ser empregados de modo a organizar, pesar e analisar melhor os recursos mais salientes dos dados a serem transferidos por upload. Adicionalmente, a fim de correlacionar melhor os dados, um ou mais usuários podem inserir e/ou modular funções de ponderação básicas, embora o próximo sistema possa empregar uma função de ponderação mais avançada com base nos protocolos de aprendizado ativos.[0972] The more learning stages are initiated within the system, the better the weighting between joins will be, and the deeper the learning will be. Furthermore, uploading the data in stages allows for better convergence of the data within the system. In particular, various feature extraction paradigms may also be employed in order to better organize, weight, and analyze the most salient features of the data to be uploaded. Additionally, in order to better correlate the data, one or more users may input and/or modulate basic weighting functions, although the next system may employ a more advanced weighting function based on the active learning protocols.

[0973] Para possibilitar a interação com um usuário, um ou mais aspectos ou recursos da matéria descrita no presente documento podem ser implantados em um computador que tem um dispositivo de exibição, tal como, por exemplo, um tubo de raios catódicos (CRT), um monitor de visor de cristal líquido (LCD) ou um diodo emissor de luz (LED) para exibir informações ao usuário e um teclado e um dispositivo de cursor, tal como, por exemplo, um mouse ou uma trackball, por meio do qual o usuário pode fornecer entrada ao computador. Outros tipos de dispositivos também podem ser usados para possibilitar interação com um usuário. Por exemplo, a retroalimentação fornecida ao usuário ser qualquer forma de retroalimentação sensorial, tal como, por exemplo, retroalimentação visual, retroalimentação auditiva ou retroalimentação tátil; e a entrada do usuário pode ser recebida em qualquer forma, incluindo, mas sem limitação, entrada acústica, de fala ou tátil. Outros dispositivos de entrada possíveis incluem, mas sem limitação, telas sensíveis ao toque ou outros dispositivos sensíveis ao toque, tais como trackpads resistivos ou capacitivos de único ponto ou múltiplos pontos, hardware e software de reconhecimento de voz, leitores ópticos, cursores ópticos, dispositivos de captura de imagem digital e software de interpretação associado e semelhantes.[0973] To enable interaction with a user, one or more aspects or features of the subject matter described herein may be implemented in a computer that has a display device, such as, for example, a cathode ray tube (CRT), a liquid crystal display (LCD) monitor, or a light emitting diode (LED) for displaying information to the user, and a keyboard and a cursor device, such as, for example, a mouse or a trackball, through which the user can provide input to the computer. Other types of devices may also be used to enable interaction with a user. For example, the feedback provided to the user may be any form of sensory feedback, such as, for example, visual feedback, auditory feedback, or tactile feedback; and the user input may be received in any form, including, but not limited to, acoustic, speech, or tactile input. Other possible input devices include, but are not limited to, touchscreens or other touch-sensitive devices, such as single-point or multi-point resistive or capacitive trackpads, speech recognition hardware and software, optical readers, optical cursors, digital image capture devices and associated interpretation software, and the like.

[0974] A matéria descrita no presente documento pode ser embutida em sistemas, aparelhos, métodos e/ou artigos, dependendo da configuração desejada. As implantações apresentadas na descrição supracitada não representam todas as implantações consistentes com a matéria descrita no presente documento. Em vez disso, as mesmas são meramente alguns exemplos consistentes com aspectos relacionados à matéria descrita. Embora algumas variações tenham sido descritas em detalhes acima, outras modificações ou adições são possíveis. Em particular, recursos adicionais e/ou variações podem ser fornecidos além daqueles apresentados no presente documento. Por exemplo, as implantações descritas acima podem ser direcionadas a diversas combinações e subcombinações dos recursos revelados e/ou combinações e subcombinações de diversos recursos adicionais revelados acima. Além disso, os fluxos de lógica retratados nas Figuras anexas e/ou descritos no presente documento não exigem necessariamente a ordem particular mostrada, ou ordem sequencial, para alcançar resultados desejáveis. Outras implantações podem ser abrangidas pelo escopo das reivindicações a seguir.[0974] The subject matter described herein may be embedded in systems, apparatus, methods, and/or articles, depending on the desired configuration. The implementations presented in the foregoing description do not represent all implementations consistent with the subject matter described herein. Rather, they are merely some examples consistent with related aspects of the subject matter described. While some variations have been described in detail above, other modifications or additions are possible. In particular, additional features and/or variations may be provided beyond those presented herein. For example, the implementations described above may be directed to various combinations and subcombinations of the features disclosed and/or combinations and subcombinations of various additional features disclosed above. Furthermore, the logic flows depicted in the accompanying Figures and/or described herein do not necessarily require the particular order shown, or sequential order, to achieve desirable results. Other implementations may fall within the scope of the following claims.

Claims (7)

1. Método para melhorar a precisão de chamada variante avaliando-se em conjunto leituras que mapeiam para duas ou mais regiões de uma sequência de referência que são homólogas, sendo que o método é caracterizado por compreender:acessar, por meio de um ou mais computadores, um empilhamento conjunto de uma pluralidade de leituras de sequência, em que o empilhamento conjunto inclui um primeiro empilhamento de leituras que foram alinhadas a uma primeira região da sequência de referência e pelo menos um segundo empilhamento de leituras que foram alinhadas a uma segunda região da sequência de referência, em que a primeira região e a segunda região são homólogas entre si;determinar, por meio de um ou mais computadores, um conjunto de variantes candidatas do empilhamento conjunto;definir, por meio de um ou mais computadores, uma ordem de processamento das variantes candidatas;avaliar, por meio de um ou mais computadores, cada uma das variantes candidatas a partir do conjunto de variantes candidatas com base na ordem de processamento definida; egerar, por meio de um ou mais computadores e com base na avaliação das variantes candidatas, um arquivo de chamada variante que identifica uma ou mais das variantes candidatas.1. A method for improving variant calling accuracy by jointly evaluating reads that map to two or more regions of a reference sequence that are homologous, the method comprising: accessing, via one or more computers, a joint stack of a plurality of sequence reads, wherein the joint stack includes a first stack of reads that have been aligned to a first region of the reference sequence and at least a second stack of reads that have been aligned to a second region of the reference sequence, wherein the first region and the second region are homologous to each other; determining, via one or more computers, a set of candidate variants from the joint stack; defining, via one or more computers, a processing order of the candidate variants; evaluating, via one or more computers, each of the candidate variants from the set of candidate variants based on the defined processing order; generate, by means of one or more computers and based on the evaluation of the candidate variants, a variant call file that identifies one or more of the candidate variants. 2. Método, de acordo com a reivindicação 1, sendo que o método é caracterizado por compreender:obter regiões homólogas múltiplas de uma sequência de referência a partir de um ou mais dispositivos de memória.2. The method of claim 1, wherein the method comprises: obtaining multiple homologous regions of a reference sequence from one or more memory devices. 3. Método, de acordo com a reivindicação 1, caracterizado por a determinação de um conjunto de variantes candidatas usando o empilhamento conjunto que compreende:usar um gráfico de De Bruijn para extrair as variantes candidatas do empilhamento conjunto.3. The method of claim 1, wherein determining a set of candidate variants using the joint stacking comprises: using a De Bruijn graph to extract the candidate variants from the joint stacking. 4. Método, de acordo com a reivindicação 3, caracterizado por os nós no gráfico representarem a lista de candidatos, e em que usar o gráfico de De Bruijn inclui gerar o gráfico de De Bruijn usando cada região da sequência da referência como uma cadeia principal e alinhar cada uma das posições de variante candidata às coordenadas universais.4. The method of claim 3, wherein the nodes in the graph represent the list of candidates, and wherein using the De Bruijn graph includes generating the De Bruijn graph using each region of the reference sequence as a parent chain and aligning each of the candidate variant positions to the world coordinates. 5. Método, de acordo com a reivindicação 1, caracterizado por a definição por meio de um ou mais computadores, de uma ordem de processamento das variantes candidatas compreender:definir, por meio de um ou mais computadores, uma ordem de processamento das variantes candidatas como uma função do comprimento da leitura ou tamanho do inserto.5. Method according to claim 1, characterized in that defining, by means of one or more computers, a processing order of the candidate variants comprises: defining, by means of one or more computers, a processing order of the candidate variants as a function of the read length or insert size. 6. Método, de acordo com a reivindicação 5, caracterizado por a definição de uma ordem de processamento de variantes candidatas como uma função do comprimento da leitura ou tamanho do inserto compreender:gerar uma matriz de conexão que define a ordem de processamento das variantes candidatas em função do tamanho da leitura e do tamanho do inserto.6. The method of claim 5, wherein defining a processing order of candidate variants as a function of read length or insert size comprises: generating a connection matrix that defines the processing order of candidate variants as a function of read length and insert size. 7. Método, de acordo com a reivindicação 1, caracterizado por a avaliação, por meio de um ou mais computadores, de cada uma das variantes candidatas com base na ordem de processamento definida compreender:para cada variante candidata do conjunto de variantes candidatas: gerar diplótipos conjuntos candidatos, calcular uma probabilidade a posteriori de cada um dentre os diplótipos conjuntos,computar uma matriz de genótipo,podar os diplótipos conjuntos candidatos, eincluir uma próxima posição ativa como evidência para uma posição atual.7. The method of claim 1, wherein the evaluation, by means of one or more computers, of each of the candidate variants based on the defined processing order comprises: for each candidate variant of the set of candidate variants: generating candidate joint diplotypes, calculating an a posteriori probability of each of the joint diplotypes, computing a genotype matrix, pruning the candidate joint diplotypes, and including a next active position as evidence for a current position.
BR122022025392-0A 2016-06-07 2017-06-07 GENOMIC ANALYSIS PLATFORM TO PERFORM A SEQUENCE ANALYSIS SEGMENTATION BR122022025392B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US62/347,080 2016-06-07
US15/404,146 2017-01-11
US62/462,869 2017-02-23
US62/469,442 2017-03-09
US15/497,149 2017-04-25

Publications (1)

Publication Number Publication Date
BR122022025392B1 true BR122022025392B1 (en) 2025-02-25

Family

ID=

Similar Documents

Publication Publication Date Title
AU2022252718B2 (en) Bioinformatics systems, apparatus, and methods for performing secondary and/or tertiary processing
AU2022218629B2 (en) Bioinformatics Systems, Apparatuses, And Methods For Performing Secondary And/or Tertiary Processing
US11049588B2 (en) Bioinformatics systems, apparatuses, and methods for generating a De Brujin graph
WO2017214320A1 (en) Bioinformatics systems, apparatus, and methods for performing secondary and/or tertiary processing
US12374427B2 (en) Bioinformatics systems, apparatuses, and methods for performing secondary and/or tertiary processing
US20250218542A1 (en) Bioinformatics Systems, Apparatuses, and Methods for Performing Secondary and/or Tertiary Processing
HK40072573A (en) Bioinformatics systems, apparatuses, and methods for performing secondary and/or tertiary processing
RU2799750C9 (en) Bioinformation systems, devices and methods for secondary and/or tertiary processing
HK40072573B (en) Bioinformatics systems, apparatuses, and methods for performing secondary and/or tertiary processing
BR122022025392B1 (en) GENOMIC ANALYSIS PLATFORM TO PERFORM A SEQUENCE ANALYSIS SEGMENTATION
NZ789147A (en) Bioinformatics systems, apparatus, and methods for performing secondary and/or tertiary processing
NZ789137A (en) Bioinformatics systems, apparatus, and methods for performing secondary and/or tertiary processing
NZ789149A (en) Bioinformatics systems, apparatuses, and methods for performing secondary and/or tertiary processing
HK40009231A (en) Bioinformatics systems, apparatuses, and methods for performing secondary and/or tertiary processing
HK40000214B (en) Genetic multi-region joint detection and variant calling