Species-level identification of aquaculture pathogens from nanopore reads on edge hardware.
A benchmark of 24 major bacterial fish pathogens (plus 47 background organisms) and an 8-virus panel, built from 202 NCBI genomes, with held-out-strain protocols and an ONT-style error model. Compares exact k-mer matching (Kraken2), alignment (BLASTN, minimap2), and a lightweight neural classifier (AquaPathNet, 1.36M params) on CPU-only hardware.
pip install -r requirements.txtSet the data root:
export AQUAPATHID_DATA="/path/to/AquaPathID_data"
export AQUAPATHID_TOOLS="/path/to/tools" # BLAST+ install dirData directory layout:
AquaPathID_data/
├── refs/ # Reference genomes (.fna.gz, from NCBI)
├── reads/ # Simulated reads (generated by simulate_reads.py)
├── fasta/ # Combined reference FASTA
├── models/ # Trained model checkpoints
├── kraken2_db/ # Kraken2 database
└── ont_real/ # Real ONT FASTQ files (from ENA)
python simulate_reads.py # 1. Simulate ONT-style reads
python train.py # 2. Train AquaPathNet
python evaluate.py # 3. Evaluate T1-T6
python baselines_exact.py # 4. BLASTN + LCA + 5-mer baselines
python baselines_minimap2.py # 5. minimap2 baseline
python kraken2_setup.py # 6. Build Kraken2 database
python kraken2_metrics.py # 7. Kraken2 classification + metrics
python field_validation.py # 8. Field validation (9 real ONT runs)
python prior_corrected.py # 9. Prior-corrected operating pointWang, P., Wang, H., Zhou, Y., & Zhang, D. Species-level identification of aquaculture pathogens from nanopore reads on edge hardware. Computers and Electronics in Agriculture (submitted).
MIT