IP Library Granted Patent US 12,423,271
Granted Patent B2
US 12,423,271 · App. 19/007,543 · Granted Sep 23, 2025

System and methods for adaptive bandwidth-efficient encoding of genomic data

Inventors: Joshua Cooper (Columbia, SC); Brian Galvin (Silverdale, WA); Erin Johnston (Carlsbad, CA)
Assignee: ATOMBEAM TECHNOLOGIES INC.
G06F16/1752G06F3/0608G06F3/0641G06F3/067
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 12,423,271
App. No.
19/007,543
Filed
Jan 1, 2025
Granted
Sep 23, 2025
Kind
B2
Art Unit
2136
USPC
702/20
Abstract

A system and methods for adaptive bandwidth-efficient data encoding comprising: a sequence analyzer configured to analyze a received sequence dataset, maintain a count of unique characters, and identify positions where the unique character count increases by a power of two; an adaptive sourceblock optimizer that determines and dynamically adjusts optimal sourceblock sizes based on dataset characteristics; and a data deconstruction engine that deconstructs the dataset into sourceblocks and creates codewords for storage or transmission. The system analyzes sequence complexity, alphabet size, and character frequency distribution to optimize sourceblock sizes, and uses machine learning to improve decision-making over time. This adaptive approach enhances compression efficiency across varied genomic data types, including genome graphs, while maintaining data integrity and security. The system efficiently encodes, stores, and transmits complex genomic and bioinformatic datasets, addressing the growing challenges in data storage and bandwidth limitations.

Claims (65)

1. A system for adaptive bandwidth-efficient data encoding, comprising:

a computing device comprising a processor and a memory;

a sequence analyzer comprising a first plurality of programming instructions stored in the memory and operable on the processor, wherein the first plurality of programming instructions, when operating on the processor, cause the processor to:

receive a sequence dataset;

scan the sequence dataset and maintain a count of the number of unique characters contained within the sequence dataset;

for each occurrence of a unique character which causes the count of the number of unique characters to reach a value equal to a power of two, indicate a position in the sequence dataset corresponding to the unique character;

calculate, for each of the indicated positions, a compaction ratio that would be obtained by dividing the sequence dataset into one of a plurality of segments at one of the indicated positions;

deconstruct the sequence dataset into a plurality of deconstructed sourceblocks at the positions that yield the best compaction ratio; and

pass the plurality of deconstructed sourceblocks to a data deconstruction engine;

an adaptive sourceblock optimizer configured to determine and dynamically adjust an optimal sourceblock size based on sequence complexity, alphabet size, and frequency distribution of characters;

a data deconstruction engine comprising a second plurality of programming instructions stored in the memory and operable on the processor, wherein the second plurality of programming instructions, when operating on the processor, cause the processor to:

receive the plurality of deconstructed sourceblocks from the sequence analyzer;

deconstruct the sequence dataset into sourceblocks using the optimal sourceblock size from the adaptive sourceblock optimizer; and

create a plurality of codewords for storage or transmission of the sequence dataset.

2. The system of claim 1 , further comprising:

a codebook stored in the memory of the computing device, the codebook comprising a plurality of sourceblocks and for each sourceblock a reference code;

a library management module comprising a third plurality of programming instructions stored in the memory and operable on the processor, wherein the third plurality of programming instructions, when operating on the processor, cause the processor to:

receive the plurality of deconstructed sourceblocks from the data deconstruction engine;

for each of the plurality of deconstructed sourceblocks, return a reference code to the data deconstruction engine, when the respective received deconstructed sourceblock matches an existing sourceblock in the codebook;

for each received deconstructed sourceblock that is not present in the codebook:

create a new, unique reference code for the respective deconstructed sourceblock;

store both the respective deconstructed sourceblock and the associated reference code in the codebook; and

return the new reference code to the data deconstruction engine;

wherein the data deconstruction engine is further configured to:

pass the plurality of deconstructed sourceblocks to the library management module; and

receive a reference code for each of the plurality of deconstructed sourceblocks from the library management module.

3. The system of claim 2 , wherein each of the plurality of codewords contains at least a reference code to a sourceblock in the codebook, and may contain additional information about the location of the reference code within the sequence dataset.

4. The system of claim 1 , wherein the sequence dataset that is encoded comprises a graph representing at least a portion of a plurality of genomes.

5. The system of claim 4 , wherein the graph is a De Bruijn graph, a directed graph, a bi-edged graph, or a bidirected graph.

6. The system of claim 2 , further comprising a data reconstruction engine comprising a fourth plurality of programming instructions stored in the memory and operable on the processor, wherein the fourth plurality of programming instructions, when operating on the processor, cause the processor to:

