Skip to main content

MHC-I anchor position predictor using allele-specific PWMs

Project description

AnchorMiner — MHC-I Anchor Position Predictor

Anchor residues are amino acids within a peptide that form direct contacts with the MHC-I binding groove. They serve a structural docking function rather than defining T cell recognition, making their identification useful for immunogenicity modeling, epitope masking, and feature engineering in machine learning pipelines.

AnchorMiner identifies canonical and non-canonical anchor positions for a given peptide and MHC-I allele using allele-specific Position Weight Matrices (PWMs) built from NetMHCpan-4.2 predictions on a 600,000-peptide background sampled from the human SwissProt proteome.

For a detailed description of the method and usage examples, see notebooks/Demo.ipynb.


Requirements

See requirements.txt. Install with:

pip install -r requirements.txt

Quick Start

from src.predict_anchors import predict_anchors

# Without visualization
result = predict_anchors('KILDGVFAV', 'HLA-A02:01', viz=False)

# With visualization — generates KL plot and sequence logo
result = predict_anchors('KILDGVFAV', 'HLA-A02:01', viz=True)

# Access results
print(result['coords'])   # anchor position indices (0-indexed)
print(result['verbose'])  # per-position details

Output: dict with keys:

  • coords — list of anchor position indices (0-indexed)
  • verbose — list of dicts per anchor position with KL divergence, canonical/non-canonical classification, biochemical cluster, cumulative cluster frequency, and current amino acid
  • KL — KL divergence plot (only if viz=True)
  • logo — sequence logo with anchor positions highlighted in red (canonical) or blue (non-canonical) (only if viz=True)

Repository Structure

AnchorMiner/
├── src/
│   ├── AnchorMiner.py          # Core class
│   ├── predict_anchors.py      # Wrapper function
│   └── standartize_hlas.py     # HLA normalization utility
├── datasets/
│   ├── PWM/                    # Precomputed PWM matrices (.npy)
│   ├── PPM/                    # Precomputed PPM matrices (.npy)
│   ├── KL/                     # Precomputed KL divergence vectors (.npy)
│   └── AnchorMiner_supported_alleles.csv
├── notebooks/
│   ├── Demo.ipynb              # Tutorial and usage examples
│   ├── Testing.ipynb           # Sanity checks and structural validation
│   └── AnchorMiner_DevelopmentNotebook.ipynb
├── requirements.txt
└── README.md

Supported Alleles and Peptide Lengths

146 MHC-I alleles covering 92% of worldwide population. Peptide lengths 9–12. Visit datasets/Anchor_Miner_supportedalleles.csv to get a dataframe of allowed HLAs and lengths.


Notes

  • Homo sapiens HLA allele format: HLA-X##:## e.g. HLA-A02:01. Use src/standartize_hlas.normalize_allele() to normalize non-standard inputs. Only MHCI alleles are currently supported
  • Mus Musculus MHC format: H:2:Kd.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anchorminer-0.1.0-py3-none-any.whl (2.3 MB view details)

Uploaded Python 3

File details

Details for the file anchorminer-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: anchorminer-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for anchorminer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 60fbad55226b9baa6c955db15d77e899fe706bc3e07299bb10f58cdc5558fd7b
MD5 7bc033a51400bd2b70cce4d8ebb827c2
BLAKE2b-256 58e133a5f90ca19937e0fc433989be0a89882cbed9a6230ae07be114322774b4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page