Alignment-free sequence analysis

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

On bioinformatics, alignment-free sequence analysis approaches to molecular sequence and structure data provide alternatives over alignment-based approaches.[1]

The emergence and need for the analysis of different types of data generated through biological research has given rise to the field of bioinformatics.[2] Molecular sequence and structure data of DNA, RNA, and proteins, gene expression profiles or microarray data, metabolic pathway data are some of the major types of data being analysed in bioinformatics. Among them sequence data is increasing at the exponential rate due to advent of next-generation sequencing technologies. Since the origin of bioinformatics, sequence analysis has remained the major area of research with wide range of applications in database searching, genome annotation, comparative genomics, molecular phylogeny and gene prediction. The pioneering approaches for sequence analysis were based on sequence alignment either global or local, pairwise or multiple sequence alignment.[3][4] Alignment-based approaches generally give excellent results when the sequences under study are closely related and can be reliably aligned, but when the sequences are divergent, a reliable alignment cannot be obtained and hence the applications of sequence alignment are limited. Another limitation of alignment-based approaches is their computational complexity and are time-consuming and thus, are limited when dealing with large-scale sequence data.[5] The advent of next-generation sequencing technologies has resulted in generation of voluminous sequencing data. The size of this sequence data poses challenges on alignment-based algorithms in their assembly, annotation and comparative studies.

Alignment-free methods

Alignment-free methods can broadly be classified into four categories: a) methods based on k-mer/word frequency, b) methods based on substrings, c) methods based on information theory and d) methods based on graphical representation. Alignment-free approaches have been used in sequence similarity searches,[6] clustering and classification of sequences,[7] and more recently in phylogenetics[8][9] (Figure 1).

Such molecular phylogeny analyses employing alignment-free approaches are said to be part of next-generation phylogenomics.[9] A number of review articles provide in-depth review of alignment-free methods in sequence analysis.[10][11][12][13]

Methods based on k-mer/word frequency

The popular methods based on k-mer/word frequencies include feature frequency profile (FFP),[14][15] Composition vector (CV),[16][17] Return time distribution (RTD),[18][19] frequency chaos game representation (FCGR).[20] and Spaced Words [21]

Feature frequency profile (FFP)

The methodology involved in FFP based method starts by calculating the count of each possible k-mer (possible number of k-mers for nucleotide sequence: 4k, while that for protein sequence: 20k) in sequences. Each k-mer count in each sequence is then normalized by dividing it by total of all k-mers' count in that sequence. This leads to conversion of each sequence into its feature frequency profile. The pair wise distance between two sequences is then calculated Jensen–Shannon (JS) divergence between their respective FFPs. The distance matrix thus obtained can be used to construct phylogenetic tree using clustering algorithms like neighbor-joining, UPGMA etc.

Composition vector (CV)

In this method frequency of appearance of each possible k-mer in a given sequence is calculated. The next characteristic step of this method is the subtraction of random background of these frequencies using Markov model to reduce the influence of random neutral mutations to highlight the role of selective evolution. The normalized frequencies are put a fixed order to form the composition vector (CV) of a given sequence. Cosine distance function is then used to compute pairwise distance between CVs of sequences. The distance matrix thus obtained can be used to construct phylogenetic tree using clustering algorithms like neighbor-joining, UPGMA etc. This method can be extended through resort to efficient pattern matching algorithms to include in the computation of the composition vectors: (i) all k-mers for any value of k, (ii) all substrings of any length up to an arbitrarily set maximum k value, (iii) all maximal substrings, where a substring is maximal if extending it by any character would cause a decrease in its occurrence count.[22][23]

Return time distribution (RTD)