receive a request for a reconstructed sequence dataset;

retrieve the codewords associated with the requested data from the codebook;

pass the reference codes contained in the codewords to the library management module for retrieval of the sourceblock contained in the codebook associated with the reference codes;

assemble the retrieved sourceblocks in proper order based on location information contained in the codewords; and

send out the reconstructed sequence dataset to the requester.

7. The system of claim 1 , wherein the adaptive sourceblock optimizer uses machine learning techniques to improve its decision-making over time.

8. A method for adaptive bandwidth-efficient data encoding, comprising:

storing, in a memory of a computing device, a codebook comprising a plurality of sourceblocks and reference codes;

receiving and analyzing a sequence dataset by scanning the sequence dataset and maintaining a count of the number of unique characters contained within the sequence dataset;

for each occurrence of a unique character which causes the count of the number of unique characters to reach a value equal to a power of two, indicating a position in the sequence dataset corresponding to the unique character;

calculating, for each of the indicated positions, a compaction ratio that would be obtained by dividing the sequence dataset into one of a plurality of segments at one of the indicated positions;

determining an optimal sourceblock size based on characteristics of the sequence dataset including sequence complexity, alphabet size, and frequency distribution of characters;

dynamically adjusting the sourceblock size based on ongoing analysis and feedback;

deconstructing the sequence dataset into sourceblocks at the positions that yield the best compaction ratio using the optimal sourceblock size;

passing the plurality of deconstructed sourceblocks to a data deconstruction engine; and

creating codewords for storage or transmission of the sequence dataset.

9. The method of claim 8 , further comprising using machine learning techniques to improve sourceblock size optimization over time.

10. The method of claim 8 , further comprising the steps of:

passing, using the data deconstruction engine, the plurality of deconstructed sourceblocks to a library management module;

receiving, at the library management module, the plurality of deconstructed sourceblocks from the data deconstruction engine;

for each of the plurality of deconstructed sourceblocks, returning a reference code to the data deconstruction engine, when the respective received deconstructed sourceblock matches an existing sourceblock in the codebook; and

for each received deconstructed sourceblock that is not present in the codebook:

creating a new, unique reference code for the respective deconstructed sourceblock;

storing both the respective deconstructed sourceblock and the associated reference code in the codebook;

returning the new reference code to the data deconstruction engine; and

receiving, at the data deconstruction engine, a reference code for each of the plurality of deconstructed sourceblocks from the library management module.

11. The method of claim 10 , wherein each of the plurality of codewords contains at least a reference code to a sourceblock in the codebook, and may contain additional information about the location of the reference code within the sequence dataset.

12. The method of claim 8 , wherein the sequence dataset that is encoded comprises a graph representing at least a portion of a plurality of genomes.

13. The method of claim 12 , wherein the graph is a De Bruijn graph, a directed graph, a bi-edged graph, or a bidirected graph.

14. The method of claim 10 , further comprising the steps of:

receiving a request for a reconstructed sequence dataset;

retrieving the codewords associated with the requested data from the codebook;

passing the reference codes contained in the codewords to the library management module for retrieval of the sourceblock contained in the codebook associated with the reference codes;

assembling the sourceblocks in the proper order based on the location information contained in the codewords; and

sending out the reconstructed sequence dataset to the requester.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2025
From: COOPER, JOSHUA; GALVIN, BRIAN; JOHNSTON, ERIN
To: ATOMBEAM TECHNOLOGIES INC.
Reel/Frame 069885/0215 →
Continuity (15)
Continuation In Part 18449706 · Aug 15, 2023
Continuation 17569500 · Jan 5, 2022
Continuation In Part 17234007 · Apr 19, 2021
Continuation In Part 17234007 · Apr 19, 2021
Continuation In Part 17180439 · Feb 19, 2021
Continuation In Part 16923039 · Jul 7, 2020
Continuation In Part 16716098 · Dec 16, 2019
Continuation 16455655 · Jun 27, 2019
Continuation In Part 16200466 · Nov 26, 2018
Continuation In Part 15975741 · May 9, 2018
Provisional Application 63140111 · Jan 21, 2021
Provisional Application 63027166 · May 19, 2020
Provisional Application 62926723 · Oct 28, 2019
Provisional Application 62578824 · Oct 30, 2017
Related Publication 20250139059A1 · May 1, 2025
References Cited (5)
US 6667700B1 · McCanne et al. · 2003 [cited by applicant]
US 9715574B2 · Baym et al. · 2017 [cited by applicant]
US 10790044B2 · Semenyuk · 2020 [cited by examiner]
US 10902937B2 · Sheinin et al. · 2021 [cited by applicant]
US 11093547B2 · Su et al. · 2021 [cited by applicant]