Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
A system, method and apparatus for executing a sequence analysis pipeline on genetic sequence data includes an integrated circuit formed of a set of hardwired digital logic circuits that are interconnected by physical electrical interconnects. One of the physical electrical interconnects forms an input to the integrated circuit connected with an electronic data source for receiving reads of genomic data. The hardwired digital logic circuits are arranged as a set of processing engines, each processing engine being formed of a subset of the hardwired digital logic circuits to perform one or more steps in the sequence analysis pipeline on the reads of genomic data. Each subset of the hardwired digital logic circuits is formed in a wired configuration to perform the one or more steps in the sequence analysis pipeline.
1 . A method comprising:
obtaining first data that corresponds to a digital representation of a plurality of nucleic acid sequence reads sequenced from a biological sample of an entity;
for each particular read of the plurality of nucleic acid sequence reads:
allocating the particular read to a particular secondary analysis cluster of a plurality of secondary analysis clusters, wherein each secondary analysis cluster is implemented in one or more programmable logic devices having programmable logic that is configured in hardware as a mapping unit and an aligning unit;
using the mapping unit of the particular secondary analysis cluster to map the particular read to a reference genome;
using the aligning unit of the particular secondary analysis cluster to align the mapped read to the reference genome;
obtaining, from the particular secondary analysis cluster, data indicating an alignment for the particular read; and
storing the data indicating the alignment in a memory device.
2 . The method of claim 1 , wherein allocating the particular read to a particular secondary analysis cluster of a plurality of secondary analysis clusters comprises:
using a host computer to send a command, using a direct memory access engine, to a controller of the one or more programmable logic devices, the command comprising the particular read and an instruction to perform an operation.
3 . The method of claim 2 , wherein the operation comprises a mapping operation or an alignment operation.
4 . The method of claim 2 , the operations further comprising:
using the controller of the one or more programmable logic devices to obtain the stored data indicating the alignment in the memory device; and
streaming the obtained data indicating the alignment to the host computer using the direct memory access engine.
5 . The method of claim 1 , wherein the plurality of secondary analysis clusters are included within a nucleic acid sequencing device.
6 . The method of claim 1 , wherein the plurality of secondary analysis clusters are included within one or more server computers.
7 . A system comprising:
one or more computers;
one or more memory devices storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations, the operations comprising:
obtaining first data that corresponds to a digital representation of a plurality of nucleic acid sequence reads sequenced from a biological sample of an entity;
for each particular read of the plurality of nucleic acid sequence reads:
allocating the particular read to a particular secondary analysis cluster of a plurality of secondary analysis clusters, wherein each secondary analysis cluster is implemented in one or more programmable logic devices having programmable logic that is configured in hardware as a mapping unit and an aligning unit;
obtaining, from the particular secondary analysis cluster, data indicating an alignment for the particular read, wherein the data indicating the alignment for the particular read was generated by:
using the mapping unit of the particular secondary analysis cluster to map the particular read to a reference genome, and
using the aligning unit of the particular secondary analysis cluster to align the mapped read to the reference genome; and
storing the data indicating the alignment in a memory device.
8 . The system of claim 7 , wherein allocating the particular read to a particular secondary analysis cluster of a plurality of secondary analysis clusters comprises:
using a host computer to send a command, using a direct memory access engine, to a controller of the one or more programmable logic devices, the command comprising the particular read and an instruction to perform an operation.
9 . The system of claim 8 , wherein the operation comprises a mapping operation or an alignment operation.
10 . The system of claim 8 , the operations further comprising:
using the controller of the one or more programmable logic devices to obtain the stored data indicating the alignment in the memory device; and
streaming the obtained data indicating the alignment to the host computer using the direct memory access engine.
11 . The system of claim 7 , wherein the plurality of secondary analysis clusters are included within a nucleic acid sequencing device.
12 . The system of claim 7 , wherein the plurality of secondary analysis clusters are included within one or more server computers.
13 . One or more non-transitory computer-readable storage media storing instructions that, when executed by the one or more computer readable storage media cause the one or more computer readable storage media to perform operations, the operations comprising:
obtaining first data that corresponds to a digital representation of a plurality of nucleic acid sequence reads sequenced from a biological sample of an entity;
for each particular read of the plurality of nucleic acid sequence reads:
allocating the particular read to a particular secondary analysis cluster of a plurality of secondary analysis clusters, wherein each secondary analysis cluster is implemented in one or more programmable logic devices having programmable logic that is configured in hardware as a mapping unit and an aligning unit;
obtaining, from the particular secondary analysis cluster, data indicating an alignment for the particular read, wherein the data indicating the alignment for the particular read was generated by:
using the mapping unit of the particular secondary analysis cluster to map the particular read to a reference genome, and
using the aligning unit of the particular secondary analysis cluster to align the mapped read to the reference genome; and
storing the data indicating the alignment in a memory device.
14 . The one or more computer-readable media of claim 13 , wherein allocating the particular read to a particular secondary analysis cluster of a plurality of secondary analysis clusters comprises:
using a host computer to send a command, using a direct memory access engine, to a controller of the one or more programmable logic devices, the command comprising the particular read and an instruction to perform an operation.
15 . The one or more computer-readable media of claim 14 , the operations further comprising:
using the controller of the one or more programmable logic devices to obtain the stored data indicating the alignment in the memory device; and
streaming the obtained data indicating the alignment to the host computer using the direct memory access engine.