Skip to content

Predictor matrix

Reference for supported predictors, Python classes, command-line names, inputs, and installation routes. For model selection, see choosing a predictor.

  • Kinds are defined in prediction kinds. A predictor emits only the kinds that apply (for example NetMHCpan41_EL emits presentation only).
  • MHC class is the class the model scores. None means the prediction is MHC-independent and Prediction.allele is empty.
  • Default lengths apply to predict_proteins() and the command line when you pass no lengths; they are narrower than what the model supports. See peptide lengths.
  • License tiers are defined in licensing; mhctools fetch behavior is in getting models.

MHC binding and presentation

See the mhc binding and presentation guide for examples and model notes.

Predictor MHC class Input
NetMHCpan 4.1 / 4.2 I peptides + alleles
NetMHCpan 4.0 I peptides + alleles
NetMHCpan 3.0 / 2.8 I peptides + alleles
NetMHC 3.4 / 4.0 I peptides + alleles
NetMHCcons I peptides + alleles
NetMHCIIpan 4.3 / 4.1 / 4.0 / 3.x II peptides + alleles
NetMHCstabpan I peptides + alleles
MHCflurry I peptides + alleles (flanks optional)
BigMHC I peptides + alleles
CapHLA I and II peptides + alleles
MixMHCpred I peptides + alleles
MixMHC2pred II peptides + alleles
SMM / SMM-PMBEC I peptides + alleles
Historical IEDB names I and II peptides + alleles
RandomBindingPredictor I peptides + alleles

NetMHCpan 4.1 / 4.2

  • Python classes: NetMHCpan, NetMHCpan41, NetMHCpan41_BA, NetMHCpan41_EL, NetMHCpan42, NetMHCpan42_BA, NetMHCpan42_EL
  • CLI names: netmhcpan, netmhcpan41, netmhcpan41-ba, netmhcpan41-el, netmhcpan42, netmhcpan42-ba, netmhcpan42-el
  • Prediction kinds: pMHC_affinity, pMHC_presentation
  • Default scanning lengths: 9
  • Installation: your licensed DTU install
  • License: dtu

NetMHCpan 4.0

  • Python classes: NetMHCpan4, NetMHCpan4_BA, NetMHCpan4_EL
  • CLI names: netmhcpan4, netmhcpan4-ba, netmhcpan4-el
  • Prediction kinds: pMHC_affinity, pMHC_presentation
  • Default scanning lengths: 9
  • Installation: your licensed DTU install
  • License: dtu

NetMHCpan 3.0 / 2.8

  • Python classes: NetMHCpan3, NetMHCpan28
  • CLI names: netmhcpan3, netmhcpan28
  • Prediction kinds: pMHC_affinity
  • Default scanning lengths: 9
  • Installation: your licensed DTU install
  • License: dtu

NetMHC 3.4 / 4.0

  • Python classes: NetMHC, NetMHC3, NetMHC4
  • CLI names: netmhc, netmhc3, netmhc4
  • Prediction kinds: pMHC_affinity
  • Default scanning lengths: 9
  • Installation: your licensed DTU install
  • License: dtu

NetMHCcons

  • Python classes: NetMHCcons
  • CLI names: netmhccons
  • Prediction kinds: pMHC_affinity
  • Default scanning lengths: 9
  • Installation: your licensed DTU install
  • License: dtu

NetMHCIIpan 4.3 / 4.1 / 4.0 / 3.x

  • Python classes: NetMHCIIpan, NetMHCIIpan3, NetMHCIIpan4, NetMHCIIpan4_BA, NetMHCIIpan4_EL, NetMHCIIpan43, NetMHCIIpan43_BA, NetMHCIIpan43_EL
  • CLI names: netmhciipan, netmhciipan3, netmhciipan4, netmhciipan4-ba, netmhciipan4-el, netmhciipan43, netmhciipan43-ba, netmhciipan43-el
  • Prediction kinds: pMHC_affinity, pMHC_presentation
  • Default scanning lengths: 15-20
  • Installation: your licensed DTU install
  • License: dtu

