mhctools
mhctools is a Python library for running MHC binding, presentation, immunogenicity, and antigen-processing predictors. It provides a common interface to tools such as NetMHCpan and MHCflurry, with results you can inspect in Python or export as a pandas DataFrame.
In the openvax stack, mhctools is the predictor layer: it parses allele names with mhcgnomes, runs mhcflurry and external tools, and feeds epitope pipelines such as topiary and vaxrank.
Install
Requires Python 3.11 or later and pandas 3.x.
pip install mhctools
mhctools fetch mhcflurry
MHCflurry is
installed with mhctools; the second command downloads its model weights. Most
other predictors need model weights or an external installation. Use
mhctools ls to locate models and mhctools predictors to check which can run.
The installation guide explains
downloads, optional backends, and licensing.
Quick start
from mhctools import MHCflurry
predictor = MHCflurry(alleles=["HLA-A*02:01", "HLA-B*07:02"])
results = predictor.predict(["SIINFEKL", "GILGFVFTL"])
for result in results:
affinity = result.affinity
if affinity is not None:
print(result.peptide, affinity.allele, affinity.value)
SIINFEKL HLA-A*02:01 6249.062082358259
GILGFVFTL HLA-A*02:01 25.84136114436916
Each result corresponds to one input peptide. The affinity accessor selects
the strongest prediction across alleles, with IC50 in nM. Use
predict_dataframe() for a pandas table or predict_proteins() to scan protein
sequences. See results and DataFrames.
Command line
mhctools is one executable. The bare command predicts for peptides or FASTA
sequences and writes a tab-separated table to stdout:
mhctools --sequence SIINFEKL GILGFVFTL --mhc-predictor mhcflurry --mhc-alleles 'HLA-A*02:01'
source_sequence_name offset peptide allele score affinity percentile_rank prediction_method_name length
0 SIINFEKL HLA-A*02:01 0.192203 6249.06 7.96416 mhcflurry 8
0 GILGFVFTL HLA-A*02:01 0.699441 25.8414 0.130863 mhcflurry 9
Subcommands cover artifacts (ls, fetch, predictors), table annotation
(predict-table), peptidase activity (cleavage, cleavenet), TCR scoring
(mixtcrpred), vaccine modeling (vaccine-report, vaccine-trajectory,
vaccine-windows, vaccine-compare) and evaluation (benchmark). Run
mhctools --help to see commands and prediction options, or
mhctools --version to identify the installed release.
Enable Bash/zsh tab completion for this shell:
eval "$(register-python-argcomplete mhctools)"
Alternatively, run activate-global-python-argcomplete once and start a new
shell to enable completion for all participating OpenVax tools. See the
command-line guide for details.
Documentation
Full documentation: openvax.github.io/mhctools.
- Getting started: first prediction, start here
- Choosing a predictor and known limits
- Predictor matrix: Python classes, CLI names, inputs, and installation routes
- Recipes: protein scans, multiple samples, and table annotation
- Command line and API reference
- Peptidase activity, vaccine reports, and benchmarks
Development
./develop.sh
./lint.sh
./test.sh
See the testing guide and release instructions.
License
Metadata
Release files for mhctools 4.9.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mhctools-4.9.3.tar.gz | 1.2 MB | Without provenance | Details for mhctools-4.9.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mhctools-4.9.3-py3-none-any.whl | Python 3 | none | any | Details for mhctools-4.9.3-py3-none-any.whl |
Total release size: 2.1 MB
Release files / mhctools-4.9.3.tar.gz
| Download URL | mhctools-4.9.3.tar.gz |
|---|---|
| Size | 1.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3906ecb0a6da56f2642b2f3afa4f7a6155da71e43e526ba56c484912e8bb6bac
|
|
BLAKE2b-256 checksum How to use checksums |
1d512d296cb6f3e203b0cd0127598079a4e07ae04aad22bcaa77ce618e825234
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / mhctools-4.9.3-py3-none-any.whl
| Download URL | mhctools-4.9.3-py3-none-any.whl |
|---|---|
| Size | 904.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
af2a17d089310f2adb7b9dcca0e9918f563796c9b557afef70a98d233d514ee5
|
|
BLAKE2b-256 checksum How to use checksums |
daf7b097eab8f159e2cef9f14b258c7ceddb4d5114018331de639f599ab763d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Security for mhctools 4.9.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.