SINTAX Algorithm

A simple, fast, non-Bayesian taxonomy classifier for 16S rRNA and ITS marker gene sequences

16S rRNA ITS 18S k-mer similarity Bootstrap confidence No training required
Taxonomy Classification

What is SINTAX?

SINTAX (SImple Non-bayesian TAXonomy classifier) predicts the taxonomy of amplicon reads at all ranks β€” domain through genus β€” and attaches a bootstrap confidence value to each rank. It is implemented in the USEARCH sintax command and also in VSEARCH.

Key Design Choices

Unlike the RDP Naive Bayesian Classifier, SINTAX uses k-mer similarity (not Bayesian posteriors) to find the best-matching reference sequences. This means:

  • No training step required
  • Works with large, partially annotated databases (SILVA, Greengenes)
  • Reference sequences don't need a lowest-rank label
  • Comparable accuracy to RDP on V4 16S
  • Lower over-classification on full-length sequences

Supported Markers

🦠
16S rRNA

Bacteria & Archaea. All variable regions (V1–V9). Best results with full-length or V4.

πŸ„
ITS1 / ITS2

Fungi. Use UNITE database. Species-level prediction sometimes possible.

🌿
18S rRNA

Eukaryotes. Use SILVA eukaryotic subset.

Animated: query sequence broken into 8-mers β†’ searched against reference database β†’ top hits vote on taxonomy at each rank.


Core Algorithm

How SINTAX Works

Step 1 β€” k-mer word extraction

The query sequence is decomposed into all overlapping 8-mers. The same is done for all reference sequences in the database at index-build time.

query = ACGTACGT...
8-mers: ACGTACGT, CGTACGTA, ...

Step 2 β€” Top-hit search

The fraction of shared 8-mers is used as a fast similarity metric to identify a shortlist of top-matching reference sequences from the database. This is the same k-mer word-counting approach used in USEARCH's global search.

sim(Q, R) = |kmers(Q) ∩ kmers(R)|
────────────────────────
|kmers(Q) βˆͺ kmers(R)|

Step 3 β€” Taxonomy voting

The top-hitting reference sequences carry taxonomy annotations. SINTAX reads off the taxonomy of the single best-matching reference at each rank (domain β†’ phylum β†’ class β†’ order β†’ family β†’ genus).

Step 4 β€” Bootstrap confidence

This is the key innovation of SINTAX. To assign a confidence value to each taxonomic rank, SINTAX repeats the k-mer search multiple times, each time using a random subset of the query's 8-mers:

Animated: 100 bootstrap replicates. Each replicate samples a subset of k-mers. The bootstrap confidence = fraction of replicates that agree on a given rank's prediction.

1
Sort & index k-mers

Build a k-mer index over all reference sequences at database creation time (makeudb_sintax). No training needed.

2
Full k-mer search β†’ top hit

Find the best-matching reference using all query 8-mers. Extract its taxonomy string as the initial prediction.

3
Bootstrap resampling (Γ—100)

Repeat the search 100 times, each time drawing a random subset (~ΒΌ) of the query's 8-mers. Record the top hit's taxonomy at each rank for every replicate.

4
Compute confidence per rank

confidence(rank) = fraction of bootstrap replicates that agree with the majority prediction at that rank. High-confidence predictions have values near 1.0.

5
Apply cutoff & output

Ranks below -sintax_cutoff (typically 0.8) are dropped from the final prediction. Output written to -tabbedout file.


Bootstrap Confidence

Understanding Confidence Values

The bootstrap confidence is a reproducibility score, not a Bayesian posterior. It answers: "If I only used a subset of my sequence's k-mers, would I still get the same answer?"

confidence(rank r) =
# replicates predicting T_r
─────────────────────────
total replicates (100)

Confidence values are hierarchical: confidence decreases (or stays equal) as you go deeper in the tree. A genus prediction is always ≀ family confidence.

Interpreting the output

d:Bacteria(1.00),
p:Firmicutes(0.99),
c:Bacilli(0.97),
o:Lactobacillales(0.93),
f:Lactobacillaceae(0.88),
g:Lactobacillus(0.76) ← below 0.8 cutoff β†’ dropped

With -sintax_cutoff 0.8, genus is dropped from the final prediction since 0.76 < 0.8.

Animated bar chart: typical confidence decay through taxonomic ranks. The 0.8 threshold line is shown in orange.


SINTAX vs RDP Classifier

SINTAX was explicitly designed as a simpler alternative to the RDP Naive Bayesian Classifier (Wang et al. 2007). Both use bootstrapping for confidence, but differ fundamentally in the underlying method.

Feature SINTAX RDP Classifier
Core methodk-mer similarity (top hit)Naive Bayesian posterior probabilities
Training required?❌ Noβœ… Yes (must retrain per database)
Lowest-rank required in DB?❌ No β€” partial annotation OKβœ… Yes β€” all sequences need genus labels
Large databases (SILVA)?βœ… Works directly⚠️ Requires reformatting & retraining
V4 accuracy (genus)~50%~50%
Full-length over-classificationβœ… Lower⚠️ Higher
SpeedFast (k-mer index)Fast (word counts)
Species prediction⚠️ Rarely reliable⚠️ Rarely reliable
ImplementationUSEARCH, VSEARCHRDP web tool, QIIME2 plugin

⚠️ Species prediction caveat

On short tags like V4, multiple species often share identical sequences. Bootstrapping cannot distinguish them β€” if the top hit is 95% identical, it likely belongs to a different species. Reference databases are also sparse (most microbial species are unnamed), leading to over-confident wrong species calls. Species-level predictions should be treated with extreme caution.


Usage & Parameters

Basic command

usearch -sintax reads.fastq \
  -db 16s.udb \
  -tabbedout reads.sintax \
  -strand both \
  -sintax_cutoff 0.8

Build the database

usearch -makeudb_sintax silva.fa \
  -output silva.udb

Key parameters

ParameterDefaultNotes
-sintax_cutoffnoneRecommended: 0.8
-strandβ€”Required: both or plus
-dbβ€”FASTA or UDB with taxonomy
-threads1Multithreading supported

Recommended databases

🦠 16S (bacteria)

RDP training set v18 (21k seqs) β€” small, high quality, fast. SILVA v138 β€” larger, broader coverage but ~17% annotation errors.

πŸ„ ITS (fungi)

UNITE β€” current recommended database. Available from unite.ut.ee in SINTAX-compatible format.

🌿 18S (eukaryotes)

SILVA eukaryotic 18S subset (140k seqs). Broad coverage across protists, plants, fungi, animals.

⚠️ Database quality

~1 in 5 SILVA/Greengenes annotations are wrong (Edgar 2018). Small, authoritative databases (RDP, LTP) often give better genus accuracy despite lower coverage.

Typical analysis pipeline