Medical-research-skills neoantigen-predictor
Predict neoantigens that may be recognized by the immune system based.
git clone https://github.com/aipoch/medical-research-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/aipoch/medical-research-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/scientific-skills/Data Analysis/neoantigen-predictor" ~/.claude/skills/aipoch-medical-research-skills-neoantigen-predictor && rm -rf "$T"
scientific-skills/Data Analysis/neoantigen-predictor/SKILL.mdNeoantigen Predictor
Predicts patient-specific neoantigen candidate peptides with high immunogenicity based on HLA typing and tumor mutation profiles, providing target screening for tumor immunotherapy.
When to Use
- Use this skill when the task is to Predict neoantigens that may be recognized by the immune system based.
- Use this skill for data analysis tasks that require explicit assumptions, bounded scope, and a reproducible output format.
- Use this skill when you need a documented fallback path for missing inputs, execution errors, or partial evidence.
Key Features
- Scope-focused workflow aligned to: Predict neoantigens that may be recognized by the immune system based.
- Packaged executable path(s):
.scripts/main.py - Reference material available in
for task-specific guidance.references/ - Structured execution path designed to keep outputs consistent and reviewable.
Dependencies
Required:
- Python 3.8+
- biopython (sequence processing)
- pandas, numpy (data analysis)
- requests (API calls)
Optional (enhanced features):
- NetMHCpan 4.1 local installation (improved performance)
- samtools (VCF processing)
- matplotlib, seaborn (visualization)
Example Usage
See
## Usage above for related details.
cd "20260318/scientific-skills/Data Analytics/neoantigen-predictor" python -m py_compile scripts/main.py python scripts/main.py --help
Example run plan:
- Confirm the user input, output path, and any required config values.
- Edit the in-file
block or documented parameters if the script uses fixed settings.CONFIG - Run
with the validated inputs.python scripts/main.py - Review the generated output and return the final artifact with any assumptions called out.
Implementation Details
See
## Workflow above for related details.
- Execution model: validate the request, choose the packaged workflow, and produce a bounded deliverable.
- Input controls: confirm the source files, scope limits, output format, and acceptance criteria before running any script.
- Primary implementation surface:
.scripts/main.py - Reference guidance:
contains supporting rules, prompts, or checklists.references/ - Parameters to clarify first: input path, output path, scope filters, thresholds, and any domain-specific constraints.
- Output discipline: keep results reproducible, identify assumptions explicitly, and avoid undocumented side effects.
Quick Check
Use this command to verify that the packaged script entry point can be parsed before deeper execution.
python -m py_compile scripts/main.py
Audit-Ready Commands
Use these concrete commands for validation. They are intentionally self-contained and avoid placeholder paths.
python -m py_compile scripts/main.py python scripts/main.py --help
Workflow
- Confirm the user objective, required inputs, and non-negotiable constraints before doing detailed work.
- Validate that the request matches the documented scope and stop early if the task would require unsupported assumptions.
- Use the packaged script path or the documented reasoning path with only the inputs that are actually available.
- Return a structured result that separates assumptions, deliverables, risks, and unresolved items.
- If execution fails or inputs are incomplete, switch to the fallback path and state exactly what blocked full completion.
Function Overview
Neoantigens are variant peptides generated by non-synonymous mutations in tumor cells, which can be presented by the patient's own HLA molecules and recognized by T cells. This tool integrates the following analysis workflows:
- Mutant Peptide Generation - Extract 8-11mer variant peptides from mutation sites
- HLA Binding Prediction - Predict peptide binding affinity to patient HLA molecules
- Immunogenicity Assessment - Assess potential to elicit immune response
- Priority Ranking - Comprehensive scoring to screen optimal neoantigen candidates
Input Format
HLA Typing Input
| Format | Example | Description |
|---|---|---|
| Standard Nomenclature | | WHO standard HLA nomenclature |
| Simplified Nomenclature | | Omit HLA- and * |
| Multi-alleles | | Multiple alleles separated by commas |
Mutation Data Input
VCF Format Example:
#CHROM POS ID REF ALT QUAL FILTER INFO chr17 7579472 . G A 100 PASS GENE=TP53;AA=p.R273H chr13 32915005 . C T 100 PASS GENE=BRCA2;AA=p.S1172L
Table Format:
| Gene | Chrom | Position | Ref | Alt | Protein_Change |
|---|---|---|---|---|---|
| TP53 | chr17 | 7579472 | G | A | p.R273H |
| BRCA2 | chr13 | 32915005 | C | T | p.S1172L |
FASTA Format (Variant Peptides):
>TP53_R273H_mut GSDLWPGYFSH >TP53_R273H_wt GSDLWPGYFSP
Usage
Python API
from scripts.main import NeoantigenPredictor # Initialize predictor predictor = NeoantigenPredictor() # Set patient HLA typing hla_alleles = ["HLA-A*02:01", "HLA-A*11:01", "HLA-B*07:02"] # Define mutation data mutations = [ { "gene": "TP53", "chrom": "chr17", "pos": 7579472, "ref": "G", "alt": "A", "protein_change": "p.R273H" } ] # Predict neoantigens results = predictor.predict( hla_alleles=hla_alleles, mutations=mutations, peptide_length=[9, 10], # 9-10mer peptides mhc_method="netmhcpan" # Use NetMHCpan prediction ) # Get high-affinity neoantigens high_affinity = predictor.filter_by_binding(results, rank_threshold=0.5)
Command Line Usage
# Basic prediction python scripts/main.py \ --hla "HLA-A*02:01,HLA-A*11:01,B*07:02" \ --vcf mutations.vcf \ --output neoantigen_results.json # Use table format input python scripts/main.py \ --hla-file hla_genotype.txt \ --mutations mutations.csv \ --peptide-length 9,10,11 \ --rank-cutoff 0.5 \ --output results.json # Predict HLA binding for existing variant peptides python scripts/main.py \ --hla "A*02:01" \ --variant-peptides peptides.fasta \ --wildtype-peptides wt_peptides.fasta \ --output binding_predictions.csv
Output Format
{ "patient_hla": ["HLA-A*02:01", "HLA-A*11:01", "HLA-B*07:02"], "prediction_method": "NetMHCpan 4.1", "total_predictions": 156, "strong_binders": 12, "neoantigens": [ { "rank": 1, "mutation_id": "TP53_R273H", "gene": "TP53", "chromosome": "chr17", "position": 7579472, "ref_aa": "R", "alt_aa": "H", "hla_allele": "HLA-A*02:01", "peptide_sequence": "S DDLWPGYFSH", "peptide_length": 9, "mutant_position": 9, "mhc_binding": { "rank_percentile": 0.12, "affinity_nM": 34.5, "binding_level": "Strong", "core_peptide": "DLWPGYFSH", "anchor_residues": [2, 9] }, "immunogenicity": { "foreignness_score": 0.87, "self_similarity": 0.23, "amino_acid_change": "R->H", "anchor_mutation": true, "hydrophobicity_change": -0.45 }, "priority_score": 0.92, "clinical_relevance": { "variant_allele_frequency": 0.42, "expression_level": "High", "clonality": "Clonal" } } ], "summary": { "top_candidates": 5, "binding_distribution": { "strong": 12, "weak": 44, "non_binder": 100 } } }
Scoring Algorithms
MHC Binding Affinity Prediction
Using NetMHCpan 4.1 algorithm to predict peptide binding to HLA molecules:
| Metric | Description | Threshold |
|---|---|---|
| Rank % | Binding rank percentile compared to natural ligand library | <0.5% = Strong, <2% = Weak |
| IC50 (nM) | Half-maximal inhibitory concentration | <50nM = High, <500nM = Intermediate |
| Binding Level | Comprehensive binding strength classification | Strong/Weak/Non-binder |
Immunogenicity Score
Immunogenicity Score = Σ(wi × fi) Components: 1. Foreignness Score (w=0.30): Difference from wild-type protein 2. Anchor Mutation (w=0.25): Whether mutation is at HLA binding anchor position 3. Self-similarity (w=0.20): Similarity to self-antigen pool (lower is better) 4. Hydrophobicity Change (w=0.15): Magnitude of hydrophobicity change 5. Clonality (w=0.10): Tumor clonality (clonal mutation > subclonal)
Priority Score
priority_score = ( binding_weight × (1 - rank_percentile) + immunogenicity_weight × immunogenicity_score + clinical_weight × clinical_score ) # Weight configuration weights = { 'mhc_binding': 0.40, # MHC binding affinity 'immunogenicity': 0.35, # Immunogenicity 'clinical': 0.25 # Clinical relevance (expression, clonality) }
HLA Support List
MHC Class I Molecules
- HLA-A: A01:01, A02:01, A02:03, A02:06, A03:01, A11:01, A23:01, A24:02, A26:01, A30:01, A30:02, A31:01, A32:01, A33:01, A68:01, A68:02
- HLA-B: B07:02, B08:01, B15:01, B27:05, B35:01, B40:01, B44:02, B44:03, B51:01, B53:01, B57:01, B58:01
- HLA-C: C03:03, C04:01, C05:01, C06:02, C07:01, C07:02, C08:02, C12:03, C14:02, C15:02
Mouse MHC (for preclinical research)
- H2-Db, H2-Kb, H2-Kd, H2-Ld
Technical Difficulty: HIGH
⚠️ AI Autonomous Acceptance Status: Manual review required
This skill involves complex immunoinformatics calculations:
- MHC binding prediction algorithms (NetMHCpan neural network)
- Peptide sequence processing and variant positioning
- Multi-dimensional immunogenicity assessment
- Large-scale parallel computing optimization
- Tumor genomics data integration
Data Dependencies
| Data Source | Type | Purpose |
|---|---|---|
| NetMHCpan 4.1 | MHC binding prediction | Core prediction algorithm |
| Ensembl/GENCODE | Genome annotation | Transcript sequence extraction |
| UniProt | Protein sequences | Wild-type reference sequences |
| IEDB | Immune epitope data | Immunogenicity assessment reference |
| TCGA | Tumor mutation data | Mutation signature analysis |
Algorithm Limitations
- MHC binding prediction accuracy: ~85% (Rank < 0.5 threshold)
- Immunogenicity prediction requires experimental validation, correlation ~60-70%
- Does not consider HLA molecule expression levels on cell surface
- Cannot predict immune tolerance or suppressive T cell responses
- Uncertainty in the correlation between neoantigen generation and T cell response
Clinical Application Notes
⚠️ Important Notice: This tool is for research purposes only; prediction results should not be the sole basis for clinical decisions.
- All candidate neoantigens require experimental validation (e.g., ELISPOT, tetramer staining)
- Consider patient's own immune status and treatment history
- Assess potential autoimmune toxicity risks
- Combine with tumor microenvironment immune infiltration status
References
See
references/ directory:
- NetMHCpan 4.1 algorithm paper (Reynisson et al., 2020)
- Neoantigen prediction best practice guidelines
- Tumor immunotherapy clinical trial design references
- Immunopeptidomics databases
Core Implementation
Core script:
scripts/main.py
Key functions:
- Extract variant peptides from mutation sitesextract_variant_peptides()
- MHC binding affinity predictionpredict_mhc_binding()
- Foreignness/self-similarity assessmentcalculate_foreignness()
- Comprehensive immunogenicity scoringscore_immunogenicity()
- Multi-criteria candidate rankingrank_candidates()
Validation Status
- Unit Test Coverage: 78%
- Benchmark Validation: Prediction consistency with published neoantigen datasets
- Status: ⏳ Requires experimental validation - Prediction results require in vitro/in vivo validation
Risk Assessment
| Risk Indicator | Assessment | Level |
|---|---|---|
| Code Execution | Python scripts with tools | High |
| Network Access | External API calls | High |
| File System Access | Read/write data | Medium |
| Instruction Tampering | Standard prompt guidelines | Low |
| Data Exposure | Data handled securely | Medium |
Security Checklist
- No hardcoded credentials or API keys
- No unauthorized file system access (../)
- Output does not expose sensitive information
- Prompt injection protections in place
- API requests use HTTPS only
- Input validated against allowed patterns
- API timeout and retry mechanisms implemented
- Output directory restricted to workspace
- Script execution in sandboxed environment
- Error messages sanitized (no internal paths exposed)
- Dependencies audited
- No exposure of internal service architecture
Prerequisites
# Python dependencies pip install -r requirements.txt
Evaluation Criteria
Success Metrics
- Successfully executes main functionality
- Output meets quality standards
- Handles edge cases gracefully
- Performance is acceptable
Test Cases
- Basic Functionality: Standard input → Expected output
- Edge Case: Invalid input → Graceful error handling
- Performance: Large dataset → Acceptable processing time
Lifecycle Status
- Current Stage: Draft
- Next Review Date: 2026-03-06
- Known Issues: None
- Planned Improvements:
- Performance optimization
- Additional feature support
Output Requirements
Every final response should make these items explicit when they are relevant:
- Objective or requested deliverable
- Inputs used and assumptions introduced
- Workflow or decision path
- Core result, recommendation, or artifact
- Constraints, risks, caveats, or validation needs
- Unresolved items and next-step checks
Error Handling
- If required inputs are missing, state exactly which fields are missing and request only the minimum additional information.
- If the task goes outside the documented scope, stop instead of guessing or silently widening the assignment.
- If
fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.scripts/main.py - Do not fabricate files, citations, data, search results, or execution outcomes.
Input Validation
This skill accepts requests that match the documented purpose of
neoantigen-predictor and include enough context to complete the workflow safely.
Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:
only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.neoantigen-predictor
Response Template
Use the following fixed structure for non-trivial requests:
- Objective
- Inputs Received
- Assumptions
- Workflow
- Deliverable
- Risks and Limits
- Next Checks
If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.