numpy>=2.0.0,<3.0.0
pandas>=2.1.4,<3.0.0
pyensembl>=2.6.4,<3.0.0
varcode>=5.0.0,<6.0.0
isovar>=1.4.7,<2.0.0
mhctools>=3.13.3,<4.0.0
# 5.10.0 adds EvalContext(default_methods=...) and apply_filter(default_methods=...)
# which vaxrank uses to score multi-model inputs (e.g. LENS with mhcflurry +
# netmhcpan) without pre-subsetting the frame.
# 5.16.0 adds read_pvacseq for both pVACseq all_epitopes flavors and
# categorical DSL helpers used by pVACseq external-input scoring.
topiary>=5.16.0,<6.0.0
roman
jinja2>=3.1
weasyprint>=62.0
pdfkit  # legacy: needs wkhtmltopdf, use --pdf-backend=pdfkit to enable
openpyxl
xvfbwrapper  # legacy: only needed with --pdf-backend=pdfkit on headless Linux
astropy>=6.1
platformdirs
msgspec>=0.18.6,<1.0.0
dnachisel>=3.2.0,<4.0.0
serializable>=1.1.0,<2.0.0
# vaxrank.peptide_context imports packaging.version for PEP 440 ordering
# of predictor_version strings. Always pulled in transitively via setuptools
# / pip, but pinned explicitly so minimal / --no-deps installs don't break
# at import time.
packaging>=21.0
