Sign inSign up

propenster/prrsifier

By propenster

•Updated 9 days ago

PRRSV ORF5 Evolutionary Lineage and Genetic Clade Classification

Image
0

210

propenster/prrsifier repository overview

⁠prrsifier

PRRSV ORF5 Evolutionary Lineage and Genetic Clade Classification

A fast, self-contained command-line tool for classifying porcine reproductive and respiratory syndrome virus (PRRSV) ORF5 sequences into their known evolutionary lineages.


⁠Motivation

PRRSV is one of the most economically damaging pathogens in the global swine industry. Its ORF5 gene — encoding the GP5 envelope glycoprotein — evolves rapidly and is the standard target for molecular epidemiology, lineage tracking, and vaccine-strain discrimination.

Existing classification tools exist (Nextclade, PRRS-Loom), but they are either web-only or lock users into a fixed reference model. prrsifier is different: it is self-hosted, open-source, and lets you swap in your own reference set without retraining anything. Every classification comes with a confidence score and full traceability — you can trace any assignment back to the specific reference sequence it matched, and immediately see which queries are genuinely novel versus merely under-sampled.

Built for veterinary diagnostic labs, surveillance programs, and researchers who need reproducible lineage assignment.


⁠How It Works

Pipeline Architecture

Each query is assigned the lineage of its nearest reference sequence in the tree. The confidence metric measures how much closer the nearest neighbor is compared to the second-nearest:

confidence = (second_dist - nearest_dist) / nearest_dist

  • confidence >= 0.5 → strong, unambiguous assignment
  • 0.1 <= confidence < 0.5 → moderate; query sits between two clusters
  • confidence < 0.1 → novel candidate; flagged for wet-lab characterization

⁠Stack

ComponentRole
RustOrchestration, Newick parsing, patristic distances, classification logic
BLAST+Species discrimination against reference databases
MAFFTMultiple sequence alignment
FastTreeApproximate maximum-likelihood tree inference
CondaReproducible environment for bioinformatics tools
DockerSelf-contained, portable runtime

The classifier itself is written in Rust — no Python dependency at runtime. The heavy lifting (alignment, tree inference) is delegated to the standard tools the field already trusts.


⁠Usage

docker pull propenster/prrsifier:0.1.0

docker run --rm -v "$PWD:/work" propenster/prrsifier:0.1.0 \
  -i /work/queries.fa \
  -o /work/results.tsv \
⁠From source
git clone https://github.com/propenster/prrsifier.git
cd prrsifier
make refs blastdb classifier
./classifier/target/release/prrsifier \
  -i queries.fa \
  -o results.tsv \
⁠Options
-i, --input <FILE>           Input FASTA of query ORF5 sequences
-o, --output <FILE>          Output TSV (default: output.tsv)
-d, --data-dir <DIR>         Root dir containing prrsv1/ and prrsv2/ (default: data)
-c, --min-confidence <FLOAT> Confidence threshold for "Novel" flagging (default: 0.10)
-t, --threads <N>            Threads for BLAST and MAFFT (default: 1)
    --workdir <DIR>          Keep intermediate files for debugging
⁠Output format
query_id    species  lineage  nearest_ref  nearest_dist  second_ref   second_dist  confidence  flag
OR293404    prrsv2   L1A      OR293404     0.0           EU756373     0.0135...    1.0         Classified
ColumnMeaning
query_idOriginal sequence identifier
speciesPRRSV-1 or PRRSV-2
lineageAssigned lineage (e.g. L1A, L8C, L1.6)
nearest_refAccession of the closest reference sequence
nearest_distPatristic distance to that reference
second_refAccession of the second-closest reference
second_distPatristic distance to that reference
confidenceRatio metric (see above)
flagClassified or Novel/Unclassified
⁠Reference Sets

prrsifier ships with curated ORF5 reference sets derived from peer-reviewed nomenclature:

SpeciesSequencesLineagesSource
PRRSV-195525Yim-im et al. 2025
PRRSV-21,10032Yim-im & Zhang 2023
Both sets span all major lineages, sublineages, and commercial vaccine strains. The reference FASTAs and metadata TSVs are in data/, and can be replaced with your own curated panel — no retraining required.
⁠Extensibility

The reference set is plain FASTA + TSV. To add a new variant, sublineage, or vaccine strain:

Append the sequence to data//reference_clean.fasta

Add a matching row to data//reference_metadata.tsv

Rebuild the BLAST database: make blastdb

No model weights, no retraining, no black box.

Citation If prrsifier contributes to your work, please cite the preprint: Olusegun, F. (2026). prrsifier: an extensible, self-hosted PRRSV ORF5 lineage classifier with auditable provenance and confidence scoring. bioRxiv. (link once posted)

References:

Yim-im, W., et al. (2023). Refining PRRSV-2 genetic classification based on global ORF5 sequences. Microbiol Spectr.

Yim-im, W., et al. (2025). Global PRRSV-1 ORF5 lineage classification. Vet Microbiol.

Chandra et al. 2025 — describe SDRS as the state of the art for U.S. PRRSV surveillance

Zeller et al. 2024 — Nextclade PRRSV-2

Zeller et al. 2023 — ClassLog

Vander Waal et al. 2024 — variant classification (PRRS-Loom)

Paploski et al. 2021 — sub-lineage dynamics (background)

⁠License

MIT © 2026 Faith (propenster) Olusegun

Acknowledgements Built on the shoulders of the open-source bioinformatics community — in particular the developers of BLAST+, MAFFT, FastTree, and the researchers whose published nomenclature made the reference curation possible.

Tag summary

Content type

Image

Digest

sha256:13b08e1c3…

Size

1.2 GB

Last updated

9 days ago

docker pull propenster/prrsifier