- Research
- Open Access
HyDA-Vista: towards optimal guided selection of k-mer size for sequence assembly
- Basir Shariat^{1}Email author,
- Narjes Sadat Movahedi^{2},
- Hamidreza Chitsaz^{1} and
- Christina Boucher^{1}
https://doi.org/10.1186/1471-2164-15-S10-S9
© Shariat et al.; licensee BioMed Central Ltd. 2014
- Published: 12 December 2014
Abstract
Motivation
Intimately tied to assembly quality is the complexity of the de Bruijn graph built by the assembler. Thus, there have been many paradigms developed to decrease the complexity of the de Bruijn graph. One obvious combinatorial paradigm for this is to allow the value of k to vary; having a larger value of k where the graph is more complex and a smaller value of k where the graph would likely contain fewer spurious edges and vertices. One open problem that affects the practicality of this method is how to predict the value of k prior to building the de Bruijn graph. We show that optimal values of k can be predicted prior to assembly by using the information contained in a phylogenetically-close genome and therefore, help make the use of multiple values of k practical for genome assembly.
Results
We present HyDA-Vista, which is a genome assembler that uses homology information to choose a value of k for each read prior to the de Bruijn graph construction. The chosen k is optimal if there are no sequencing errors and the coverage is sufficient. Fundamental to our method is the construction of the maximal sequence landscape, which is a data structure that stores for each position in the input string, the largest repeated substring containing that position. In particular, we show the maximal sequence landscape can be constructed in O(n + n log n)-time and O(n)-space. HyDA-Vista first constructs the maximal sequence landscape for a homologous genome. The reads are then aligned to this reference genome, and values of k are assigned to each read using the maximal sequence landscape and the alignments. Eventually, all the reads are assembled by an iterative de Bruijn graph construction method. Our results and comparison to other assemblers demonstrate that HyDA-Vista achieves the best assembly of E. coli before repeat resolution or scaffolding.
Availability
HyDA-Vista is freely available [1]. The code for constructing the maximal sequence landscape and choosing the optimal value of k for each read is also separately available on the website and could be incorporated into any genome assembler.
Keywords
- Genome Assembly
- Sequence Landscape
- Suffix Arrays
- Longest Common Prefix Array
- de Bruijn Graphs
- Variable k
Introduction
The ability to accurately assemble genomes is a fundamental problem in bioinformatics that is vital to the success of many scientific projects, including the 10,000 vertebrate genomes (Genome 10K) [2], Arabidopsis variations (1001 genomes) [3], human variations (1000 genomes) [4], and Human Microbiome Project [5]. The genome assembly process aims to build contiguous sequences, called contigs, predominantly from short read sequencing data. Other sources of information have also been used to boost the accuracy, including genetic linkage data [6], optical mapping data [7], and longer sequencing reads (e.g. PacBio data) [8]. A potential source of information that has not been fully explored is the information contained in phylogenetically-close genomes. The genome of an individual of the same species or that of a phylogenetically-close species can potentially be used as an extra source of information, and increase the assembly quality. We argue that genome assemblers can benefit from using a reference genome to help guide the assembly process, particularly in those regions of the genome that are pervaded by repetitive sequences.
In Eulerian sequence assembly [9, 10], a de Bruijn graph is constructed with a vertex v for every (k − 1)-mer present in an input set of reads, and an edge $\left(v-{v}^{\prime}\right)$ for every observed k-mer in the reads with (k − 1)-mer prefix v and (k − 1)-mer suffix ${v}^{\prime}$. A contig corresponds to a non-branching path through this graph. SPAdes [11], IDBA [12], Euler-SR [13], Velvet [14], SOAPdenovo [15], ABySS [16] and ALLPATHS [17] all use this paradigm for assembly. The majority of de Bruijn graph based assemblers follow the same general outline: break the (possibly error corrected) reads into k-mers, construct the de Bruijn graph on the set of resulting k-mers, simplify the de Bruijn graph, resolve the repeated regions by using mate-pair information, and construct the contigs (simple paths in the de Bruijn graph). Therefore, the majority of assemblers require or allow the value of k to be specified by the user.
The problem of determining an appropriate value of k for the de Bruijn graph construction is important since it has a direct impact on assembly quality; stated very briefly, when k is too small the resulting graph is complicated by spurious edges and vertices, and when k is too large the graph becomes too sparse and possibly disconnected. Repetitive regions are especially problematic for genome assembly since they inadvertently result in spurious edges and vertices in the de Bruijn graph [18] and are very sensitive to the choice of k. There has been a significant effort in developing algorithms that will choose an ideal value for k by preprocessing the sequence reads, and thus, reduce the complexity of the de Bruijn graph [11, 12, 19].
A more obvious combinatorial approach for building a simplified de Bruijn graph would be to allow the value of k to vary; having a larger value of k where the graph is more complex and a smaller value of k where the graph would likely contain fewer spurious edges and vertices. A major difficulty in implementing this approach is determining a practical method that makes this idea feasible assembling large genomes. Peng et al. [12] and Bankevich et al. [11] both introduced assemblers that use various values of k. IDBA builds the de Bruijn graph in an iterative manner from k = k_{ min } to k = k_{ max }; these values of k are predetermined and (by default) do not change for different datasets or genomes. At iteration i, the de Bruin graph for k_{ i } is built from the current set of reads and the contigs for that graph are constructed, then all the reads that align to at least one of those contigs are removed from the current set of reads. In the next iteration the graph is built by converting every edge from the previous graph to a vertex while treating contigs as edges. SPAdes [11] uses a similar approach but uses all the reads at each iteration.
While this method has been shown to greatly improve assembly quality [11, 12], it is not efficient since all the reads are assembled at each iteration. Thus, one challenge that remains to be addressed is how to efficiently determine which values of k should be used for this iterative assembly process and how to assign a k-mer value for each read. If this could be accomplished prior to assembly of the de Bruijn graph(s) then these iterative assembly methods could be made more efficient without degrading the assemblies quality.
Our contribution. We introduce an efficient algorithm for determining an optimal value of k for each read prior to constructing the de Bruijn graph, and implement this method into a modified version of HyDA, a de novo assembler developed by Movahedi et al. [20]. This modified assembler, which we refer to as HyDA-Vista, takes as input a phylogenetically-close genome and a set of paired-end reads. Imperative to HyDA-Vista is the construction of the maximal sequence landscape, which is a data structure that stores for every position in the input string, the longest repeat containing it. Prior to de Bruijn graph construction, HyDA-Vista constructs the maximal sequence landscape for the phylogenetically-close genome, and aligns the reads to the reference genome. The alignment and landscape allows the optimal value of k for each read be determined in linear time in the length of the read, provided the read is longer than the longest repeat. These values of k are "optimal" in the sense that for unchanged parts of the genome, the de Bruijn graph will have no spurious edges or vertices if there are no sequencing errors, and the length of the repeat is smaller than the read length. Unaligned reads are assigned a default value of k. After the assignment of values of k to each read, HyDA-Vista constructs the de Bruijn graph in an iterative manner.
Our approach for choosing values of k for each read takes into consideration the repeat structure of the genome, which enables us to avoid overly-complex regions of the graph since the assignment of values of k to reads is done prior to the assembly rather than during the assembly. We compare HyDA-Vista versus IDBA [12], SPAdes [11], SOAPdenovo [15], ABySS [16] and HyDA [20]. Our results demonstrate that HyDA-Vista produces the best assembly of E. coli before repeat resolution or scaffolding. We aim to achieve the best assembly without repeat resolution and scaffolding and note that such methods could be applied to all these initial assemblies. Lastly, we demonstrate that this method improves the efficiency of iterative assembly.
Roadmap. We review related tools for the problem in the remainder of this section. Section then sets notation and formally lays down the problem and the data structures that will be used for the construction of the maximal sequence. We formally define the maximal sequence landscape in Section. Section gives details of HyDA-Vista. In Section we give results that demonstrate how HyDA-Vista compares against competing assemblers. Finally, Section offers reflections and some future areas of research that warrant investigation.
Related work. The re-sequencing methods include LOCAS and SUPERLOCAS [21, 22], e-RGA [23], Colombus module of Velvet [24] and IDBA-Hybrid [25]. Since these methods aim to determine structural variations between species, and require extremely high sequence similarity to produce reasonable results, they have only been applied to individuals of the same species. Our focus is to produce high quality de novo assemblies using homology information contained in the reference genome of the same species or phylogenetically-close species. Gnerre et al. [26] also consider how to improve assembly quality by using the alignment of reads to a reference genome. Their method simultaneously builds a de novo assembly from the reads and aligns these same reads to one or more related genomes. The alignment is then used to improve the assembly quality, e.g., reads that were not used in the assembly are incorporated into the assembly using the alignment.
Complementary to the work of Chikhi and Medvedev [19], Peng et al. [12], and Bankevich et al. [11], there has been an effort in developing methods that use paired-end data to constrain the construction of the de Bruijn graph [21, 27–30]. Medvedev et al. [29] introduced the concept of a paired de Brujin graph. Since the insert size is variable among mate pairs, this method requires that all the paths within some threshold be considered in order to ensure an edge is not missed. Thus, Bankevich et al. [11] improve upon this idea by developing the rectangle graph, which eliminates the need to consider all paths. Vyahhi et al. [30] furthered this study of rectangle graphs for genome assembly. These methods merit mentioning the goal of these methods is the same as the goal of increasing the value of k in certain regions; both aim to minimize spurious edges and branching in the graph but in a different manner.
Determining all maximal exact repeats in a string has been previously studied [31–33]. It has been shown that all maximal repeats of a string can be found and stored in O(n)-time and O(n)-space using a suffix tree (although the output maybe of size Θ(n^{2})) or directed acrylic graph [32]. Therefore, the maximal sequence landscape, which we define in this paper, can be constructed from either a suffix tree or a directed acrylic graph in O(n)-time and O(n)-space using these algorithms directly or adapting them. However, the constant in the order notation of the space complexity of these constructions is relatively large. The algorithm we present uses a suffix array and thus, requires linear space with a smaller constant and O(n log n)-time. Hence, we pay a log n cost in time to remove the large constant from the linear space time. We also note that the related problem of finding inexact maximal repeats also has been previously studied [34–37].
Background
Strings. Consider a fixed alphabet Σ = {σ_{1},..., σ_{ m }} and a total order ≤_{ L } defined over Σ = Σ ∪ {$} where $ ∉ Σ, and for all σ ∈ Σ we have $ ≤_{ L } σ. We denote a finite string s as s_{1}s_{2} ... s_{ n }, where s_{ i } ∈ Σ. We use s_{ ij } , where 1 ≤ i ≤ j ≤ n, to indicate substring s_{ i }s_{ i+1 } s_{ j } of string s. We call substrings ${s}_{i}^{\mathsf{\text{Pre}}}={s}_{1i}$ and ${s}_{i}^{\text{Suf}}={s}_{in}$ with i ∈ {1, . . . , n} the i^{th} prefix and i^{th} suffix of s respectively. Based on the total order ≤_{ L }, we define a lexicographical total order on the strings in Σ^{ ∗ }.
Arrays. We denote arrays of integers by all capital letter strings like A, SP, LCP, etc. A[i], with 1 ≤ i ≤ |A|, stands for the integer in the i^{th} cell of array A. Also, A[i, j] indicates the projection of A onto indices i to j, inclusive of both ends. For an array A, with |A| = n, that holds a permutation of integers {1, ..., n}, index array of A is another array I(A) with |I(A)| = n such that I(A)[i] = j if and only if A[j] = i.
Suffix and longest common prefix arrays. SA_{ s }, for some string s, denotes the suffix array associated with s [38]. SA_{ s }[i] = l for i ∈ {1, ... , n} if and only if ${s}_{l}^{\text{Suf}}$ is the i^{th} string in the lexicographically sorted list of all suffixes of s. We also indicate the longest common prefix array of some string s with LCP_{ s }, and LCP_{ s }[i] = l for i ∈ {1, . . . , n − 1} if and only if the length of the longest common prefix between ${s}_{\mathsf{\text{S}}{\mathsf{\text{A}}}_{s\left[i\right]}}^{\mathsf{\text{Suf}}}$ and ${s}_{\mathsf{\text{S}}{\mathsf{\text{A}}}_{s\left[i\right]}+1}^{\mathsf{\text{Suf}}}$ equals to l.
Approach
The maximal sequence landscape
The occurrences of the substrings in the source string are defined as mountains. This terminology reflects the visual representation that was first introduced by Clift et al. [32] that illustrates each occurrence as a mountain having height equal to the length of the substring, i.e. the height of mountain mi of L_{ t|s } is denoted as h(m_{ i }) and equal to e_{ i } − b_{ i } + 1. The peak of each mountain is labelled with the frequency of the substring corresponding to it. In Figure 1 (left), the substring CAT is represented as two mountains each of which has a height equal to three and frequency equal to two.
Please note that the summit of index i can be empty or non-unique so the height of summit of index i is defined to be zero for empty set.
Definition 1 The maximal sequence landscape, which we denote as ${L}_{t|s}^{*}$, is the set of the summits of all positions in s that have frequency greater than one. ${L}_{t|s}^{*}$can be formally defined as follows: ${L}_{t|s}^{*}=\left\{{S}_{{L}_{t|s}}\left(i\right)|i=1,\dots ,n\right\}$The maximal sequence landscape is highlighted in light grey in Figure 1.
The maximal sequence landscape is obtained from the sequence landscape by removing all mountains except those that are highest and have frequency greater than one at each position. In the case of the maximal sequence landscape constructed from a self sequence landscape, this results in a data structure containing the longest repeat at each position of the input string. In Subsection we give an algorithm that builds the maximal sequence landscape and returns an array containing the length of the longest repeat at each position of the input string. Therefore, given a position i in s, we can determine the length of the longest repeat in s containing that position in constant time by simply indexing the maximal sequence landscape at position i. By choosing a value for k that is larger than the length of this repeat it can guaranteed that there will be no branching in the corresponding vertices of the de Bruijn graph, if the same substring is not repeated in changed parts of the genome that is being assembled. This is our idea based on which we determine the optimal value of k for each read. We consider the maximal sequence landscape constructed from the self sequence landscape for the remainder of this paper since it is what is used by HyDA-Vista.
Methods
Algorithm 1 gives an overview of HyDA-Vista algorithm. We explain each of these steps in detail in the subsequent subsections.
Algorithm 1 An overview of HyDA-Vista
1: Build the maximal sequence landscape for the reference genome.
2: Align all reads to the reference using BWA.
3: For each aligned read: assign a value of k using the maximal sequence landscape.
4: Unaligned reads are assigned a value of k using a heuristic.
5: The de Bruijn graph is constructed in an iterative manner, as shown in Algorithm 2.
Construction of the maximal sequence landscape
- (a)
The longest repeated substring at position i - 1 can be extended by appending s_{ i }. The maximal sequence landscape, SA_{min}, and SA_{max} are updated.
- (b)
The longest repeated substring at position i - 1 cannot be extended by appending s_{ i } (either the extended string does not occur or it does occur but its frequency is one). Let p = s_{ j } ⋯ s_{ i−1 } be the longest repeated substring yet found that contains s_{ i−1 } , and ${p}^{\prime}={s}_{j+1}\cdots {s}_{i}$ be the string obtained by removing the first letter of p and appending s_{ i }. If the frequency of occurrence of the ${p}^{\prime}$ is greater than one, then the maximal sequence landscape, and the search interval is updated as in (a). Otherwise, the search for the longest repeated substring continues by eliminating the first character of ${p}^{\prime}$ each time until a repeating match is found or the null string is reached. If the null string is reached then the maximal sequence landscape is empty at that position and the search interval is updated to [1, n].
The search interval contains all indices in SAs for which the corresponding suffixes have the current longest repeated substring as a prefix. In (a), the interval is updated by performing binary search. In (b) the search interval is no longer valid since we removed a letter from the beginning of the current longest repeated substring and we need (a more complicated) scheme to efficiently find the correct search interval. To accomplish this we need two auxiliary data structures that are constructed at the beginning of the algorithm: the SP_{ s } array, and an ordered binary search tree containing all consecutive intervals of LCP_{ s }. SP_{ s }[j] holds the index in SAs that is obtained by removing the first letter from the beginning of ${s}_{j}{s}_{j+1}\cdots {s}_{n}$ in order to obtain ${s}_{j+1}\cdots {s}_{n}$. This array can be built in linear time by scanning the index array of SA_{ s }. Thus, to find the correct interval in (b), we locate an index of SA_{ s } (denoted as sp) where the corresponding suffix contains ${s}_{j+1}\dots {s}_{i-1}$ as a prefix, and find the largest interval around sp where all the suffixes in the interval have ${s}_{j+1}\dots {s}_{i-1}$ as prefix. This is the new search interval. The sp index can be found in constant time by correctly indexing SP_{ s } . The second step is equivalent to finding the largest interval [d, u] around sp that for all j ∈ [d, u] we have $\mathsf{\text{LC}}{\mathsf{\text{P}}}_{s}\left[j\right]\ge \left|{p}^{\prime}\right|-1$. This can be done in O(log n)-time and O(n)-space using an ordered binary search tree.
The time complexity can be seen by first noting that at each iteration of the algorithm the maximal sequence landscape either ascends by one after a number of descents (possible zero) or it is undefined after a number of nonzero descents, and each of these ascents or descents require O(log n)-time. Note that in (a) the maximal sequence landscape is ascending, and in (b) the maximal sequence landscape is descending, and the frequency of a substring in s can be determined in constant time using LCP_{ s }. Second, since each time it ascends one character from s is processed and the number of ascents equals the number of descents, the total number of ascents and descents is 2n. Therefore, since the data structures are constructed in O(n)-time, and since there are at most 2n ascents or descents which take O(log n)-time, the running time of the algorithm is O(n + n log n).
Assignment of k-mer sizes to reads
We assign values of k to the reads using the maximal sequence landscape constructed for the reference genome by first aligning the reads to the reference genome using BWA (version 0.7.4) [40] in pairedend mode. We consider all forward and reverse alignments of every read. Let p be the position in the reference genome where a read of length l aligns, and let k^{ ∗ } be the maximum of {MSL[p] + 1, MSL[p + 1] + 1, ... , MSL[p + l] + 1}, where MSL is the maximal sequence landscape array that contains the height of the maximal sequence landscape at each position. We compute k^{ ∗ } for each forward alignment and let K^{ ∗ } be the set of all these values. The optimal value of k for the (forward) read is equal to the maximum value in K^{ ∗ }. We follow the same procedure for the reverse alignments with the exception that we compute the reverse complement of the read. Thus, the optimal values of k can be computed in linear time in the length of the read.
If the computed k-mer size (maximum of all maximal sequence landscape heights of all aligned nucleotides) is larger than the read length, then a default value (k = 77 is the default) is used instead. Unaligned reads are also assigned a default k-mer value (k = 55 is the default).
The de Bruijn graphs
The rationale behind this idea is that those reads that have an assigned k-mer size not more than k should ideally not create any repeats when they are assembled with the k-mer size k. The iterative inclusion of contigs from previous rounds, first introduced in IDBA [12] and later adopted by others [11], is an idea that has already shown merit in improving assembly quality. In Algorithm 2, HyDA is a function that accepts a set of input sequences and an integer k, and returns a set of contigs which are obtained from assembling the input sequences with a k de Bruijn graph.
Algorithm 2 Construction of the de Bruijn graphs
1: function HyDA-Vista(R, K)
2: ${k}_{\mathsf{\text{min}}}\leftarrow \underset{r\in R}{\mathsf{\text{min}}}K\left(r\right),{k}_{\mathsf{\text{max}}}\leftarrow \underset{r\in R}{\mathsf{\text{max}}}K\left(r\right)$
3: for all k_{min} ≤ k ≤ k_{max} do
4: ${R}_{k}\leftarrow \mathrm{0\u0338}$
5: end for
6: for all r ∈ R do
7: k ← K(r)
8: R_{ k } ← R_{ k } ∪ {r}
9: end for
10: ${R}^{\prime}\leftarrow \mathrm{0\u0338}$
11: ${A}_{{k}_{\mathsf{\text{min}}}-1}\leftarrow \mathrm{0\u0338}$ ▷ assembly contigs
12: for k := k_{min} to k_{max} do
13: ${R}^{\prime}\leftarrow {R}^{\prime}\cup {R}_{k}$
14: ${A}_{k}\leftarrow \mathsf{\text{HyDA}}\left({R}^{\prime}\cup {A}_{k-1},k\right)$ ▷ contigs resulting from assembly with HyDA
15: end for
16: return ${A}_{{k}_{\mathsf{\text{max}}}}$
17: end function
Results
Improved efficiency due to maximal sequence landscape
HyDA-Vista uses the maximal landscape to break the reads into groups by assigning each a value of k. It then uses these groups to build the graph iteratively. This is in contrast to other methods that also iteratively build of the graph; SPAdes [11] uses all the reads at each iteration, and IDBA [12] uses a more complicated approach to remove some subset of reads at each iteration. Thus, one of the main advantages of using the maximal sequence landscape is that it increases the efficiency of building the assembly graph iteratively without degrading assembly quality (see the next subsection for a comparison of the different assemblers). To demonstrate this efficiency experimentally we ran HyDA-Vista with and without the maximal sequence landscape on multicell E. coli (substr. K-12) Illumina data and the E. coli (substr. K-12) reference genome. See Subsection for a description of this dataset. Without the maximal sequence landscape the assembly took 1,414 minutes, and with the maximal sequence landscape the assembly took 822 minutes with 42 number of minutes for building the maximal sequence landscape and assigning the values of k to the reads.
Comparison between competing assemblers and HyDA-Vista on E.Coli
The first data set consists of approximately 27 million paired-end 100 bp reads from multicell E. coli (substr. K-12), generated by the Illumina Genome Analayzer (GA) IIx platform. It was obtained from the NCBI Short Read Archive (accession ERA000206, EMBL-EBI Sequence Read Archive). To assess assembly quality, we aligned the reads to the E. coli reference genome (substr. K-12) using BWA (version 0.5.9) [40] with default parameters. We call a read mapped if BWA outputs an alignment for it and unmapped otherwise. Analysis of the alignments revealed that 98% of the reads mapped to the reference genome, representing an average depth of approximately 600×; An analysis using BLAST against known contaminants revealed that the unmapped reads are attributed to minor contamination of the sample [41]. All reads were error corrected using BayesHammer [42] with default parameters.
KmerGenie [19] predicted 41 to be the optimal k-mer value for this dataset. Therefore, for the assemblers that require a single value of k to be specified (SOAP-denovo, ABySS, HyDA) we used k = 41. HyDA and HyDA-Vista were ran with a cut off of five. All other parameters of SOAPdenovo and ABySS were kept at their default. SPAdes and IDBA were run with their default parameters in single-end mode. Since the input reads were corrected prior to assembly, the reported data for SPAdes is from the "only assembly" stage. IDBA was run with and without error correction, yielding the same statistics as expected.
The performance comparison between major assembly tools and HyDA-Vista on the error-corrected standard multicell E.coli dataset (6.2 Gbps, 28 million reads, 100 bp, treated as single-end) using QUAST in default mode [43].
Assembler | NGA50 | NA50 | Largest (bp) | Total (bp) | MA | GF (%) | Unaligned (bp) |
---|---|---|---|---|---|---|---|
SOAPdenovo | 32,032 | 35,343 | 101,201 | 4,304,232 | 3 | 95.2 | 3,421 |
ABySS | 31,237 | 32,987 | 110,012 | 4,530,701 | 0 | 97.56 | 0 |
SPAdes | 60,338 | 60,768 | 173,976 | 4,545,775 | 0 | 97.8 | 3,001 |
IDBA | 57,826 | 58,549 | 173,964 | 4,538,426 | 0 | 97.7 | 2,349 |
HyDA | 36,292 | 39,069 | 123,771 | 4,524,075 | 0 | 97.4 | 0 |
HyDA-Vista | 82,838 | 94,910 | 204,602 | 4,544,286 | 0 | 97.9 | 0 |
Conclusion
We demonstrated that HyDA-Vista achieves superior performance with respect to standard assembly statistics for ecoli genome before repeat resolution and scaffolding. A crucial aspect of our method is the construction of the maximal sequence landscape for the phylogenetically-close genome, which allows for the optimal k-mer value to be computed for each read. The maximal sequence landscape requires that a pair of substrings be an exact match in order for them to be considered to be the same repetition. An area that warrants future investigation is determining if there is an efficient algorithm for computing the maximal sequence landscape for inexact matches, i.e., the maximal sequence landscape with the condition that two substrings x and y are considered to represent the same repetition (mountain) if the Hamming distance or edit distance between the two is at most d, where d is a parameter in the problem. Another open problem is determining whether the maximal sequence landscape could be constructed with only a suffix array. Since all the data structures (including the suffix array) are constructed in O(n)-time and O(n)-space the order notation of the running time of such a maximal sequence landscape construction algorithm would likely not improve the running time of the existing algorithm by more than a small constant factor. However, the removal of the auxiliary data structures may simplify the algorithm and would be of theoretical interest.
Declarations
Declarations
B.S. and C.B. were funded by the Colorado Clinical and Translational Sciences Institute which is funded by the National Institutes of Health (NIH-NCATS,UL1TR001082, TL1TR001081, KL2TR001080). N.S.M.T.and H.Ch. were funded by the National Science Foundation through grant number DBI-1262565 to H.Ch. Publications costs were covered by computer science department of Colorado State University.
This article has been published as part of BMC Genomics Volume 15 Supplement 10, 2014: Proceedings of the 25th International Conference on Genome Informatics (GIW/ISCB-Asia): Genomics. The full contents of the supplement are available online at http://www.biomedcentral.com/bmcgenomics/supplements/15/S10.
Authors’ Affiliations
References
- HyDA-Vista : [https://sites.google.com/site/hydavista]
- Haussler D, et al: Genome 10K: a proposal to obtain whole-genome sequence for 10,000 vertebrate species. 2009, J. Hered, 100 (6): 659-674.Google Scholar
- Ossowski S, et al: Sequencing of natural strains of Arabidopsis Thaliana with short reads. Genome Res. 2008, 18 (12): 2024-2033. 10.1101/gr.080200.108.PubMedPubMed CentralView ArticleGoogle Scholar
- The 1000 Genomes Project Consortium: An integrated map of genetic variation from 1,092 human genomes. Nature. 2012, 491 (7422): 56-65. 10.1038/nature11632.PubMed CentralView ArticleGoogle Scholar
- Turnbaugh PJ, et al: The human microbiome project: exploring the microbial part of ourselves in a changing world. Nature. 2007, 449 (7164): 804-810. 10.1038/nature06244.PubMedPubMed CentralView ArticleGoogle Scholar
- Lin HC, et al: AGORA: assembly guided by optical restriction alignment. BMC Bioinformatics. 2012, 13 (1): 189-10.1186/1471-2105-13-189.PubMedPubMed CentralView ArticleGoogle Scholar
- Nagarajan N, Read TD, Pop M: Scaffolding and validation of bacterial genome assemblies using optical restriction maps. Bioinformatics. 2008, 24 (10): 1229-1235. 10.1093/bioinformatics/btn102.PubMedPubMed CentralView ArticleGoogle Scholar
- Huddleston J, et al: Reconstructing complex regions of genomes using long-read sequencing technology. Genome Res. 2014, 24 (4): 688-696. 10.1101/gr.168450.113.PubMedPubMed CentralView ArticleGoogle Scholar
- Idury RM, Waterman M: A new algorithm for DNA sequence assembly. J Comput Biol. 1995, 2 (2): 291-306. 10.1089/cmb.1995.2.291.PubMedView ArticleGoogle Scholar
- Pevzner PA, Tang H, Waterman MS: An eulerian path approach to DNA fragment assembly. Proc Natl Acad Sci. 2001, 98 (17): 9748-9753. 10.1073/pnas.171285098.PubMedPubMed CentralView ArticleGoogle Scholar
- Bankevich A, et al: SPAdes: a new genome assembly algorithm and its applications to single-cell sequencing. J Comput Biol. 2012, 19 (5): 455-477. 10.1089/cmb.2012.0021.PubMedPubMed CentralView ArticleGoogle Scholar
- Peng Y, Leung HC, Yiu SM, Chin FY: IDBA-a practical iterative de bruijn graph de novo assembler. Res Comput Mol Biol Lecture Notes in Computer Science. 2010, 6044: 426-440. 10.1007/978-3-642-12683-3_28.View ArticleGoogle Scholar
- Chaisson MJ, Pevzner PA: Short read fragment assembly of bacterial genomes. Genome Res. 2008, 18 (2): 324-330. 10.1101/gr.7088808.PubMedPubMed CentralView ArticleGoogle Scholar
- Zerbino R, Birney E: Velvet: algorithms for de novo short read assembly using de bruijn graphs. Genome Res. 2008, 18 (5): 821-829. 10.1101/gr.074492.107.PubMedPubMed CentralView ArticleGoogle Scholar
- Li R, et al: De novo assembly of human genomes with massively parallel short read sequencing. Genome Res. 2010, 20 (2): 265-272. 10.1101/gr.097261.109.PubMedPubMed CentralView ArticleGoogle Scholar
- Simpson JT, et al: ABySS: a parallel assembler for short read sequence data. Genome Res. 2009, 19 (6): 1117-1123. 10.1101/gr.089532.108.PubMedPubMed CentralView ArticleGoogle Scholar
- Butler J, et al: de novo assembly of whole-genome shotgun microreads. Genome Res. 2008, 18 (5): 810-820. 10.1101/gr.7337908. ALLPATHSPubMedPubMed CentralView ArticleGoogle Scholar
- Alkan C, Sajjadian S, Eichler EE: Limitations of next-generation genome sequence assembly. Nat Methods. 2011, 8 (1): 61-65. 10.1038/nmeth.1527.PubMedPubMed CentralView ArticleGoogle Scholar
- Chikhi R, Medvedev P: Informed and automated k-mer size selection for genome assembly. Bioinformatics. 2014, 30 (1): 31-37. 10.1093/bioinformatics/btt310.PubMedView ArticleGoogle Scholar
- Movahedi NS, Forouzmand E, Chitsaz H: De novo co-assembly of bacterial genomes from multiple single cells. In: IEEE Conference on Bioinformatics and Biomedicine. 2012, 561-565.Google Scholar
- Schneeberger K, et al: Reference-guided assembly of four diverse Arabidopsis thaliana genomes. Proc Natl Acad Sci. 2011, 108 (25): 10249-10254. 10.1073/pnas.1107739108.PubMedPubMed CentralView ArticleGoogle Scholar
- Klein JD, et al: LOCAS-a low coverage assembly tool for resequencing projects. PLOS ONE. 2011, 6 (8): 23455-10.1371/journal.pone.0023455.View ArticleGoogle Scholar
- Vezzi F, Cattonaro F, Policriti A: e-RGA: enhanced reference guided assembly of complex genomes. EMBnet journal. 2011, 17 (1): 46-10.14806/ej.17.1.208.View ArticleGoogle Scholar
- Colombus module of Velvet: [http://bioweb2.pasteur.fr/docs/velvet/Columbus_manual.pdf]. Unpublished
- IDBA-Hybrid : Unpublished, [http://i.cs.hku.hk/~alse/hkubrg/projects/idba_hybrid/index.html].
- Gnerre S, Lander ES, Lindblad-Toh K, Jaffe DB: Assisted assembly: how to improve a de novo genome assembly by using related species. Genome Biol. 2009, 10 (8): 88-10.1186/gb-2009-10-8-r88.View ArticleGoogle Scholar
- Pevzner PA, Tang H, Tesler G: De novo repeat classification and fragment assembly. Genome Res. 2004, 14 (9): 1786-1796. 10.1101/gr.2395204.PubMedPubMed CentralView ArticleGoogle Scholar
- Phillippy AM, Schatz MC, Pop M: Genome assembly forensics: finding the elusive mis-assembly. Genome Biol. 2008, 9 (3): 55-10.1186/gb-2008-9-3-r55.View ArticleGoogle Scholar
- Medvedev P, Pham S, Chaisson M, Tesler G, Pevzner PA: Paired de bruijn graphs: a novel approach for incorporating mate pair information into genome assemblers. J Comput Biol. 2011, 18 (11): 1625-1634. 10.1089/cmb.2011.0151.PubMedPubMed CentralView ArticleGoogle Scholar
- Vyahhi N, Pyshkin A, Pham S, Pevzner PA: From de bruijn graphs to rectangle graphs for genome assembly. Algorithms in Bioinformatics Lecture Notes in Computer Science. 2012, 7534: 249-261. 10.1007/978-3-642-33122-0_20.View ArticleGoogle Scholar
- Gusfield D: Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology. 1997, Cambridge University Press, New YorkView ArticleGoogle Scholar
- Clift B, Haussler D, McConnell RM, Schneider TD, Stormo GD: Sequence landscapes. Nucleic Acids Res. 1986, 14: 141-158. 10.1093/nar/14.1.141.PubMedPubMed CentralView ArticleGoogle Scholar
- Blumer A, et al: The smallest automation recognizing the subwords of a text. Theor Comput Sci. 1985, 40 (0): 31-55.View ArticleGoogle Scholar
- Kurtz S, Choudhuri JV, Ohlebusch E, Schleiermacher C, Stoye J, Giegerich R: Reputer: the manifold applications of repeat analysis on a genomic scale. Nucleic Acids Res. 2001, 29 (22): 4633-4642. 10.1093/nar/29.22.4633.PubMedPubMed CentralView ArticleGoogle Scholar
- Fitch WM, Smith T, Breslow JL: Detecting internally repeated sequences and inferring the history of duplication. Method Enzymol. 1985, 128: 773-788.View ArticleGoogle Scholar
- Benson G: A space efficient algorithm for finding the best nonoverlapping alignment score. Theor Comput Sci. 1995, 145 (1): 357-369.View ArticleGoogle Scholar
- Sagot MF: Spelling approximate repeated or common motifs using a suffix tree. LATIN'98: Theoretical Informatics Lecture Notes in Computer Science. 1998, 1380: 374-390. 10.1007/BFb0054337.View ArticleGoogle Scholar
- Manber U, Myers G: Suffix arrays: a new method for on-line string searches. SIAM J Comput. 1993, 22 (5): 935-948. 10.1137/0222058.View ArticleGoogle Scholar
- Kärkkäinen J, Sanders P, Burkhardt S: Linear word suffix array construction. J ACM. 2006, 53 (6): 918-936. 10.1145/1217856.1217858.View ArticleGoogle Scholar
- Li H, Durbin R: Fast and accurate short read alignment with Burrows-Wheeler transform. Bioinformatics. 2009, 25 (14): 1754-1760. 10.1093/bioinformatics/btp324.PubMedPubMed CentralView ArticleGoogle Scholar
- Chitsaz H, et al: Efficient de novo assembly of single-cell bacterial genomes from short-read data sets. Nat Biotechnol. 2011, 29 (10): 915-921. 10.1038/nbt.1966.PubMedPubMed CentralView ArticleGoogle Scholar
- Nikolenko SI, Korobeynikov AI, Alekseyev MA: Bayeshammer: bayesian clustering for error correction in single-cell sequencing. BMC Genomics. 2013, 14 (Suppl 1): 7-10.1186/1471-2164-14-S1-S7.View ArticleGoogle Scholar
- Gurevich A, Saveliev V, Vyahhi N, Tesler G: QUAST: quality assessment tool for genome assemblies. Bioinformatics. 2013, 29 (8): 1072-1075. 10.1093/bioinformatics/btt086.PubMedPubMed CentralView ArticleGoogle Scholar
- Earl D, et al: Assemblathon 1: a competitive assessment of de novo short read assembly methods. Genome Res. 2011, 21 (12): 2224-2241. 10.1101/gr.126599.111.PubMedPubMed CentralView ArticleGoogle Scholar
Copyright
This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. The Creative Commons Public Domain Dedication waiver (http://creativecommons.org/publicdomain/zero/1.0/) applies to the data made available in this article, unless otherwise stated.