IP Library Granted Patent US 11,915,797
Granted Patent B2
US 11,915,797 · App. 16/438,259 · Granted Feb 27, 2024

Methods for managing sequencing pileups

Inventor: Christopher Chang (Palo Alto, CA)
Assignee: Grail, LLC
G16B50/50G16B30/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,915,797
App. No.
16/438,259
Granted
Feb 27, 2024
Kind
B2
Abstract

In comparison to conventional sequencing pileup algorithms, the process described herein generates sequencing pileups that contains additional information not typically reported by conventional algorithms while also consuming fewer computational resources (e.g., time, processing power, and memory). First, each of a FASTA reference genome and BAM sequence read files are converted to an internal representation. This enables the rapid iteration across nucleotide bases of the sequence reads to determine support characteristics that summarize information of nucleic acid molecules corresponding to positions across the reference genome. Next, the support characteristics of positions across the reference genome are stored through a memory allocation process that utilizes a first and a second temporary storage. This enables the convenient freeing of one temporary storage while the other temporary storage is being used.

Claims (36)

1. A method for determining support characteristics of positions across a reference genome, the method comprising:

accessing a reference genome sequence expressed in a first format that represents each nucleotide base as a character using a full byte;

accessing a sequence read expressed in a second format that represents each nucleotide base as a numerical value using half a byte;

converting the first format of the reference genome sequence into an internal representation which represents each nucleotide base as a numerical value using a full byte;

converting the second format of the sequence read into the internal representation, wherein the converting comprises:

loading the sequence read into a 16-byte array;

extracting nucleotide bases at even positions and nucleotide bases at odd positions of the sequence read from the 16-byte array using a 16-byte mask;

unpacking and interleaving a lower half of the nucleotide bases at even positions and a lower half of the nucleotide bases at odd positions as first 16 bytes;

unpacking and interleaving a higher half of the nucleotide bases at even positions and a higher half of the nucleotide bases at odd positions as second 16 bytes; and

reordering the nucleotide bases in the sequence read by storing the first 16 bytes followed by the second 16 bytes into an output array representing the sequence read in the internal representation;

identifying one or more mismatched nucleotide bases by comparing at least N contiguous nucleotide bases of the sequence read expressed in the internal representation to at least N contiguous nucleotide bases of the reference genome sequence expressed in the internal representation, wherein N is greater than 1.

2. The method of claim 1 , wherein the first format is a FASTA format.

3. The method of claim 2 , wherein converting the first format of the reference genome sequence into the internal representation comprises:

looking up a M nucleotide bases of the reference genome sequence in a lookup table, wherein M is greater than 1.

4. The method of claim 3 , wherein the M is 16, 32, or 64.

5. The method of claim 1 , wherein the second format is a binary alignment/map (BAM) format.

6. The method of claim 1 , wherein converting the second format of the sequence read into the internal representation further comprises:

expanding each of numerical values represented in half a byte into a full byte.

7. The method of claim 1 , wherein the converting the second format of the sequence read into the internal representation is performed in parallel in less than a clock cycle per input byte.

8. The method of claim 1 , wherein comparing the sequence read expressed in the internal representation to the reference genome expressed in the internal representation comprises:

performing one of a bitwise exclusive-or (XOR) or ANDNOT operation to compare the N contiguous nucleotide bases.

9. The method of claim 8 , wherein performing the bitwise XOR operation comprises:

accessing a concise idiosyncratic gapped alignment report (CIGAR) string of the sequence read, wherein the bitwise XOR operation is performed on a segment of nucleotide bases represented by an alignment matching region indicated by the CIGAR string.

10. The method of claim 1 , further comprising:

initializing an array representing positions across the reference genome;

incrementing an entry of the array representing a position corresponding to a first nucleotide base of the sequence read; and

decrementing an entry of the array representing a position corresponding to a last nucleotide base of the sequence read.

11. The method of claim 1 , wherein the N is 8, 16, 32, or 64.

12. The method of claim 1 , wherein the extracting the nucleotide bases at even positions and the nucleotide bases at odd positions from the 16-byte array using the 16-byte mask comprises:

extracting the nucleotide bases at the odd positions of the sequence read from the 16-byte array by applying the 16-byte mask to the 16-byte array; and

extracting the nucleotide bases at the even positions of the sequence read from the 16-byte array by right-shifting data in the 16-byte array before applying the 16-byte mask.

13. A non-transitory computer-readable medium storing one or more programs, the one or more programs including instructions which, when executed by an electronic device including a processor, cause the device to perform the method of claim 1 .

14. An electronic device comprising:

one or more processors;

a memory; and

one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of claim 1 .

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Oct 13, 2021
From: GRAIL, INC.; SDG OPS, LLC
To: GRAIL, LLC
Reel/Frame 057788/0719 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2021
From: CHANG, CHRISTOPHER
To: GRAIL, INC.
Reel/Frame 055048/0784 →
Continuity (3)
Provisional Application 62719483 · Aug 17, 2018
Provisional Application 62685823 · Jun 15, 2018
Related Publication 20200013483A1 · Jan 9, 2020