NetMHCstabpan

  • Python classes: NetMHCstabpan
  • CLI names: netmhcstabpan
  • Prediction kinds: pMHC_stability
  • Default scanning lengths: (none; pass lengths)
  • Installation: your licensed DTU install
  • License: dtu

MHCflurry

  • Python classes: MHCflurry, MHCflurry_Affinity
  • CLI names: mhcflurry, mhcflurry-affinity
  • Prediction kinds: pMHC_affinity, pMHC_presentation, antigen_processing
  • Default scanning lengths: 9
  • Installation: mhctools fetch mhcflurry
  • License: open

BigMHC

  • Python classes: BigMHC, BigMHC_EL, BigMHC_IM
  • CLI names: bigmhc, bigmhc-el, bigmhc-im
  • Prediction kinds: pMHC_presentation, immunogenicity
  • Default scanning lengths: (set per call)
  • Installation: mhctools fetch bigmhc --accept-license + PyTorch
  • License: academic

CapHLA

  • Python classes: CapHLA, CapHLA_BA, CapHLA_EL
  • CLI names: caphla, caphla-ba, caphla-el
  • Prediction kinds: pMHC_affinity, pMHC_presentation
  • Default scanning lengths: (7-25 supported)
  • Installation: pip install "mhctools[caphla]" + mhctools fetch caphla
  • License: open

MixMHCpred

  • Python classes: MixMHCpred
  • CLI names: mixmhcpred
  • Prediction kinds: pMHC_presentation
  • Default scanning lengths: 9 (8-14 supported)
  • Installation: upstream release + MIXMHCPRED_PATH
  • License: academic

MixMHC2pred

  • Python classes: MixMHC2pred
  • CLI names: mixmhc2pred
  • Prediction kinds: pMHC_presentation
  • Default scanning lengths: 15
  • Installation: upstream release (with PWMdef/)
  • License: academic

SMM / SMM-PMBEC

  • Python classes: SMM, SMMPMBEC
  • CLI names: smm, smm-pmbec
  • Prediction kinds: pMHC_affinity
  • Default scanning lengths: 9
  • Installation: python scripts/setup_test_backends.py smm --accept-license or IEDB_MHCI_EXECUTABLE
  • License: open

Historical IEDB names

  • Python classes: IedbNetMHCpan, IedbNetMHCcons, IedbNetMHCIIpan, IedbSMM, IedbSMM_PMBEC
  • CLI names: netmhcpan-iedb, netmhccons-iedb, netmhciipan-iedb, smm-iedb, smm-pmbec-iedb
  • Prediction kinds: pMHC_affinity
  • Default scanning lengths: 8-11 (class I), 15-20 (II)
  • Installation: the local predictor each one maps to
  • License: dtu

RandomBindingPredictor

  • Python classes: RandomBindingPredictor
  • CLI names: random
  • Prediction kinds: pMHC_affinity
  • Default scanning lengths: 9
  • Installation: built in
  • License: builtin

Antigen processing

See the antigen processing guide for examples and model notes.

Predictor MHC class Input
Pepsickle none peptides (flanks recommended)
NetChop none peptides (flanks recommended)
NetCleave I or II peptides + C-terminal flank (>= 3 residues)
DeepTAP none peptides only
ERAMER none (class I context) peptides only (9-16mer precursors)

Pepsickle

  • Python classes: Pepsickle
  • CLI names: pepsickle
  • Prediction kinds: proteasome_cleavage
  • Default scanning lengths: 9
  • Installation: pip install pepsickle
  • License: open

NetChop

  • Python classes: NetChop
  • CLI names: netchop
  • Prediction kinds: proteasome_cleavage
  • Default scanning lengths: 9
  • Installation: your licensed DTU install (NETCHOP_HOME)
  • License: dtu

NetCleave

  • Python classes: NetCleave, NetCleave_I, NetCleave_II
  • CLI names: netcleave, netcleave-i, netcleave-ii
  • Prediction kinds: proteasome_cleavage, endolysosomal_cleavage
  • Default scanning lengths: 9 (I), 15 (II)
  • Installation: mhctools fetch netcleave --accept-license
  • License: unlicensed