The RTD based method does not calculate the count of k-mers in sequences, instead it computes the time required for the reappearance of k-mers. The time refers to the number of residues in successive appearance of particular k-mer. Thus the occurrence of each k-mer in a sequence is calculated in the form of RTD, which is then summarised using two statistical parameters mean (μ) and standard deviation (σ). Thus each sequence is represented in the form of numeric vector of size 2·4k containing μ and σ of 4k RTDs. The pair wise distance between sequences is calculated using Euclidean distance measure. The distance matrix thus obtained can be used to construct phylogenetic tree using clustering algorithms like neighbor-joining, UPGMA etc.

Frequency chaos game representation (FCGR)

The FCGR methods have evolved from chaos game representation (CGR) technique, which provides scale independent representation for genomic sequences.[24] The CGRs can be divided by grid lines where each grid square denotes the occurrence of oligonucleotides of a specific length in the sequence. Such representation of CGRs is termed as Frequency Chaos Game Representation (FCGR). This leads to representation of each sequence into FCGR. The pair wise distance between FCGRs of sequences can be calculated using the Pearson distance, the Hamming distance or the Euclidean distance.[25]

Spaced-word frequencies

While most alignment-free algorithms compare the word-composition of sequences, Spaced Words uses a pattern of care and don't care positions. The occurrence of a spaced word in a sequence is then defined by the characters at the match positions only, while the characters at the don't care positions are ignored. Instead of comparing the frequencies of contiguous words in the input sequences, this approach compares the frequencies of the spaced words according to the pre-defined pattern.[21]

Methods based on substrings

The methods in this category employ the similarity and differences of substrings in a pair of sequences. These algorithms were mostly used for string processing in computer science.[26]

Average common substring (ACS)

In this approach, for a chosen pair of sequences (A and B of lengths and m respectively), longest substring starting at some position is identified in one sequence (A) which exactly matches in the other sequence (B) at any position. In this way, lengths of longest substrings starting at different positions in sequence A and having exact matches at some positions in sequence B are calculated. All these lengths are averaged to derive a measure L(A, B). Intuitively, larger the L(A, B), the more similar the two sequences are. To account for the differences in the length of sequences, L(A, B) is normalized [i.e. L(A, B)/\log(m)]. This gives the similarity measure between the sequences.

In order to derive a distance measure, the inverse of similarity measure is taken and a correction term is subtracted from it to assure that d(A, A) will be zero. Thus

d(A, B) = \left [ \frac{\log m}{L(A, B)} \right] - \left[\frac{\log n}{L(A, A)} \right].

This measure d(A, B) is not symmetric, so one has to compute d_s(A, B) = d_s(B, A) = (d(A, B) + d(B, A))/2, which gives final ACS measure between the two strings (A and B).[27] The subsequence/substring search can be efficiently performed by using suffix trees.[28][29][30]

k-mismatch average common substring approach (kmacs)

This approach is a generalization of the ACS approach. To define the distance between two DNA or protein sequences, kmacs estimates for each position i of the first sequence the longest substring starting at i and matching a substring of the second sequence with up to k mismatches. It defines the average of these values as a measure of similarity between the sequences and turns this into a symmetric distance measure. Kmacs does not compute exact k-mismatch substrings, since this would be computational too costly, but approximates such substrings.[31]

Mutation distances (Kr)

This approach is closely related to the ACS, which calculates the number of substitutions per site between two DNA sequences using the shortest absent substring (termed as shustring).[32]

Methods based on information theory

Information Theory has provided successful methods for alignment-free sequence analysis and comparison. The existing applications of information theory include global and local characterization of DNA, RNA and proteins, estimating genome entropy to motif and region classification. It also holds promise in gene mapping, next-generation sequencing analysis and metagenomics.[33]

Base–base correlation (BBC)

Base–base correlation (BBC) converts the genome sequence into a unique 16-dimensional numeric vector using the following equation,

T_{ij}(K) = \sum_{\ell=1}^K P_{ij}(\ell) \cdot \log_2 \left ( \frac{P_{ij}(\ell)}{P_i P_j} \right)

