# 16S species-level taxonomic assignment--what is the current state of the art?

We currently use DADA2 for picking ASVs and the assignTaxonomy funciton for assingment to genera. Google does bring up various recent articles on species-level assignment with 16S.

Does anyone have an opinion on the current best-practice?

More simply, are there any current candidates for reasonably accurate species-level assignment?

• Ok you have high quality data. Can you explain the assignTaxonomy feature? Analytically how does it achieve an assignment? – Michael Oct 22 '19 at 23:02
• @MichaelG. benjjneb.github.io/dada2/assign.html – abalter Oct 22 '19 at 23:08

My advice is to go for Fiannaca et al. 2018 or similar and steer clear of the DADA2 classification.

My reasoning,

... my criticism of the DADA2 assignments is the reliance on an old machine learning algorithm (naive Bayes). In its favour the taxonomic assignment looks broad. Modern ML will never rely on a single ML method (e.g. lasso regression, SVM, k-means), the only possible exception is "Random Forests"/decision trees, which are popular - but even then. Naïve Bayes (which is not to be confused with 'Bayesian') was popular about a decade ago, which makes sense with the publication cited. The problem is that ML methods give different results.

In its favour it does look well trained, but you would need to understand the distribution used in the training.

Again my advice is to go for a deep learning solution, such as Fiannaca et al. 2018 which is trained on bacterial 16s. What looks good here is the CNN architecture. They also implement Deep Belief, which I've never heard of, but suspect it is a variant of RNN. There description suggests they don't much know about it either. Finally they do implement a naïve Bayes solution for comparison.

CNN is the top performing method, which is no surprise. Alot will depend on their filtering and striding, as well as how they trained it. I don't see their training graphs, nor their computer architecture (which are super important). We trust they have done them well.

Ultimately, classification down to the genus level is 85-90%, which for this stuff must be good (for Bioinformatics), but in reality its low.... in fact for DL 85% is not great and needs further attention (when I finally get my CNN working I might live to regret this statement).

Phylogeny (maximum likelihood) is the only error-free way of doing this. There is a bedrock of historic work here. If you want to get down to the species level then trees are your only way to get there. Obviously you'd have a mixed strategy towards that goal.

Final note, whilst I am critical of DADA2 for classification their variant calling looks very cool, i.e. the robustness of the NGS data. I definitely get the impression the ML is just an add on for them.

• I see the computer architecture... fine. Python 2 scary. Keras for CNN is normal. Tensorflow for deep belief, that is the underlying original code. So it looks perfectly fine. Why only 85% .. I dunno – Michael Oct 23 '19 at 10:08