A three-locus workflow for Fusarium identification in feed
Mycotoxin profile follows species. Zearalenone and the trichothecenes come from different members of the genus, so a genus-level result gives a feed-safety programme nothing to act on. Species attribution needs three loci and a capillary instrument you have verified yourself.
Locus choice
| Locus | Copy number | Role in the panel |
|---|---|---|
| ITS | Multi-copy | Amplifies from degraded template with universal primers; establishes genus and screens the extraction |
| TEF-1α | Single-copy | Primary species marker: high interspecific and low intraspecific variation, informative introns, dense reference coverage |
| Calmodulin | Single-copy | Resolves species complexes where TEF-1α leaves two or more candidates |
ITS alone fails inside this genus for two reasons. Its resolution is coarser than the distances between the species a feed-safety decision depends on, and the genus has non-orthologous ITS copies, so a clean chromatogram can support a confident wrong call. Run ITS as a screen and treat TEF-1α as the identification.
Three loci is the point where the marginal species resolved per additional reaction stops justifying the reaction. Add a fourth only when a specific complex in your sample set remains ambiguous after the first three.
Bench route
- Extraction. Feed matrix contains PCR inhibitors, so check yield and purity by spectrophotometry and by fluorimetry. The two disagree often enough that running one hides contamination: a good 260/280 ratio with a low fluorimetric concentration indicates free nucleotides or protein, not intact template.
- Amplification. Run the three loci in separate reactions. Multiplexing here costs sensitivity on the single-copy loci, and those are the ones that identify the species.
- Clean-up. Magnetic-bead purification of amplicons. Bead-to-sample ratio sets the lower size cut-off; verify it against your amplicon sizes before processing a batch.
- Cycle sequencing and clean-up. Remove unincorporated dye terminators before injection. Residual terminator produces a dye blob in the first hundred bases and costs the read start, where the TEF-1α intron variation is.
- Capillary electrophoresis. Inject with a size standard in each well.
- Analysis. Base calling, quality trimming, consensus assembly and database search in Python with Biopython.
Verifying the capillary instrument
Commissioning a capillary analyser means establishing metrological control. Getting peaks out of it is not the same thing. Four checks, run before the instrument sees diagnostic samples and repeated after any polymer change:
- Verify sizing against a fragment-length standard across the full read range, and record the deviation. Drift appears as a smooth offset. There is no error message.
- Prepare polymer and buffer to specification and record lot numbers against runs. Aged polymer degrades resolution in the long-fragment region first, which shortens usable read length before it affects base-calling confidence.
- Document a capillary-path clearing procedure and follow it on schedule. Partial blockages raise baseline noise and lower signal on affected capillaries, which looks like poor template quality.
- Run a known control sample at intervals and compare the consensus against its reference. If the control assembles to the wrong species, something upstream has moved, and this is usually the first place you will see it.
Chromatogram processing
Processing in a script makes the run re-analysable when a parameter turns out to be wrong. The vendor viewer does not. The steps that need explicit choices:
- Read the trace files with Biopython and use the per-base quality values stored in the file.
- Trim on a sliding-window quality threshold and record the window and cut-off used. Aggressive trimming removes the intron regions that carry species information; loose trimming lets miscalled bases into the consensus.
- Assemble forward and reverse reads into a consensus and inspect positions where the two disagree by hand. Heterozygous-looking positions in a haploid fungal locus indicate a mixed culture or cross-contamination.
- Search the consensus against GenBank and read the top hits as a set. A single top hit at 99% identity with the next hit at 98.9% does not support a species call; report the complex instead.
Chromatogram processing, as code
Reading the trace, trimming on a recorded window, assembling the consensus and flagging the disagreements a human has to look at:
from Bio import SeqIO
from Bio.Seq import Seq
WINDOW, QUAL_CUTOFF = 10, 20 # recorded with the run, not tuned per sample
def trim(record, window=WINDOW, cutoff=QUAL_CUTOFF):
"""Sliding-window trim from both ends on Phred scores in the AB1 file."""
q = record.letter_annotations["phred_quality"]
start = next((i for i in range(len(q) - window)
if sum(q[i:i + window]) / window >= cutoff), 0)
end = next((i for i in range(len(q) - window, start, -1)
if sum(q[i:i + window]) / window >= cutoff), len(q))
return record[start:end]
def consensus(fwd, rev):
"""Forward against reverse-complemented reverse. Positions where the two
disagree are returned for manual inspection, not resolved automatically."""
rev_rc = rev.reverse_complement()
conflicts = [i for i, (a, b) in enumerate(zip(fwd.seq, rev_rc.seq)) if a != b]
return rev_rc, conflicts
fwd = trim(SeqIO.read("TEF1_F.ab1", "abi"))
rev = trim(SeqIO.read("TEF1_R.ab1", "abi"))
rc, conflicts = consensus(fwd, rev)
if conflicts:
print(f"{len(conflicts)} disagreements: check for a mixed culture")
A haploid fungal locus should not produce heterozygous-looking positions. When conflicts is non-empty, repeat the extraction before repeating the analysis.
Stack
- Loci
- ITS, TEF-1α, calmodulin
- Extraction
- Column and magnetic-bead protocols; spectrophotometric and fluorimetric quantitation
- Amplification
- Endpoint and real-time PCR; LAMP and RPA/MIRA for isothermal detection
- Separation
- Agarose electrophoresis for screening; capillary electrophoresis for fragment sizing and sequencing
- Sequencing
- Cycle sequencing, Sanger chemistry, capillary genetic analyser under documented metrological control
- Analysis
- Python with Biopython for AB1 parsing, trimming and consensus; BLAST against GenBank for attribution
- Primer design
- Primer3, Unipro UGENE, LAMPrimersIQ, NEB Primer Design, with in silico specificity checks
Reporting the result
State the loci used, the consensus length per locus, the top identity value and the runner-up. When the three loci disagree, report the disagreement, not the majority call, because disagreement between TEF-1α and calmodulin points at a mixed sample and repeating the extraction resolves more cases than re-running the analysis.
From identification to detection
Sequencing three loci identifies what is present in a sample you have cultured. Detecting a named species directly in an uncultured sample calls for primers that amplify one species and exclude its neighbours, and designing those by hand does not scale past a few targets. That problem led to the mismatch-clustering pipeline described in a separate note, where Fusarium served as one of two benchmark domains.
The two directions share a dependency. Loci that work as sequencing barcodes are the loci with dense public reference coverage, and dense coverage is what a mismatch-clustering method needs to locate discriminatory positions. A locus with one deposited sequence supports neither.
Related work: molecular biological tools for the identification of zearalenone and the diagnosis of Fusarium in feed by in-silico methods. First place, stage I, national competition for the best research work in animal science, 2025.
References
- Geiser D. M. et al. One fungus, one name: defining the genus Fusarium in a scientifically robust way that preserves longstanding use. doi:10.1094/PHYTO-07-13-0183-IA
- O'Donnell K. et al. DNA sequence-based identification of Fusarium: current status and future directions. doi:10.1007/s11557-015-1103-6
- Schoch C. L. et al. Nuclear ribosomal internal transcribed spacer (ITS) region as a universal DNA barcode marker for Fungi. doi:10.1073/pnas.1117018109
- Torres-Cruz T. J. et al. FUSARIUM-ID v.3.0: an updated, downloadable resource for Fusarium species identification. doi:10.1094/PDIS-09-21-2105-SR
- Cock P. J. A. et al. Biopython: freely available Python tools for computational molecular biology and bioinformatics. doi:10.1093/bioinformatics/btp163