MICA DNA Indexing Algorithm for Desktop Memory Constraints
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing DNA analysis software is inefficient for desktop computers due to high memory requirements for indexing large DNA databases, limiting their ability to perform rapid searches for exact matches, especially when resources are limited.
Innovation Solution
The MICA algorithm creates a compact index of a DNA database using K-mer indexing with arrays, occupying approximately 2 bytes per base, allowing for efficient searching of nondegenerate or partially degenerate queries on desktop computers with modest RAM by dividing sequences into chunks and using separate arrays for non-degenerate and partially degenerate K-mers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If suffix trees are used for indexing DNA databases, then search capabilities are improved, but memory consumption increases to 15 bytes or more per base
Solution Approach 1:
The patent creates a simplified copy of the suffix tree structure using suffix arrays that retain the essential search functionality while dramatically reducing memory usage from 15+ bytes per base to 4-8 bytes per base. The suffix array is a compressed representation that captures the ordering information needed for searching without the full overhead of the original suffix tree structure.
Solution Approach 2:
The patent changes the data structure parameters from the node-based suffix tree to the array-based suffix array, fundamentally altering how the indexing information is stored and accessed. This parameter change reduces the memory footprint while maintaining the ability to perform exact and approximate sequence matching.
2Quantity of substance
If SSAHA or BLAT algorithms are used for indexing, then index size is reduced to 1 byte or less per base, but completeness of match detection is lost
Solution Approach 1:
The patent segments the DNA sequence into overlapping K-mers and uses multiple different K-mer lengths (e.g., 11, 12, 13, 14, 15 bases) to create a comprehensive index. This segmentation strategy ensures that matches of various lengths are detected, with shorter K-mers capturing longer potential matches and longer K-mers providing precise positioning.
Solution Approach 2:
The patent uses more K-mer lengths than the minimum required (excessive action) to ensure complete match detection. By indexing with multiple K-mer sizes, the system guarantees detection of all matches regardless of their length, overcoming the limitation of single-K-mer approaches that miss shorter or longer matches.
3Speed
If complete index of DNA database is stored in main memory, then search speed is improved, but desktop computer memory capacity is exceeded
Solution Approach 1:
The patent divides the large DNA database index into multiple smaller chromosome-specific index files (e.g., chr1.index, chr2.index, etc.). Each index file contains the suffix arrays for a single chromosome, allowing the system to load only the necessary portions into memory during searching, thus fitting within desktop computer RAM constraints.
Solution Approach 2:
The patent moves from a single monolithic in-memory index to a multi-file hierarchical structure stored on disk. This dimensional change allows the index to exist externally to main memory, with selective loading of only the required chromosome indices during search operations, effectively bypassing the memory capacity limitation.
Data Source
AI summary
The present invention relates to a method for indexing nucleic acid sequences to aid computer based searching of nucleic acid sequences by indexing a nucleotide sequence by the presence of unique Kmers in the sequence. The method of the present invention comprises utilizing an algorithm to automatically index a nucleic acid sequence.