The P_i and P_j denotes the probabilities of bases i and j in the genome. The P_{ij}(\ell) indicates the probability of bases i and j at distance in the genome. The parameter K indicates the maximum distance between the bases i and j. The variation in the values of 16 parameters reflect variation in the genome content and length.[34][35][36]

Information correlation and partial information correlation (IC-PIC)

IC-PIC (information correlation and partial information correlation) based method employs the base correlation property of DNA sequence. IC and PIC were calculated using following formulas,

 IC_\ell = -2 \sum_i P_i \log_2 P_i + \sum_{ij} P_{ij} (\ell) \log_2 P_{ij} (\ell)
 PIC_{ij} (\ell) = (P_{ij} (\ell) - P_i P_j (\ell))^2

The final vector is obtained as follows:

V = {IC_\ell \over PIC_{ij} (\ell)} \text{ where } \ell \isin \left \{ \ell_0, \ell_0 + 1, \ldots, \ell_0 + n \right \},

which defines the range of distance between bases.[37]

The pair wise distance between sequences is calculated using Euclidean distance measure. The distance matrix thus obtained can be used to construct phylogenetic tree using clustering algorithms like neighbor-joining, UPGMA etc.

Lempel–Ziv compress

Lempel–Ziv complexity uses the relative information between the sequences. This complexity is measured by the number of steps required to generate a string given the prior knowledge of another string and a self-delimiting production process. This measure has a relation to measuring k-words in a sequence, as they can be easily used to generate the sequence. It is computational intensive method. Otu and Sayood (2003) used this method to construct five different distance measures for phylogenetic tree construction.[38]

Context modeling compress

In the context modeling complexity the next-symbol predictions, of one or more statistical models, are combined or competing to yield a prediction that is based on events recorded in the past. The algorithmic information content derived from each symbol prediction can be used to compute algorithmic information profiles with a time proportional to the length of the sequence. The process has been applied to DNA sequence analysis.[39]

Methods based on graphical representation

Iterated maps

The use of iterated maps for sequence analysis was first introduced by HJ Jefferey in 1990[24] when he proposed to apply the Chaos Game to map genomic sequences into a unit square. That report coined the procedure as Chaos Game Representation (CGR). However, only 3 years later this approach was first dismissed as a projection of a Markov transition table by N Goldman.[40] This objection was overruled by the end of that decade when the opposite was found to be the case – that CGR bijectively maps Markov transition is into a fractal, order-free (degree-free) representation.[41] The realization that iterated maps provide a bijective map between the symbolic space and numeric space led to the identification of a variety of alignment-free approaches to sequence comparison and characterization. These developments were reviewed in late 2013 by JS Almeida in.[42] A number of web apps such as http://usm.github.com are available to demonstrate how to encode and compare arbitrary symbolic sequences.

Comparison of alignment based and alignment-free methods [9]

Alignment-based methods Alignment-free methods
These methods assume that homologous regions are contiguous (with gaps) Does not assume such contiguity of homologous regions
Computes all possible pairwise comparisons of sequences; hence computationally expensive Based on occurrences of sub-sequences; composition; computationally inexpensive, can be memory-intensive
Well-established approach in phylogenomics Relatively recent and application in phylogenomics is limited; needs further testing for robustness and scalability
Requires substitution/evolutionary models Less dependent on substitution/evolutionary models
Sensitive to stochastic sequence variation, recombination, horizontal (or lateral) genetic transfer, rate heterogeneity and sequences of varied lengths, especially when similarity lies in the “twilight zone” Less sensitive to stochastic sequence variation, recombination, horizontal (or lateral) genetic transfer, rate heterogeneity and sequences of varied lengths
Best practice uses inference algorithms with complexity at least O(n2); less time-efficient Inference algorithms typically O(n2) or less; more time-efficient
Heuristic in nature; statistical significance of how alignment scores relate to homology is difficult to assess Exact solutions; statistical significance of the sequence distances (and degree of similarity) can be readily assessed

