IP Library Granted Patent US 9,652,586
Granted Patent B2
US 9,652,586 · App. 11/561,327 · Granted May 16, 2017

Method and system for faster and more sensitive homology searching

Inventors: Ming Li (Santa Barbara, CA); Bin Ma (Waterloo, CA); John Tromp (Waterloo, CA)
Assignee: BIOINFORMATICS SOLUTIONS INC.
G06F19/22G06F19/24
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 9,652,586
App. No.
11/561,327
Granted
May 16, 2017
Kind
B2
Abstract

An area of research in the field of bioinformatics deals with the identification of similarities within one, or between two DNA sequences. Current techniques are quite slow and many matches are missed. The invention provides a faster and more sensitive solution, by using “optimized spaced seeds” to perform these biological sequence homology searches. Various techniques are shown for identifying seeds which are optimized to improve the sensitivity or speed of the searching. In the preferred embodiment, optimized spaced seeds are determined by the parameters of the search and independent of the actual databases being searched (for example, using the length and weight of the spaced seed, as well as the probability of a hit in a similar region). Thus, these optimized seeds can be stored in libraries which are accessed as required.

Claims (71)

1. A computer-implemented method for performing homology searching through comparing a first string of electronically represented target biological sequence data and a second string of electronically represented query biological sequence data to identify one or more sections of alignments between the first string and the second string, the method comprising:

accessing a library comprised of one or more data structures, each of the one or more data structures configured to store one or more binary mask strings indicative of sequence data positions where a match is required at that sequence data position and sequence data positions where a match is not required at that sequence data position, each of the one or more binary mask strings having a weight determined by a number of sequence data positions where a match is required, and a length determined by a total number of sequence data positions in the binary mask string;

generating one or more proposed binary mask models by populating each of the one or more data structures with a corresponding proposed binary mask string, each proposed binary mask string representing a possible non-consecutive spaced mask model having a predefined weight and a predefined length;

determining which data structure of the one or more data structures is populated with an optimal binary mask string having a highest likelihood of identifying hits in a random pair of similar regions between the first string and the second string of biological sequence data being searched

the optimal mask string being computationally identified by processing the one or more data structures to identify a data structure that maximizes the probability that a seed match is found, the probability characterized by the recursive relation:

Probability ( s matches R )=Sum{for all | b|=M } Probability ( b ) f ( L−M, b ),

where f(i,b)=1, if s=b, otherwise f(i,b)=(1−p)f(i−1,0b′)+pf(i−1,1b′) where b′ is b having a last bit deleted, and

where s is a mask, M is a length of the mask s, and f(i,b) is the probability that mask s matches the length i prefix of R, where R is a random string of length L, that ends with b, where b is a binary string, and where p is a probability of a bit in the binary string b to be a character indicating that a match is required;

converting the first string into a reduced target sequence array by:

for each position of the first string:

identifying a substring of the first string starting at the position being iterated;

generating a masked string by masking the substring of the first string with the optimal binary mask string;

hashing the masked string to generate a reduced target sequence value; and

storing the reduced target sequence value at an array index corresponding to the position of the first string associated with the reduced target sequence value;

determining one or more pairs of locations indicative of probable alignments between the first string and the second string by;

for each position of he second string:

identifying a substring of the second string starting at the position being iterated;

generating a masked string by masking the substring of the second string with the optimal binary mask string;

hashing the masked string to generate a reduced query sequence value; and

determining whether the reduced query sequence value exits in the reduced target a sequence array;

upon determining that the reduced query sequence value exists in the reduced target sequence array, flagging a pair of locations between the first string and the second string as indicative of a probable alignment between the first string and the second string; and

processing each pair locations of the one or more flagged pairs of locations to determine the one or more sections of alignments between the first string and the second string.

2. The method of claim 1 , further comprising extending the one or more sections of alignments between the first string and the second string to identify longer alignments between the first string and the second string.

3. The method of claim 1 , wherein each binary mask string of the one or more binary mask strings includes one or more characters indicative of positions; wherein a match is required at that position are “1” characters, and wherein the characters indicative of positions where no match is required at that position are “0” characters.

4. The method of claim 3 , wherein the optimal binary mask string is 111010010100110111 or its mirror image 111011001010010111.

5. The method of claim 1 , wherein each binary mask string of the one or more binary mask strings comprises non-consecutive matches.

6. The method of claim 1 , wherein the optimal binary mask string has a length of 18, and includes characters requiring matches only at the first three positions, the fifth position, the eight position, the tenth position, the thirteenth and fourteenth positions, and the sixteenth to the eighteenth position.

7. An electronic computer system for performing homology searching through comparing a first string of electronically represented target biological sequence data and a second string of electronically represented query biological sequence data to identify one or more sections of alignments between the first string and the second string, the system comprising:

an input device configured to receive the first string and the second string of biological sequence data;

