Nineteen known fungi, and what decides which ones a run can see
Yassine El Hallaoui · Founder, CEO & CTO · AlkhemYst-Ai · 2026-10-01
Nineteen known fungi, and what decides which ones a run can see
A fungal mock community built for others to use, rebuilt on AlkhemYst from its public reads.
---
The control
Fungal communities are read from one stretch of DNA, the ITS region, and the reading is rarely checked against a known answer. Bacteria have commercial mock communities; fungi, for a long time, mostly did not.
In 2018 Matthew Bakker, at the US Department of Agriculture's research centre in Peoria, Illinois, built one and published it as a control for anyone to use [1]. Nineteen fungi, from yeasts and moulds to a smut, a chytrid and a symbiont that lives inside plant roots, mixed into three communities: one even, two staggered. He then sequenced them under six sets of PCR conditions, in triplicate, and deposited every read.
The conditions came in two libraries. In the first, the ITS1 stretch was read with one pair of primers under a standard protocol, with more PCR cycles, and with a longer extension time. In the second, ITS1 and ITS2 were read together, two amplicons in the same reads, with three different polymerase mixes.
His findings: more PCR cycles raised chimera formation and errors; extension time had little impact; bias against particular fungi differed between ITS1 and ITS2; and the inaccuracies were associated with amplification bias and size selection.
What we did
Three canvases of nine steps, one per readout: ITS1 in the first library, and ITS1 and ITS2 in the second, each keeping only the reads that carry its own primers (74 and 26 percent of that library's reads). Read quality, primer trimming, filtering, denoising into exact sequence variants with DADA2 [2], taxonomy against UNITE [3], the mock community check against the nineteen fungi's sequences from the paper, composition, and alpha and beta diversity. Each canvas became 963 lines of R, run on our servers in the EU with the network switched off.

No readout sees all nineteen
The mock community check asks, for every sample, which of the nineteen fungi appear as an exact match to their sequence.
| Readout | Fungi found exactly | Missing |
|---|---|---|
| ITS1, first library | 15 of 19 | Chytriomyces, Fusarium verticillioides, Rhizophagus, Saccharomyces |
| ITS1, second library | 15 of 19 | F. verticillioides, Neosartorya, Rhizophagus, Trichoderma |
| ITS2, second library | 16 of 19 | Chytriomyces, Rhizomucor, Ustilago |
The two readouts of the second library come from the same reads, and each finds what the other misses. Together they find all nineteen.

Why each one goes missing
Most of these losses have a cause that can be named, and there are only two kinds.
The read is too short. A pair of reads can be joined only if together they span the stretch between the primers. The second library's reads are 251 bases each, which bridges about 450 bases. Chytriomyces's ITS2 is 514 bases between the primers and Ustilago's 501; neither genus appears anywhere in the ITS2 data. Rhizomucor, whose ITS2 reference sequences are about 490 bases, is absent too. At ITS1, in the same library, all three are present.
The first library's reads are 201 bases, which bridges about 355, and Saccharomyces's ITS1 is 367 bases between its primers: missing there, present in both readouts of the second library.
The primer does not quite fit. Chytriomyces differs from the first library's ITS1 primers at three positions, two in one primer and one in the other. Neosartorya differs from the second library's ITS1 forward primer at two. Both are found by the other readouts. Trichoderma, missing from the same readout as Neosartorya, differs from that primer at one position; that may be enough, but the reads cannot say.
That is what the paper calls size selection and amplification bias, named fungus by fungus. It also shows the bias between loci from the other side: Saccharomyces is 0.4 percent of the second library's ITS1 reads and 10.1 percent of its ITS2 reads, from the same tubes.
Two of the "missing" deserve a closer look, because they are not quite gone. Rhizophagus, the root symbiont, is present at ITS1 in both libraries and classified as Rhizophagus by UNITE, but three bases away from every one of its four reference sequences: a fungus known for carrying many slightly different copies of this region. At ITS2 it matches exactly. And the largest ITS1 sequence that matches no reference exactly, 18 percent of the first library's mock reads and 26 percent of the second's, is one base from Fusarium oxysporum's reference and two from F. verticillioides's; in the first library UNITE matches it exactly to F. proliferatum, a close relative of F. verticillioides. At ITS2, F. verticillioides matches exactly. ITS1 does not separate these Fusarium species, and the mock shows how much rides on that: a fifth to a quarter of the reads.
What the PCR conditions did
More PCR cycles raised chimeras, as the paper found: a median of 1.60 percent of the reads in the first library's high-cycle samples, against 0.00 in the standard ones. A longer extension time barely moved them, 0.17 percent, as the paper also found.
Among the polymerase mixes, Phusion produced the most chimeras, 0.61 percent at ITS1 and 4.46 percent at ITS2; GoTaq and the PreAmp mix almost none. The PreAmp mix, which the paper found closest to the true community, recovered the most fungi at ITS1, a median of 13 of 19 against 12 for Phusion and 11 for GoTaq; at ITS2 it was no better than the others.
After denoising, the share of reads that matched no expected sequence differed between conditions by at most about one percentage point. The paper found that preclustering nearly identical reads cut the error rate substantially; DADA2's denoising does that job too, so the errors that separate the conditions in raw reads are mostly gone by the time a table is made. The choices that still decide the answer are the ones above: the primers and the length of the read.
Names that have changed
Three of the nineteen have new names since 2018. UNITE classifies Candida apicola as Starmerella, Mortierella verticillata as Podila and Neosartorya fischeri as Aspergillus. A check by name would call them missing; a check by sequence does not. The mock community check here works by sequence.
The part that was actually hard
The taxonomy step failed first. The classifier our 16S runs use keeps a profile for every name at the reference's lowest rank, and UNITE has 32,940 species: about 8 gigabytes. The step now classifies fungi to genus, which needs under 3, and adds species where a sequence matches one exactly.
The second library carries two amplicons in the same reads. The primer trimming step treated a library where fewer than a fifth of the reads carried the primers as already trimmed and passed every read on, which would have sent the ITS1 reads into the ITS2 analysis at 26 percent and been one bad sample away from doing it. It now does that only below one in twenty.
None of these is interesting on its own. They are here because an account in which everything worked the first time would be a worse guide to what bringing a new kind of data to a platform actually costs.
Why this story
A mock community is usually a private control: run beside a study, checked, and not reported. Bakker built one to be used by others, ran it through the choices a fungal study actually makes, and published every read. That is why, eight years on, someone else can say not just that a run misses some fungi but which ones, and why.
If you sequence fungi, two checks cost nothing: whether your read length can bridge the longest ITS2 you expect, and whether reading both ITS1 and ITS2 from the same library would show you what one of them hides.
---
Evidence
Paper. Bakker MG (2018). A fungal mock community control for amplicon sequencing experiments. Molecular Ecology Resources 18(3):541-556. doi 10.1111/1755-0998.12760.
Data. BioProject PRJNA377530, 61 runs from the European Nucleotide Archive, every file checked against its published checksum. The first library (ITS1, BITS and B58S3 primers, 2 x 201 bases): 27 mock samples, the three communities under three PCR protocols in triplicate, and four negative controls. The second library (ITS1 with ITS1F and ITS2, ITS2 with ITS3-KYO2 and ITS4-KYO3, 2 x 251 bases): 27 mock samples under three polymerase mixes, and three negative controls. Sample descriptions and the nineteen fungi's ITS1 and ITS2 sequences (the paper's Appendix S2) as the THAPBI PICT project distributes them (github.com/peterjc/thapbi-pict, examples/fungal_mock).
Pipelines and runs. pipe_ta8jwWqe7zm2, ITS1 of the first library, run run_lOealNJdib2l. pipe_fS0LO764mnDm, ITS1 of the second library, run run_OKm1t3EPQ3L8. pipe_26x9J9m8Qi6R, ITS2 of the second library, run run_mbLPRJvLbE5w. Nine library components each, 963 lines of R; each a deployed run of a tested program, with the version of every library it ran on recorded.
Measured. First library: 1,067,857 read pairs, 95.3 percent with the primers, 38 sequence variants, 85.9 percent of reads in the final table. Second library: 1,397,742 read pairs; ITS1 73.7 percent of them, 28 variants, 89.5 percent in the final table; ITS2 26.2 percent, 37 variants, 88.4 percent. The three communities separate in every readout (Bray-Curtis PERMANOVA R2 0.90 to 0.97, p = 0.001). Insert lengths and primer mismatches are read from the paper's reference sequences.
Credit. The mock community, the study and the data are Matthew Bakker's, at the USDA Agricultural Research Service in Peoria, Illinois. This article describes a second analysis of his data and claims nothing further.
References
[1] Bakker MG. A fungal mock community control for amplicon sequencing experiments. Molecular Ecology Resources 2018;18(3):541-556. doi:10.1111/1755-0998.12760
[2] Callahan BJ, McMurdie PJ, Rosen MJ, Han AW, Johnson AJA, Holmes SP. DADA2: High-resolution sample inference from Illumina amplicon data. Nature Methods 2016;13(7):581-583. doi:10.1038/nmeth.3869
[3] UNITE general FASTA release for Fungi, version 10.0, 2025. doi:10.15156/BIO/3301229
