Hash Table Matrix for N-Gram Frequency Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional algorithms for determining n-gram frequency in sequences face complexity issues, requiring quadratic time and memory, limiting analysis to short n-grams due to time constraints, especially in genomic research where larger sequences are common.

Innovation Solution

A hash table-based approach with a matrix structure that dynamically resizes to accommodate increasing sequence lengths, allowing for efficient counting of n-grams up to higher orders in linear time and memory, utilizing de Bruijn graphs to represent n-grams and their frequencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional algorithms are used to determine n-gram frequency, then accuracy of frequency counting is improved, but processing time increases quadratically

Engineering Contradiction:
Improvefrequency counting accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the frequency counting process into multiple passes, where each pass handles a specific n-gram length. The first pass enumerates all n-grams, the second pass counts frequencies for each n-gram length separately. This segmentation allows the algorithm to process different n-gram lengths in an optimized manner, reducing the overall time complexity from quadratic to linear while maintaining accurate frequency counting.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If n-gram length is increased beyond 1-5, then analysis coverage is improved, but computational complexity increases

Engineering Contradiction:
Improveanalysis coverageVSAvoidcomputational complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic resizing of the hash table structure to adapt to increasing n-gram lengths. The hash table automatically expands its capacity as longer n-grams are encountered, allowing the system to handle variable n-gram lengths efficiently. This dynamic adaptation enables analysis of higher-order n-grams (beyond the conventional 1-5) without requiring predetermined allocation of excessive memory resources.

Inventive Principle:
Principle #15Dynamics

3Quantity of substance

If de novo analysis is used to handle larger sequences, then memory usage is reduced, but processing time increases

Engineering Contradiction:
Improvememory usageVSAvoidprocessing time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent merges the enumeration and counting operations into a unified multi-pass process that operates on the entire sequence in a coordinated manner. By combining these operations and using a shared hash table structure across passes, the algorithm achieves efficient memory utilization comparable to de novo analysis while maintaining linear time complexity through optimized data structures and processing strategies.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9087295B1Determination of sequence frequency
Publication Date: 2015.07.21 THE UNITED STATES OF AMERICA AS REPRESENTED BY THE SECRETARY OF THE NAVY
  • US9087295B1 patent drawing
  • US9087295B1 patent drawing
  • US9087295B1 patent drawing

AI summary

A computer-implemented sequence analysis process is provided for determining frequency in an n-gram hash sequence of a symbolic string, such as a series of characters. The method includes initializing a hash table, creating a matrix, reading the present value in the sequence, determining whether the present value is unknown, inserting a value index into the hash table if unknown and identifying the value index otherwise, and incrementing a cell within the array. The hash table has a plurality of levels from one to n. The matrix includes first and second indices corresponding to an array of cells. The first index corresponds to an end of a prior value, while the second index corresponds to a start of a present value. The cell corresponds to the first index for the prior value and the second index for the present value.