DeepTAP

  • Python classes: DeepTAP
  • CLI names: deeptap
  • Prediction kinds: tap_transport
  • Default scanning lengths: (any)
  • Installation: mhctools fetch deeptap + torch Python
  • License: open

ERAMER

  • Python classes: ERAMER
  • CLI names: eramer
  • Prediction kinds: erap_trimming
  • Default scanning lengths: (9-16 supported)
  • Installation: mhctools fetch eramer + openpyxl
  • License: open

Immunogenicity

See the immunogenicity guide for examples and model notes.

Predictor MHC class Input
Calis I peptides only
PRIME I peptides + alleles
DeepImmuno I peptides + alleles
TLimmuno2 II peptides + class II alleles

Calis

  • Python classes: Calis
  • CLI names: calis
  • Prediction kinds: immunogenicity
  • Default scanning lengths: (any)
  • Installation: built in
  • License: builtin

PRIME

  • Python classes: PRIME
  • CLI names: prime
  • Prediction kinds: immunogenicity
  • Default scanning lengths: 9
  • Installation: upstream clone + MixMHCpred 3.0+
  • License: academic

DeepImmuno

  • Python classes: DeepImmuno
  • CLI names: deepimmuno
  • Prediction kinds: immunogenicity
  • Default scanning lengths: 9-10 only
  • Installation: mhctools fetch deepimmuno + Keras-2-capable Python
  • License: open

TLimmuno2

  • Python classes: TLimmuno2
  • CLI names: tlimmuno2
  • Prediction kinds: immunogenicity
  • Default scanning lengths: (set per call)
  • Installation: mhctools fetch tlimmuno2 --accept-license
  • License: unlicensed

TCR specificity

See the tcr specificity guide for examples and model notes.

Predictor MHC class Input
NetTCR I (peptide, TCR) pairs
Tulip I (peptide, TCR) pairs + mhc=
MixTCRpred I or II (per model) TCRs against one fixed pMHC target per model

NetTCR

  • Python classes: NetTCR
  • CLI names: (none)
  • Prediction kinds: pMHC_TCR_binding
  • Default scanning lengths: (n/a)
  • Installation: mhctools fetch nettcr --accept-license + mhctools[nettcr]
  • License: academic

Tulip

  • Python classes: Tulip
  • CLI names: (none)
  • Prediction kinds: pMHC_TCR_binding
  • Default scanning lengths: (n/a)
  • Installation: mhctools fetch tulip + isolated Python 3.11
  • License: open

MixTCRpred

  • Python classes: MixTCRpred
  • CLI names: (none)
  • Prediction kinds: pMHC_TCR_binding
  • Default scanning lengths: (n/a)
  • Installation: mhctools[mixtcrpred] + mhctools fetch mixtcrpred --accept-license
  • License: academic

Peptide half-life

See the peptide half-life guide for examples and model notes.

Predictor MHC class Input
PeptiVerse none peptides or PeptideInput
PlifePred2 none peptides only (12-100 residues, natural)

PeptiVerse

  • Python classes: PeptiVerse
  • CLI names: peptiverse
  • Prediction kinds: peptide_half_life
  • Default scanning lengths: (sequence only)
  • Installation: pinned snapshots (PEPTIVERSE_HOME, PEPTIVERSE_ESM_HOME)
  • License: open

PlifePred2

  • Python classes: PlifePred2
  • CLI names: plifepred2
  • Prediction kinds: peptide_half_life
  • Default scanning lengths: (12-100)
  • Installation: plifepred2==1.0 + Pfeature (PLIFEPRED2_HOME, PFEATURE_HOME)
  • License: open

License tiers

Tier Meaning
open Open source; code and weights can be fetched or installed freely
academic Academic / non-commercial; review the upstream license first
dtu DTU academic license, identity-bound; you request it from DTU
unlicensed Upstream publishes no license; --accept-license records your own authorization
builtin Built into mhctools; nothing to download

TCR predictors have no mhctools command-line prediction name: their input is a peptide plus a TCR, not an allele. MixTCRpred has its own mhctools mixtcrpred subcommand; see the command line.

Cleavage models (mhctools cleavage) are a separate panel; see cleavage models.