a non-transitory computer readable memory storing a library comprised of one or e data structures, each of the one or more data structures configured to store one or more binary mask strings indicative of sequence data positions where a match is required at that sequence data position and sequence data positions where a match is not required at that sequence data position, each of the one or more binary mask strings having a weight determined by a number of sequence data positions where a match is required, and a length determined by a total number of sequence data positions in the binary mask string;

a homology search processor configured to:

generate one or more proposed binary mask models by populating each of the one or more data structures with a corresponding proposed binary mask string, each proposed binary mask string representing a possible non-consecutive spaced mask model having a predefined weight and a predefined length;

determine which data structure of he one or more data structures is populated with an optimal binary mask string having a highest likelihood of identifying hits in a random pair of similar regions between the first string and the second string of biological sequence data being searched,

the optimal binary mask string being computationally identified by processing the one or more data structures to identify a data structure that maximizes the probability that a match is found, the probability characterized by the recursive relation:

Probability ( s matches R )=Sum{for all | b|=M } Probability ( b ) f ( L−M, b ),

where f(i,b)=1, if s=b, otherwise f(i,b)=(1−p)f(i−1,0b′)+pf(i−1,1b′) where b′ is b having a last bit deleted, and

where s is a mask, M is a length of the mask s, and f(i,b) is the probability that mask s matches the length i prefix of R, where R is a random string of length L, that ends with b, where b is a binary string, and where p is a probability of a bit in the binary string b to be a character indicating that a match is required;

convert the first string into a reduced target sequence array by;

for each position of the first string:

identifying a substring of the first string starting at the position being iterated;

generating a masked string by masking the substring of the first string with the optimal binary mask string;

hashing the masked string to generate a reduced target sequence value; and

storing the reduced target sequence value at an array index corresponding to the position of the first string associated with the reduced target sequence value;

determine one or more pairs of locations indicative of probable alignments between the first string and the second string by:

for each position of the second string:

identifying a substring of the second string starting at the position being iterated;

generating a masked string by masking the substring of the second string the optimal binary mask string;

hashing the masked string to generate a reduced query sequence value; and

determining whether the reduced query sequence value exist in the reduced target sequence array;

upon determining that the reduced query sequence value exists in the reduced target sequence array, flagging a pair of locations between the first string and the second string as indicative of a probable alignment between the first string and the second string; and

process each pair of locations of the one or more flagged pairs of locations to determine the one or more sections of alignments between the first string and the second string.

8. A computer-implemented method of performing a homology search on one or more processors, the homology search being configured such that a non-consecutive search seed is utilized in processing a first string of target biological sequence data and a second string of query biological sequence data to determine one or more sections of alignments between the first string and the second string, the method comprising:

accessing a library comprised of one or more data structures, each of the one or more data structures configured to store one or more binary mask strings indicative of sequence data positions where a match is required at that sequence data position and sequence data positions where a match is not required at that sequence data position, each of the one or more binary mask strings having a weight determined by a number of sequence data positions where a match is required, and a length determined by a total number of sequence data positions in the binary mask string;

receiving an optimal mask string computationally identified by processing the one or more data structures to identify a data structure that maximizes the probability that a seed match is found using a recursive relation;

converting the first string into a reduced target sequence array by:

for each position of the first string:

identifying a substring of the first string starting at the position being iterated;

generating a masked sting by masking the substring of the first string with the optimal binary ask string;

hashing the masked string to generate a reduced target sequence value; and

storing the reduced target sequence value at an array index corresponding to the position of the first string associated with the reduced target sequence value;

determining one or more pairs of locations indicative of probable alignments between the first string and the second string by:

for each position of the second string:

identifying a substring of the second string starting at he position being iterated,

generating a masked string by masking the substring of the second string with the optimal binary mask string;

hashing the masked string to generate a reduced query sequence value; and

determining whether the reduced query sequence value exists in the reduced target sequence array;

upon determining that the reduced query sequence value exists in the reduced target sequence array, flagging a pair of locations between the first sting and the second string as indicative of a probable alignment between the first string and the second string; and

process each pair of locations of the one or more flagged pairs of locations to determine the one or more sections of alignments between the first string and the second string;

wherein the optimal mask string is a string of characters, indicative of positions where a match is required at that position, and positions where a match is not required at that position; and

wherein the non-consecutive search seed has a length of 18 positions for matching, and includes characters requiring matches only at the first three positions, the fifth position, the eight position, the tenth position, the thirteenth and fourteenth positions, and the sixteenth to the eighteenth position or a mirror image thereof.

9. The method of claim 8 , wherein the characters indicative of positions where a match is required at that position are “1” characters, and wherein the characters indicative of positions where no match is required at that position are “0” characters; and wherein the optimal mask string is 111010010100110111 or its mirror image 111011001010010111.

Priority Claims (1)
CA 2357263 · Sep 7, 2001 · national
Continuity (3)
Division 10236339 · Sep 6, 2002
Provisional Application 60338480 · Dec 3, 2001
Related Publication 20070088510A1 · Apr 19, 2007