Applications of alignment-free methods

  • Genomic rearrangements[43]
  • Molecular phylogenetics[9]
  • Metagenomics[44]
  • Next generation sequence data analysis[44]
  • Epigenomics[45]
  • Barcoding of species[46]
  • Population genetics[47]
  • Horizontal gene transfer[48]
  • Sero/genotyping of viruses[18][19][49]
  • Allergenicity prediction[50]
  • SNP discovery[51]
  • Recombination detection[52]

List of web servers/software for alignment-free methods

Name Description Availability Reference
kmacs k-mismatch average common substring approach kmacs [31]
Spaced words Spaced-word frequencies spaced-words [21]
FFP Feature frequency profile based phylogeny FFP [14]
CVTree Composition vector based server for phylogeny CVTree [53]
RTD Phylogeny Return time distribution based server for phylogeny RTD Phylogeny [18]
AGP A multimethods web server for alignment-free genome phylogeny AGP [54]
Alfy Alignment-free detection of local similarity among viral and bacterial genomes Alfy [48]
decaf+py DistancE Calculation using Alignment-Free methods in PYthon decaf+py [55]
MuV genotyping server Genotyping of Mumps viruses based on RTD MuV Genotyping server [19]
Dengue Subtyper Genotyping of Dengue viruses based on RTD Dengue Subtyper [18]
WNV Typer Genotyping of West nile viruses based on RTD WNV Typer [49]
AllergenFP Allergenicity prediction by descriptor fingerprints AllergenFP [50]
kSNP v2 Alignment-Free SNP Discovery kSNP v2 [51]
d2Tools Comparison of Metatranscriptomic Samples Based on k-Tuple Frequencies d2Tools [56]
rush Recombination detection Using SHustrings rush [52]
smash Genomic rearrangements detection and visualisation smash [43]
GScompare Oligonucleotide-based fast clustering of bacterial genomes GScompare

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. 9.0 9.1 9.2 9.3 Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. 14.0 14.1 Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. 18.0 18.1 18.2 18.3 Lua error in package.lua at line 80: module 'strict' not found.
  19. 19.0 19.1 19.2 Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. 21.0 21.1 21.2 Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. 24.0 24.1 Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. 31.0 31.1 Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. Lua error in package.lua at line 80: module 'strict' not found.
  34. Lua error in package.lua at line 80: module 'strict' not found.
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. Lua error in package.lua at line 80: module 'strict' not found.
  37. Lua error in package.lua at line 80: module 'strict' not found.
  38. Lua error in package.lua at line 80: module 'strict' not found.
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. Lua error in package.lua at line 80: module 'strict' not found.
  42. Lua error in package.lua at line 80: module 'strict' not found.
  43. 43.0 43.1 Lua error in package.lua at line 80: module 'strict' not found.
  44. 44.0 44.1 Lua error in package.lua at line 80: module 'strict' not found.
  45. Lua error in package.lua at line 80: module 'strict' not found.
  46. Lua error in package.lua at line 80: module 'strict' not found.
  47. Lua error in package.lua at line 80: module 'strict' not found.
  48. 48.0 48.1 Lua error in package.lua at line 80: module 'strict' not found.
  49. 49.0 49.1 Lua error in package.lua at line 80: module 'strict' not found.
  50. 50.0 50.1 Lua error in package.lua at line 80: module 'strict' not found.
  51. 51.0 51.1 Lua error in package.lua at line 80: module 'strict' not found.
  52. 52.0 52.1 Lua error in package.lua at line 80: module 'strict' not found.
  53. Lua error in package.lua at line 80: module 'strict' not found.
  54. Lua error in package.lua at line 80: module 'strict' not found.
  55. Lua error in package.lua at line 80: module 'strict' not found.
  56. Lua error in package.lua at line 80: module 'strict' not found.