Spaced seed
In bioinformatics, a spaced seed is a pattern of relevant and irrelevant positions in a biosequence and a method of approximate string matching that allows for substitutions. They are a straightforward modification to the earliest heuristic-based alignment efforts that allow for minor differences between the sequences of interest. Spaced seeds have been used in homology search.,[1] alignment,[2] assembly,[3] and metagenomics.[4] They are usually represented as a sequence of zeroes and ones, where a one indicates relevance and a zero indicates irrelevance at the given position. Some visual representations use pound signs for relevant and dashes or asterisks for irrelevant positions.
Principle
Due to a number of functional and evolutionary constraints, nucleic acid sequences between individuals tend to be highly conserved, with the typical difference between two human genomes estimated on the order of 0.6% (or around 20 million base pairs).[5] Identification of highly similar regions in the genome may indicate functional importance, as mutations in these areas that would result in cessation of function or loss of regulatory ability would be evolutionary unfavorable. More observed differences between two sequences may arise as a result of stochastic sequencing errors. Similarly, when performing assembly of a previously characterized genome, an attempt is made to align the newly sequenced DNA fragments to the existing genome sequence.
In both cases, it is useful to be able to directly compare nucleic acid sequences. Since the sequences are not expected to be exactly identical, however, it is beneficial to focus on smaller subsequences that are more likely to be locally identical. Spaced seeds allow for even more permissive local matching by allowing certain base pairs (defined by the pattern of the specific spaced seed) to mismatch without penalty, thus allowing algorithms that use the general "hit-extend" strategy of alignment to explore additional potential matches that would be otherwise ignored.
Example
As a simple example, consider the following DNA sequences:
CTAAGTCACG
CTAACACACG
1111001111
Upon visual inspection, it's easy to see that there is a mismatch between the two sequences at the fifth and six base positions (in bold, above). However, the sequences still share 80% sequence similarity. The mismatches may be due to a real (biological) change or a sequencing error. In a non-spaced model, this putative match would be ignored if a seed size greater than 4 is specified. But a spaced seed of could be used to effectively zero-weighting the mismatch sites, treating the sequences as same for the purposes of hit identification. In reality, of course, we don't know the relative positioning of the "true" mismatches, so there can be different spaced seed patterns depending on where the mismatches are anticipated.
History
The concept of spaced seeds has been explored in literature under different names. One of the early uses was in sequence homology where the FLASH algorithm from 1993 referred to it as "non-contiguous sub-sequences of tokens" that were generated from all combinations of positions within a sequence window.[6] In 1995, a similar concept was used in approximate string matching where "gapped tuples" of positions in a sequence were explored to identify common substrings between a large text and a query.[7] The term "shape" was used in a 2001 paper to describe gapped q-grams where it refers to a set of relevant positions in a substring[8] and soon after in 2002, PatternHunter introduced "spaced model" which was proposed as an improvement upon the consecutive seeds used in BLAST,[1] which was ultimately adopted by newer versions of it. Finally, in 2003, PatternHunter II settled on the term "spaced seed" to refer to the approach used in PatternHunter[9]
Spaced versus Non-Spaced Models
Popular alignment algorithms such as BLAST and MegaBLAST use a non-spaced model, where the entire length of the seed is made of exact matches.[10] Thus, any mismatching base pair along the length of the seed will result in the program ignoring the potential hit. In a spaced model (such as PatternHunter), the matches are not necessarily consecutive.
More formally, the difference in a spaced seed model as compared to a non-spaced model is the relative positioning (otherwise known as weight, ) of the matched bases. In a non-spaced model, the length of the seed model, and the weight, of the seeds are the same, as they must be consecutive while in a spaced model, the weight is not necessarily equal to the length of the seed model, since match positions may be non-consecutive.[1] Therefore, a spaced seed model may be longer than a non-spaced seed model but have the same weight. For example, a non-spaced seed has the same weight as a spaced model , but their lengths differ.
The predicted number of hits can be calculated from PatternHunter[1] using the following lemma:
Where is the length of the sequence the model is compared to, is the length of the seed model, is the probability of a match and is the weight of the seed used.
Applications
Homology Search
The type of seed model used for sequence alignment can affect the processing time and memory usage when doing large-scale homology searches – two considerations that have been central in the development of modern homology search algorithms. It may also affect the sensitivity. Using spaced seed models has been demonstrated to allow for faster homology searches as seen with PatternHunter wherein homology searches were twenty times faster and used less memory than BLASTn (using a non-spaced model).[1]
Sequence Alignment
Most aligners first find candidate locations (or seeds) in the target sequence and then inspect those more closely to verify the alignment.[11][2][12][13] Ideally, this first step would find all relevant locations in the target so sensitivity is prioritized but due to computational intensity, many popular algorithms (such as the earlier implementations of BLAST and FASTA) use heuristics to "short-cut" exploring all locations, ultimately missing many but running relatively quickly. One possible way to increase sensitivity, as done in the SHRiMP2[2] algorithm, is to use spaced seeds to allow for small differences between the query and the candidate locations so that somewhat more locations are identified as candidates. SHRiMP2 specifically uses multiple spaced seeds for this and requires multiple matches, increasing sensitivity as it allows different possible combinations of differences while maintaining speed comparable to original methods.
Sequence Assembly
A variation of spaced seeds with a single contiguous gap has been used in de novo sequence assembly.[3] In this instance, the design has an equal number of ones at either end of the sequence with a run of zeroes in between. The reasoning behind this design is that in assemblers that utilize De Bruijn graphs, increasing k-mer size inflates memory usage, as k-mers are more likely to be unique. However, the most important parts of a k-mer are its ends, as they are what are used to extend sequences in a graph. Thus, to circumvent the problem with memory usage, the less-important middle part (covered by the gap) is ignored. This approach has the additional advantage, as in other uses of spaced seeds, of taking into account any sequencing errors that may have occurred in the gap area. It has been noted[3] that increasing the length of the gap also increases the uniqueness of k-mers in both E. coli and H. sapiens genomes.
Metagenomics
A metagenomics study will commonly start with the high-throughput sequencing of a mixture of distinct species (e.g. from the human gut), yielding a set of sequences but with unknown origins. As such, one common goal is to identify which genome each sequence is phylogenetically most similar to. One approach could be to take k-mers from each sequence and see which, in a set of genomes, it has most sequence similarity with. Spaced seeds have been successfully utilized for this purpose[4] by finding how many k-mers are found in each genome (hit number) and the total number of positions these k-mers cover (coverage).
Multiple Spaced Seeds
An improvement to (single) spaced seeds was first demonstrated by PatternHunter in 2002[1] where a set of spaced seeds were used, in which a "hit" was called whenever one of the set matched. PatternHunter II, in 2003, demonstrated that this approach could offer higher sensitivity than BLAST while maintaining similar speed.[9] Identifying an optimal set of spaced seeds is an NP-hard problem, however, even finding a "good" set of spaced seeds remains difficult, although several attempts have been made to computationally identify them.[14][15][16] Since the speed of the algorithm must decrease with an increasing number of spaced seeds, it makes sense to only consider multiple seeds when all offer some useful contribution. There is ongoing research on how to quickly calculate good multiple spaced seeds, as previous homology search software calculated and hard-coded their seeds[16] – it would be advantageous to be able to calculate purpose-driven multiple spaced seeds instead.
References
- Ma, Bin; Tromp, John; Li, Ming (March 2002). "PatternHunter: faster and more sensitive homology search". Bioinformatics. 18 (3): 440–445. doi:10.1093/bioinformatics/18.3.440. PMID 11934743.
- David, Matei; Dzamba, Misko; Lister, Dan; Ilie, Lucian; Brudno, Michael (April 2011). "SHRiMP2: Sensitive yet Practical Short Read Mapping". Bioinformatics. 27 (7): 1011–1012. doi:10.1093/bioinformatics/btr046. PMID 21278192.
- Birol, I; Chu, J; Mohamadi, H; Jackman, S. D.; Raghavan, K; Vandervalk, B. P.; Raymond, A; Warren, René L. (2015). "Spaced Seed Data Structures for De Novo Assembly". International Journal of Genomics. 2015: 196591. doi:10.1155/2015/196591. PMC 4619942. PMID 26539459.
- Břinda, Karel; Sykulski, Maciej; Kucherov, Gregory (November 2015). "Spaced seeds improve k-mer-based metagenomic classification". Bioinformatics. 31 (22): 3584–3592. arXiv:1502.06256. Bibcode:2015arXiv150206256B. doi:10.1093/bioinformatics/btv419. PMID 26209798.
- Auton, A.; Brooks, L. D.; Durbin, R. M.; Garrison, E. P.; Kang, H. M.; Korbel, J. O.; Marchini, J. L.; McCarthy, S.; McVean, G. A.; Abecasis, G. R.; Flicek, Paul; Gabriel, Stacey B.; Gibbs, Richard A.; Green, Eric D.; Hurles, Matthew E.; Knoppers, Bartha M.; Korbel, Jan O.; Lander, Eric S.; Lee, Charles; Lehrach, Hans; Mardis, Elaine R.; Marth, Gabor T.; McVean, Gil A.; Nickerson, Deborah A.; Schmidt, Jeanette P.; Sherry, Stephen T.; Wang, Jun; Gibbs, Richard A.; Boerwinkle, Eric; et al. (2015-10-01). "A global reference for human genetic variation". Nature. 526 (7571): 68–74. Bibcode:2015Natur.526...68T. doi:10.1038/nature15393. ISSN 0028-0836. PMC 4750478. PMID 26432245.
- Califano, A.; Rigoutsos, I. (1993). "FLASH: A fast look-up algorithm for string homology". Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Vol. 1. pp. 353–359. doi:10.1109/CVPR.1993.341106. ISBN 0-8186-3880-X. PMID 7584371. S2CID 2862905.
- Pevzner, P.A.; Waterman, M.S. (1995). "Multiple filtration and approximate pattern matching". Algorithmica. 13 (1–2): 135–154. doi:10.1007/BF01188584. S2CID 10243441.
- Burkhardt, Stefan; Kärkkäinen, Juha (June 2001). "Better Filtering with Gapped q-Grams". Combinatorial Pattern Matching. Lecture Notes in Computer Science. Vol. 2089. pp. 73–85. doi:10.1007/3-540-48194-X_6. ISBN 978-3-540-42271-6.
- Li, Ming; Ma, Bin; Kisman, Derek; Tromp, John (2003). "PatternHunter II: Highly Sensitive and Fast Homology Search". Genome Informatics. 14: 164–175. doi:10.11234/gi1990.14.164. PMID 15706531.
- Gotea, Valer; Veeramachaneni, Vamsi; Makałowski, Wojciech (2003-12-01). "Mastering seeds for genomic size nucleotide BLAST searches". Nucleic Acids Research. 31 (23): 6935–6941. doi:10.1093/nar/gkg886. ISSN 0305-1048. PMC 290255. PMID 14627826.
- Altschul, Stephen F.; Gish, Warren; Miller, Webb; Myers, Eugene W.; Lipman, David J. (15 May 1990). "Basic local alignment search tool". Journal of Molecular Biology. 215 (3): 403–410. doi:10.1016/S0022-2836(05)80360-2. PMID 2231712. S2CID 14441902.
- Li, Heng (15 September 2018). "Minimap2: pairwise alignment for nucleotide sequences". Bioinformatics. 34 (18): 3094–3100. doi:10.1093/bioinformatics/bty191. PMC 6137996. PMID 29750242.
- Langmead, B.; Salzberg, S. (2012). "Fast gapped-read alignment with Bowtie 2". Nature Methods. 9 (4): 357–359. doi:10.1038/nmeth.1923. PMC 3322381. PMID 22388286.
- Choi, Kwok Pui; Zhang, Louxin (2004-02-01). "Sensitivity analysis and efficient method for identifying optimal spaced seeds". Journal of Computer and System Sciences. 68 (1): 22–40. doi:10.1016/j.jcss.2003.04.002. ISSN 0022-0000.
- Kong, Yong (2007-03-01). "Generalized Correlation Functions and Their Applications in Selection of Optimal Multiple Spaced Seeds for Homology Search". Journal of Computational Biology. 14 (2): 238–254. doi:10.1089/cmb.2006.0008. PMID 17456017.
- Ilie, Lucian; Ilie, Silvana (2007-11-15). "Multiple spaced seeds for homology search". Bioinformatics. 23 (22): 2969–2977. doi:10.1093/bioinformatics/btm422. ISSN 1367-4803. PMID 17804438.