Abstract
Metagenomic profiling is challenging in part because of the highly uneven sampling of the tree of life by genome sequencing projects and the limitations imposed by performing phy-logenetic inference at fixed taxonomic ranks. We present the algorithm MetaPalette which uses long k-mer sizes (k = 30, 50) to fit a k-mer “palette” of a given sample to the k-mer palette of reference organisms. By modeling the k-mer palettes of unknown organisms, the method also gives an indication of the presence, abundance, and evolutionary relatedness of novel organisms present in the sample. The method returns a traditional, fixed-rank taxonomic profile which is shown on independently simulated data to be one of the most accurate to date. Tree figures are also returned that quantify the relatedness of novel organisms to reference sequences and the accuracy of such figures is demonstrated on simulated spike-ins and a metagenomic soil sample.
The software implementing MetaPalette is available at: https://github.com/dkoslicki/MetaPalette
Pre-trained databases are included for Archaea, Bacteria, Eukaryota, and viruses.
1. Introduction
Metagenomics is a developing field used to characterize the organismal composition of microbial communities in environmental or clinical samples [45]. A key step in most metagenomic analyses is to identify the organisms in the sample and their relative frequency. A wide variety of different algorithms have been developed for this purpose.
Most approaches, including the one described here, are based on relating sequenced reads to reference organism genome sequences. Conceptually, the aim of these approaches is to place the organisms in the sample on a “tree of life” that has been defined in advance. In practice, the available reference organisms are extremely unevenly scattered through the true tree of life. Many medically important branches, such as enterobacteria, are relatively well sampled with many strains from the same species, while there are entire phyla of unculturable organisms that are unrepresented [3,25,32,40].
A further difficulty, both in theory and in practice, is that a fully resolved tree of life cannot be established, even from complete reference genomes. At the scale of individual species, homologous recombination scrambles variation so that a tree is not necessarily an appropriate representation of organismal relationships, while more distant phylogenetic relationships can be difficult to estimate due to the various technical challenges of reconstructing ancient evolutionary events [38,39,41,43,51].
Based on these practical considerations, an effective metagenomic method should both identify the closest organism or set of organisms in the reference set and also estimate the genetic difference between the closest reference(s) and the organism present in the sample. The method should work both if the closest neighbor is a distant member of the same phyla or if there are multiple strains within the species in question. Fine scale classification is important because the detailed knowledge we have of, for example, E. coli shows that organisms from the same species can have entirely different ecology and phenotypic effects on their host [22].
Given these difficulties, a number of different approaches are taken to characterize metagenomic samples. A commonly used approach is first to place individual reads onto a tree constructed for a particular set of genes, and then attempt to sum the phylogenetic information across the reads [16,30,36,47]. Phylogenetic analysis of each read can be computationally challenging for large datasets and individual reads can often only be placed inaccurately. It is challenging to appropriately represent this uncertainty in later stages of the analysis. These approaches also break down if a tree is not a good representation of relationships amongst organisms, e.g. within species. Furthermore, while utilizing specific genes (so-called marker genes) can increase computational efficiency, this approach throws away a considerable amount of information from sequences that do not align to the marker genes. As a result of these issues, these methods are typically accurate for genus level or higher classification but not for fine scale classification.
Another approach identifies features that are characteristic of particular organisms, such as the frequency of k-mers [24,37,52]. These features are used either for taxonomic binning of individual reads or in order to compute the overall composition. Depending on the k-mer size utilized, these methods are either suitable only for higher level phylogenetic analysis (for small k-mers), or are highly dependent on the training database utilized (for larger k-mers). In either case, no existent method using this approach can accurately detect and classify organisms highly diverged from ones in the training database, and still struggle with quantifying strain-level variation. Using longer k-mers allows for higher specificity but using k-mers that are unique to specific taxa in the reference dataset (as in [37,52]) ignores a great deal of information about evolutionary relatedness provided by other k-mers. It also makes the approach highly dependent on the specific composition of the reference dataset. We argue that utilizing all k-mers in a reference database and multiple k-mer sizes allows for the modeling of the k-mer signature of organisms absent from a given training database.
In this manuscript, we present an approach based on defining a “palette” for each reference organism. Specifically, we count the number of k-mers found in the sample DNA that are present in each reference organism. Our approach thus uses all k-mers of a particular length in the reference dataset, while discarding the specific information provided by matches of individual k-mers. This is similar in spirit to the so-called pseudoalignment approach of [44] except here we use k-mer counts of the entire sample, not of individual reads whose origins may be ambiguous. We model these palettes using a simple linear mixture model which includes both the reference organisms and “hypothetical organisms” at different degrees of genetic relatedness to the reference organisms. The algorithm is called MetaPalette and the outputs of the algorithm are demonstrated in Figure 1.
We first introduce the concept of a common k-mer matrix and demonstrate how utilizing multiple k-mer sizes allows for accurate quantification of evolutionary relatedness. We then develop a mixture modeling procedure that utilizes this information to taxonomically profile a metagenomic sample and indicate the evolutionary relatedness of novel organisms. Evidence on simulated and real data is given that this approach can accurately capture strain-level variation, and we then benchmark this approach against other, commonly utilized metagenomic profiling techniques.
2. Methods
2.1. Common k-mer Training Matrix
To quantify the similarity of two genomes, we count (with multiplicity) the fraction of each genome’s k-mers that are in common with the other. Rigorous mathematical definitions of this and other quantities are contained in the Appendix section A. This quantity, denoted pckmk(·, ·) for percent common k-mers, is similar to the well-known Jaccard index [21] except that, among other differences, pckmk(·, ·) is not symmetric but does incorporate the counts of k-mers, not just their occurrence.
When given a set of genomes (i.e. a training database), a pair-wise similarity matrix can be formed: for gi and gj training genomes. The column vector pckmk(·,gj) can be thought of as a palette, representing the particular k-mer profile of gi in relation to other genomes. We call each of these matrices a common k-mer matrix. These matrices reflects the relatedness of the training genomes based on k-mer similarity. For larger k-mer sizes, one can clearly extract taxonomic information from these matrices: see Figure 2.
Beyond genera-level variation, strain-level variation can be captured through these common k-mer matrices. For example, using all the strains of the species Burkholderia multivorans accessible via NCBI, we formed a neighbor joining tree using the average of the 30-mer and 50-mer common k-mer matrices. This tree, shown in figure 3, demonstrates how the common k-mer matrices can capture variations amongst these strains.
The entries of A(k) can be calculated in a computationally efficient manner. We take the approach of forming bloom count filters (using Jellyfish [31]) for each of the training genomes, and then counting the common k-mers using a simple C++ program based on heap data structures.
2.2. Modeling Related Organisms
To model the k-mer counts for organisms related at varying degrees from the training database, we take advantage of the differing behavior of pckmk(·, ·) as a function of k for closely related organisms and distantly related organisms. In particular, the percent of common k-mers pckmk(·, ·) decays much slower as a function of k for closely related organisms than for distantly related ones. This is consistent with the intuition that, for example, two organisms from different phyla will have a similar percent of shared 1-mers, but very few common 50-mers. Conversely, two closely related strains will have both a high percentage of shared 1-mers and a high percentage of shared 50-mers. This is demonstrated in Figure 4(a). This property means that using more than one k-mer length should in principle allow us to distinguish between having an organism that is identical to a training organism at a low frequency and having an organism that is distantly related to all training organisms but present in the sample at a higher frequency.
We focus on two particular k-mer sizes: k = 30 and k = 50 due to the predictability of pckmk for these k-mer sizes. Indeed, using 6,914 whole bacterial genomes downloaded from a variety of publicly accessible repositories (via RepoPhlAn: https://bitbucket.org/nsegata/repophlan), we observed that the percent of shared 30-mers can be predicted from the percent of shared 50-mers. See part (b) of Figure 4. A degree 3 polynomial was used (as it resulted in the lowest RMSE and R2 values, which did not improve for higher degree polynomials). Namely, we observed that for the polynomial p(x) = -.5141x.3 + 1.0932x.2 + 0.3824x, pckm50(gi,gj) ≈ p (pckm30(gi, gj)).
For k-mer lengths substantially shorter than 30, the behavior of pckmk is more variable, for example because of convergence of sequence composition between distantly related organisms. On the other hand, k-mers much larger than 50 are increasingly time consuming to compute and are likely to be more sensitive to sequencing error and other technical artifacts.
We can augment the matrices A(k) with columns that represent hypothetical organisms which are related by different degrees to the reference organism. For a given organism with genome gi, if we wish to include a hypothetical organism h that is 90% similar to genome gi in its 30-mers, we can round down each entry of the column vector pckm30(·, gi) to be no more than 0.90. Call this vector pckm30(·, h). The entries below 90% do not need to be changed since we assume that the hypothetical organism has the same patterns of k-mer sharing to more distantly related “outgroup” taxa as to the reference organism.
We model the 50-mer similarity by setting pckm50(·,h) = p (pckm30(·, gi)) for p the previously defined polynomial. Adding these vectors to A(30) and A(50) effectively adds a hypothetical organism that has a common k-mer signature 90% similar to genome gi. We then repeat this procedure for all training genomes gi and for similarities ranging from 90%, 80%,⋯,10% and append these columns to A(30) and A(50).
2.3. Sample k-mer Signature
Given a metagenomic sample, we form two vectors y(30) and y(50) consisting of the total counts in the sample of the 30-mers and 50-mers shared with the training organisms. In the Appendix section A.1, we show that these vectors are linearly related to the organism abundances via the common k-mer matrices A(30) and A(50).
Note that in forming y(k), we count the k-mers in the entire sample, not of the individual reads. This allows for a very computationally efficient approach: as the training genomes typically have low error, their k-mers can be efficiently stored in de Bruijn graphs (formed using Bcalm [7]). We can then query the bloom count filter formed from the sample in a highly parallel fashion.
2.4. Sparsity Promoting Optimization Procedure
After forming y(k), we note that some of the entries may be non-zero not due to the presence of organism i in the sample, but due to the fact that there exists an organism j that shares portions of its genome with organism i. Since represents the “overlap” of these two organisms, we can deconvolute this linear mixture relationship by solving the equation A(k)x = y(k) for x the vector of organism abundances. However, after having augmented A(k) with the hypothetical organisms, this system of equations is underdetermined (10 times more columns than rows). We can employ a sparsity promoting optimization procedure to infer the most parsimonious x consistent with the equations A(k)x = y(k) for k = 30, 50. This procedure, first introduced in [23] and proven correct in [12], is detailed in the Appendix section A.4.
2.5. Inferring Taxonomy
The abundances of the hypothetical organisms is then mapped back onto the taxonomy (for the output taxonomic profile) or the neighbor joining tree formed from the A(k) (for the output strain variation figures) utilizing a least common ancestor approach detailed in the Appendix section A.5.
3. Quantification of Strain-level Variation
We demonstrate in two ways that the inclusion of the hypothetical organisms allows for the inference of strain-level variation. First, we spike novel organisms into a mock metagenomic community and show that MetaPalette can accurately predict their presence. Second, we utilize a real metagenomic soil sample to give evidence for a novel strain that MetaPalette predicts.
3.1. HMP Mock Community
We first formed the common k-mer matrices A(k) using 31 strains of Lysinibacillus sphaericus. We then used Grinder [2] to simulate a dataset consisting of two novel strains (not included in the training database). These reads where then spiked into the HMP mock even community (a ~6.6M read metagenome consisting of 22 select organisms sampled using an Illumina GA-II sequencer; NCBI accession SRR172902). The output of MetaPalette is shown in Figure 5 demonstrating the ability of the method to correctly infer the presence of organisms absent from the training data.
Decreasing the number or changing the identity of the training organisms does not impede the method. In Figure 6, 50K simulated reads from the species Providencia alcalifaciens were again spiked into the HMP mock even community, and the inferred abundance is again placed optimally on the neighbor joining tree. Appendix section C contains a variety of such figures spanning all domains of life. These results provide evidence that MetaPalette can correctly infer the presence of organisms related to, but absent from, the training database.
3.2. Metagenomic Soil Sample
To assess MetaPalette on a real metagenomic sample, we utilized the Iowa prairie metagenomic sample from [18] (corresponding to MG-RAST project ID 6377). After running MetaPalette on a subset of this data (metagenome 4539594.3), the returned taxo-nomic profile predicted the presence of the genus Bradyrhizobium. Generating the tree plot on a subset of this genus resulted in, among others, a prediction of a novel organism in the clade defined by strains of B. valentinum (see Figure 7(a)). To verify this, we aligned the entire soil metagenome to the reference genome of the strain B. valentinum LmjM3 using Bowtie2 with –very-sensitive-local settings [26] and extracted the aligned reads. Interestingly, 0.29% of the reads aligned, while the MetaPalette predicted abundance for this putative novel organism of interest was 0.33%. The depth of coverage of the extracted reads is pictured in Figure 7(b) and had a mean depth of 74.3X.
To assess the evolutionary relatedness of this predicted organism, we utilized the B. valentinum LmjM3 nifH gene sequence (NCBI accession KF806461) which was used in [10], along with other genes, to determine the taxonomy of B. valentinum LmjM3. Aligning the extracted reads to nifH resulted in a mean depth of coverage of 22X. We collapsed the aligned reads (via a majority vote) in regions of coverage at least 22X and called this the maximum likelihood sequence. We then performed a multiple sequence alignment of this sequence along with the nifH sequences of 20 other organisms closely related to B. valentinum. The topology of the bootstrap consensus neighbor-joining tree is pictured in Figure 7(c) and shows the maximum likelihood sequence is placed at the same location as was predicted by MetaPalette. While this is not enough evidence to unequivocally claim the existence of a novel strain in this sample, this gives support that MetaPalette correctly inferred the abundance and placement in Figure 7(a) of a potentially novel strain in the clade defined by strains of B. valentinum.
4. Comparison to Other Metagenomic Profiling Methods
To facilitate an objective comparison with other methods with minimal “author bias”, we utilized the same data and metrics used by other authors in a recent metagenomics methods evaluation paper [29]. This allowed comparison to the following algorithms: CLARK [37], Kraken [52], OneCodex [35], LMAT [1], MG-RAST [34], MetaPhlAn [50], mOTU [47], Genometa [8], QIIME [5], EBI [19], MetaPhyler [30], MEGAN [20], taxator-tk [9], and GOTTCHA [13].
4.1. Training Data
Each of the methods was trained using their default recommended databases. We trained our method using 6,914 whole genome sequences and assemblies obtained from various public repositories via RepoPhlAn (https://bitbucket.org/nsegata/repophlan). The training procedure for MetaPalette on these 6,914 organisms took a total of approximately 7 hours on a 48 core server.
4.2. Testing Data
The testing data consisted of 6 samples, and is fully explained in the Methods section of [29], but we briefly summarize it here. Three replicates were formed from two different distributions of over 900 different genomes spanning the tree of life (including Eukaryote genomes). Included in each test sample were shuffled/randomized genomes (not meant to be assigned to any known taxa) as well as sequences from the genome of Leptospira interrogans that were evolved using Rose [46] to simulate novelty. Error profiles were based on those of 6 real soil metagenomic samples sequenced using an Illumina HiSeq 2000. Each of the resulting test samples contains between 27 and 37 million read pairs.
4.3. Error Metrics
We utilized the same divergence error metric as [29], that is, for xi representing the true frequency of taxa i in the sample, and representing the predicted frequency for a given method of taxa i, where the summation is over those indices such that xi > 0 and . Since this error metric does not take into consideration the number of spurious assignments (that is, taxa predicted by a method to be in a sample, but not actually present), we also use the number of false positives at a given taxonomic rank:
4.4. Comparison Results
Each method was run using the default parameters. For each method, we averaged the divergence error metric over all the test samples at the genus level (see Figure 8(a)). Furthermore, we selected a number of the more accurate methods and averaged the number of false positives over all the test samples at the phylum level (see Figure 8(b)). These two figures clearly show the competitive nature of MetaPalette as it has the lowest error in both metrics. However, when comparing to other methods, one should be careful of their intended use. For example, taxator-tk is intended to be used on an assembled metagenome (and here unassembled reads were used), and QIIME only uses the 16S rRNA sequences in a sample. Furthermore, most of these methods assign individual reads and then summarize this to obtain a taxonomic profile, while our method only profiles the entire sample and returns relative proportions of organisms.
Figure 9 shows the timing of each of the methods (on a log scale, obtained from [29]) further showing the competitive nature of MetaPalette.
5. Software and Pre-trained Data
5.1. Software
The source code for MetaPalette, along with installation instructions and directions, is accessible at https://github.com/dkoslicki/MetaPalette. MetaPalette is written primarily in python and accepts input reads in uncompressed fasta or fastq format, as well as compressed fasta/fastq using bzip2 and gzip. For fastq input, optional parameters can be given to specify only counting k-mers above a certain quality score (Phred) thereby attenuating the negative impact of sequencing error in the correct inference of relative abundances. The output taxonomic profile is compliant with the Bioboxes profiling format version 0.9 found at https://github.com/bioboxes/rfc/tree/master/data-format. Python scripts are also included to aid in downloading data, forming custom databases, and creating the appropriate taxonomy files.
To facilitate cross-platform usability, a Docker [33] container has been created and is accessible at: https://hub.docker.com/r/dkoslicki/MetaPalette with an accompanying docker file at: https://github.com/dkoslicki/MetaPalette/blob/master/Docker/Dockerfile.
If users wish to use MetaPalette but lack computational resources, they may utilize the Galaxy [4,14,15] server located at: http://math-galaxy.cgrb.oregonstate.edu/.
A preliminary version of this software was submitted to the Critical Assessment of Metagenomic Interpretation (CAMI: http://www.cami-challenge.org/) under the name of CommonKmers. However, since significant changes have been made since that point, we strongly recommend using the current MetaPalette software instead.
5.2. Pre-trained Data
To decrease computational burden, pre-trained databases are accessible at http://files.cgrb.oregonstate.edu/Koslicki_Lab/MetaPalette. Databases and accompanying taxonomies have been included for archaea (666 organisms, 1.7 gigabytes uncompressed), bacteria (15,147 organisms, 60GB), eukaryota (1,307 organisms, 41GB), and viruses (4,798 organisms, 0.6GB). All organisms were obtained via RepoPhlAn.
The 6,914 organism database used for the comparison to other profiling methods is accessible at http://files.cgrb.oregonstate.edu/Koslicki_Lab/MetaPallete/Comparison.
6. Conclusion
We have described a fast, flexible and accurate method for estimating the taxonomic composition of organisms which is based on reconstructing a k-mer-based profile of a sample. Each reference organism has a k-mer “palette” and we fit the sample as a mixture of different palettes, both of the reference organisms and organisms absent from the training data at varying degrees of relatedness to the training database. Our approach is in part inspired by chromosome painting method used to deduce fine-scale population structure in human genetics [17,28] which is also based on mixture modeling of palettes. A particular advantage of MetaPalette over other metagenomic profiling methods is that MetaPalette provides an indication of how related the organisms in a given sample are to the closest matching organisms of the training database, whether they are within the same species or distantly related organisms from the same phyla.
Furthermore, the standard approach to summarizing composition information has been to place organisms at different taxonomic levels. We produce a standard taxonomic profile which we have shown to be more accurate than that produced by other methods. This fixed rank approach is sensible at the genus level and above but omits fine-scale information. Hence, for branches of the tree of life that are well represented in the training database, we can also output a phylogenetic tree giving detailed information on how the sampled taxa relate to the organisms in the training database (Figures 5-7 and Appendix section C).
For many applications, it is of interest to understand which individual reads belong to which organisms [45]. A principled approach to this problem is to first estimate the overall composition of the sample, using MetaPalette or an equivalent, and then to assign individual reads conditional on the overall assignment. This represents a promising avenue for future methodological development.
ACKNOWLEDGEMENTS
The authors would like to thank the Isaac Newton Institute at Cambridge University for their hospitality during the program on metagnomics. This project was conceived while both authors were attending this program. Daniel Falush is supported by a Medical Research Fellow fellowship as part of the CLIMB Consortium for Medical Microbiology.
The authors would also like to thank Nam Nguyen and Daniel Alemany who both contributed to this project in its preliminary stages.
APPENDIX A. TECHNICAL DETAILS OF THE COMMONK-MER METHOD
A.1 Mathematical Formulation
We include here all rigorous mathematical definitions of the quantities discussed in the main text.
Given the alphabet 𝒜 = {A,C,T,G}, let 𝒜n denote the set of all words v of length |v| = n on 𝒜, and let 𝒜* = ⋃n≥0 𝒜n be the set of all finite words on 𝒜. Hence words containing non-ACTG characters are ignored. Let D = {g1,…, gM} be a database of genomic sequences gj ∈ 𝒜* and let S = {s1,…, sN} be a set of sample sequences (the reads to be classified). For notational simplicity, assume that the read length is fixed: for all t, |st| = r. Fix a k-mer size and endow 𝒜k = {v1,…, v4k} with the lexicographic order. Let occv(w) represent the number of occurrences (with overlap) of the subword v in the word w. That is, for w,v ∈ 𝒜n, let
For a fixed k-mer size, and two genomes gi and gj we calculate the number of k-mers in genome j common to both gi and gj. That is, the (i, j)th entry of the common k-mer training matrix A(k) is:
Refer to the entries of the common k-mer matrix as pckmk(gi,gj) = . Let si ⊂ gj denote the relationship that read sk was derived from genome gj. We represent the taxonomic profile of the sample S by the probability vector x: where is the indicator function. Now let the measurement vector y be given by the probability vector
We assume that the reads st are uniformly randomly selected from the genomes gj. Then for w ∈ Ak, let ℙ(w|gj) be the probability that k-mer w is found in genome gj. Then we have that the proportion of k-mers w in the sample is similar to the proportion of the appearance of w in the genomes gj when weighted by the relative abundance of the genomes gi in the sample:
We then calculate
Line (A.10) is justified since if w ∉ SWgj(k) then occgi(w) = 0. For computational reasons, we make the assumption in line (A. 11) that SWgi(k) ⋂ SWgj(k) ⋂ SWS(k) = SWgi(k) ⋂ SWgj(k). However, this assumption can be mitigated by adding hypothetical organisms (see section A.3). Our assumptions imply that
We will try to recover the vector x satisfying xj ≥ 0 for all j = 1,…,M from equation (A.13).
A.2 Further Improvements
A few further improvements are possible, but not pursued here. Namely, we could use just the k-mers that are actually in the sample to form the training matrix. I.e use SWgi(k) ⋂ SWgj(k) ⋂ SWS(k) in the formation of A(k):
The disadvantage of this is that the (slow) training step would need to be re-run for each sample.
For a second improvement, we could make the approximation in (A.5) more delicate by incorporating the coverage:
So A(k) would have the form:
This effectively multiplies the columns j of A(k) by the % coverage of genome j. Lastly, in (A.16), we could put a weighting factor that represents how unique a k-mer is to the genome in question. This would down-weight k-mers shared among many diverse genomes and up-weight those unique to certain strains/species/genera/etc.
A.3 Hypothetical Organisms
To simulate an organism that is, say, 90% related to a database genome gi, we augment the common k-mer matrix A(k) with a column derived by rounding down the entries of the column vector that are above 90%. Two k-mer sizes are needed to form the hypothetical organism common k-mer matrices. For the first k-mer size, k1, we define A(k1),h for a fixed number of hypothetical bins h ∈ {0.9,0.8,…, 0.1} where
For the second k-mer size, k2, using the polynomial p(x) = − .5141x.3 + 1.0932x.2 + 0.3824x, we define
Instead of thresholding, as we did here, one can imagine other scalings obtained from studying the relationship between a given taxonomy and the common k-mer matrix A(k) In particular, to deal with differing rates of evolution in the tree of life, a fruitful area of future investigation would be to modify the polynomial p depending on the taxonomy of the organisms under consideration.
A.4 Optimization Procedure
We choose two k-mer sizes to be k = 30 and k = 50, as this seems to give a good trade-off between reconstruction fidelity and computational performance. We then collect the common k-mer matrix and hypothetical matrices block-wise into the 2|D| × 10|D| size matrix
Collect also the k-mer sample vectors y(k):
The problem at hand is then to reconstruct the phylogenetic profile x by solving the linear system
Equation (A.21) is solved by using a sparsity-promoting optimization procedure motivated by techniques used in the compressive sensing literature. Sparsity is emphasized due to the inclusion of the hypothetical organisms, as well as the reasonable assumption that relatively few organisms from the database D are actually present in the given sample. We use a variant of nonnegative basis pursuit denoising which reduces to a nonnegative least squares problem [6,12]. We aim to solve
This optimization procedure has the advantage of being transformed into a nonnegative least squares problem. Indeed as λ → ∞, we can regularize (l1-min) as
This reduces to a nonnegative least squares problem by defining
So (NNREG) is equivalent to the nonnegative least squares problem
This can be solved efficiently by using the Lawson-Hanson algorithm [27]. We use the value λ = 200 throughout as this value gives a good trade-off between sparsity and accuracy of fit of the k-mer counts.
A.5 Inferring Taxonomy
Since the reconstructed vector x may have non-zero entries corresponding to a hypothetical bin, we need to develop a method to map from a hypothetical bin to a specific taxonomic rank. A naïve approach would be to assign a fixed taxonomic rank to each hypothetical bin (call this the fixed rank method). For example, all non-zero entries of x corresponding to A(k) would be assigned to the strain level, all non-zero entries of x corresponding to A(k),0.9 would be assigned to the species level, etc.
We take a more biologically informed approach: we take the least common ancestor (LCA) taxa between a hypothetical organism and a nearby organism in the database D: if xi > 0 corresponds to the hypothetical bin h, find an organism gj such that < δ for some threshold δ. In the output taxonomic profile, we assign xi to the lowest taxonomic rank common to organisms gi and gj. For the output strain variation figures, we assign the abundance xi relative to the least common ancestor of gi and gj (above the LCA if and below the LCA if ).
For the output taxonomic profile, a hybrid of the fixed rank and LCA approaches can increase sensitivity or specificity. We thus include three options: the default option is the LCA approach, while the sensitive and specific options are varying hybrids of the two methods.
Appendix B. Sequence Analysis Details
In Figure 7(c), the evolutionary history was inferred using the Neighbor-Joining method [42]. The bootstrap consensus tree inferred from 500 replicates is taken to represent the evolutionary history of the taxa analyzed [11]. Branches corresponding to partitions reproduced in less than 50% bootstrap replicates are collapsed. The percentage of replicate trees in which the associated taxa clustered together in the bootstrap test (500 replicates) are shown next to the branches. The analysis involved 21 nucleotide sequences. All positions with less than 95% site coverage were eliminated. That is, fewer than 5% alignment gaps, missing data, and ambiguous bases were allowed at any position. There were a total of 652 positions in the final dataset. Evolutionary analyses were conducted in MEGA6 [49].
Figure 10 depicts a tree using the same method as just described, but with evolutionary distances computed using the Maximum Composite Likelihood method [48]. Units are the number of base substitutions per site.
APPENDIX C. Additional Figures
We provide here a number of additional output figures from MetaPalette to demonstrate that the ability to correctly infer the presence of organisms related to, but absent from, the training database is not dependent on the particular kingdom/phyla/etc. used. Unless otherwise noted, a total of 50K simulated reads from the novel organisms were spiked into the HMP mock even community. Figures are included for Bacteria, Archaea, Eukaryota, and viruses.
References
- [1].↵
- [2].↵
- [3].↵
- [4].↵
- [5].↵
- [6].↵
- [7].↵
- [8].↵
- [9].↵
- [10].↵
- [11].↵
- [12].↵
- [13].↵
- [14].↵
- [15].↵
- [16].↵
- [17].↵
- [18].↵
- [19].↵
- [20].↵
- [21].↵
- [22].↵
- [23].↵
- [24].↵
- [25].↵
- [26].↵
- [27].↵
- [28].↵
- [29].↵
- [30].↵
- [31].↵
- [32].↵
- [33].↵
- [34].↵
- [35].↵
- [36].↵
- [37].↵
- [38].↵
- [39].↵
- [40].↵
- [41].↵
- [42].↵
- [43].↵
- [44].↵
- [45].↵
- [46].↵
- [47].↵
- [48].↵
- [49].↵
- [50].↵
- [51].↵
- [52].↵