mhctools
Python interface to MHC binding, presentation, immunogenicity, and antigen processing predictors
Decision gist · record as of 2026-08-14
Yes. mhctools is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive license. It is the standard unified interface for MHC prediction in Python research workflows. Install it if you need to predict peptide-MHC binding, presentation, or immunogenicity; the main gotcha is that some wrapped predictors may require additional model downloads or environment setup beyond the base package.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- MHCflurry support requires running `mhcflurry-downloads fetch` after install to download model data.
- Low install friction; pure Python wheel with no compiled dependencies.
- Active maintenance: last release 34 days ago, repository at 103 stars, continuous commits.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for research, clinical, and proprietary applications.
last release 2026-07-11 (34 days) · last repo commit 2026-07-11 · 103 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 105,773 downloads/mo, #12,680 on PyPI
Alternatives
Verify before relying
from mhctools import NetMHCpan41
predictor = NetMHCpan41(alleles=["HLA-A*02:01", "HLA-B*07:02"])
results = predictor.predict(["SIINFEKL", "GILGFVFTL"])
for r in results:
if r.affinity:
print(f"{r.peptide} IC50={r.affinity.value:.1f}nM")- Whether all wrapped predictors (NetMHCpan, MHCflurry, NetMHCstabpan, etc.) are automatically available or require separate installation.
- Performance characteristics and typical runtime for protein scanning across different peptide lengths and allele counts.
- Whether TCR predictor support (NetTCR, Tulip) requires additional environment setup beyond the base install.
What it is and what it does
mhctools wraps multiple published MHC prediction algorithms into a single Python interface, handling peptide-MHC binding affinity, surface presentation likelihood, stability, immunogenicity, antigen processing, and TCR recognition. It abstracts away the differences between underlying predictors (NetMHCpan, MHCflurry, NetCleave, Pepsickle, and others) and returns results as structured PeptideResult objects with consistent accessors for each prediction kind, or as pandas DataFrames for bulk analysis.
The package is designed for immunology and vaccine research workflows: scanning proteins for candidate epitopes, ranking peptides by MHC binding strength and percentile rank, predicting presentation likelihood across multiple HLA alleles, and handling multi-sample cohort predictions where each patient has a different HLA genotype. It supports both single-allele and haplotype-level predictions, with metadata describing whether each prediction kind is MHC-dependent and which MHC class (I or II) it applies to.
Use it for
- Scan a protein sequence for immunogenic peptides that bind strongly to a patient's HLA alleles.
- Rank candidate neoantigen peptides by predicted MHC-I affinity and presentation likelihood for personalized cancer vaccine design.
- Predict TCR recognition of a peptide-MHC complex using paired CDR3 sequences and allele information.
- Generate flat DataFrames of peptide predictions across multiple samples with different HLA genotypes for cohort analysis.
- Combine multiple prediction kinds (affinity, stability, immunogenicity) to filter and prioritize epitope candidates.
- Integrate MHC predictions into a larger immunoinformatics pipeline alongside variant calling and protein annotation.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
mhctools is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive license. It is the standard unified interface for MHC prediction in Python research workflows. Install it if you need to predict peptide-MHC binding, presentation, or immunogenicity; the main gotcha is that some wrapped predictors may require additional model downloads or environment setup beyond the base package.
Install
mhctools on PyPI
Before you install
Low install friction; pure Python wheel with no compiled dependencies. Active maintenance: last release 34 days ago, repository at 103 stars, continuous commits. Requires Python >=3.9 and 7 runtime dependencies (numpy, pandas, varcode, pyensembl, sercol, mhcflurry, mhcgnomes), all standard scientific packages.
MHCflurry support requires running `mhcflurry-downloads fetch` after install to download model data.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for research, clinical, and proprietary applications.
Quickstart
from mhctools import NetMHCpan41
predictor = NetMHCpan41(alleles=["HLA-A*02:01", "HLA-B*07:02"])
results = predictor.predict(["SIINFEKL", "GILGFVFTL"])
for r in results:
if r.affinity:
print(f"{r.peptide} IC50={r.affinity.value:.1f}nM")
Verify before relying
- Whether all wrapped predictors (NetMHCpan, MHCflurry, NetMHCstabpan, etc.) are automatically available or require separate installation.
- Performance characteristics and typical runtime for protein scanning across different peptide lengths and allele counts.
- Whether TCR predictor support (NetTCR, Tulip) requires additional environment setup beyond the base install.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 7 packagesnumpypandasvarcodepyensemblsercolmhcflurrymhcgnomes |
| Maintenance | Actively maintained 34 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 105,773 / month, #12,680 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaEnvironment :: ConsoleIntended Audience :: Science/ResearchOperating System :: OS IndependentProgramming Language :: PythonTopic :: Scientific/Engineering :: Bio-Informatics |
Evidence: mhctools-3.31.5-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “MHC peptide binding prediction”
- mhctoolsUnified Python interface to multiple MHC binding, presentation,…
- pipebioA Python SDK for the PipeBio cloud platform that enables programmatic…
- pyteomicsPyteomics provides Python tools for proteomics data analysis,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Bio-Informatics packages
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
Biopython provides Python tools for computational molecular biology, including sequence analysis, structure parsing, database access, and phylogenetic tree manipulation.
However, verify that the custom Biopython License Agreement aligns with your project's licensing requirements before committing to it in production or proprietary work.
Client library for the Firecrawl API that scrapes, crawls, and searches the web, returning clean Markdown or structured data; also indexes research papers from PubMed, bioRxiv, medRxiv, and arXiv.
A self-balancing interval tree data structure that stores and queries overlapping or enveloped ranges, supporting point lookups, range overlaps, and range envelopment queries.
Install it if you need to store and query overlapping or enveloped ranges; the self-balancing design and rich query interface make it significantly easier than…
Albumentations applies image transformations to training data, supporting classification, segmentation, object detection, and pose estimation with a unified API for images, masks, bounding boxes, and keypoints.
Install it if you need a unified, production-grade augmentation API for computer vision tasks.
PubChemPy is a Python wrapper around the PubChem REST API that lets you search for chemical compounds by name, substructure, or similarity, retrieve their properties, and convert between chemical file formats.
Install it if you need programmatic access to PubChem data.
See also pyteomics · datarobot-predict · pipebio · varcode · abnumber · propka · sklearn2pmml · fair-esm · tmtools