Paul's Diagnosis
Paul is 52 years old, a high school biology teacher in Sacramento, and he has just been told he has Stage III melanoma. The tumor on his left shoulder has been removed, and the margins are clear. But the pathology report shows something concerning – the cancer has spread to two sentinel lymph nodes. His oncologist explains that even with surgery, there is a 40–60% chance of recurrence within five years.
Then she says something Paul has never heard before: "I want to order a personalized cancer vaccine for you."
This is not science fiction. This is 2026. And the technology behind Paul's vaccine – from tumor sequencing to mRNA synthesis – relies on AI at nearly every step.
The Idea: Teaching the Immune System to Hunt Cancer
Cancer cells are the body's own cells gone rogue. Unlike bacteria or viruses, they look almost identical to healthy tissue, which is why the immune system so often fails to destroy them. But "almost identical" is not identical. Every tumor carries mutations – changes in DNA that produce altered proteins found nowhere else in the patient's body. These altered protein fragments are called neoantigens, and they are the Achilles' heel of cancer.
A personalized cancer vaccine works by identifying the neoantigens unique to a patient's tumor, then delivering them to the immune system in a form it can recognize and respond to. The immune system learns that cells displaying these neoantigens are threats, then hunts and destroys them – including micrometastases too small to detect on any scan.
The delivery vehicle of choice? mRNA – the same platform that produced COVID-19 vaccines in record time. An mRNA vaccine encodes the neoantigen sequences. Once injected, the patient's own cells read the mRNA instructions, produce the neoantigen proteins, and display them to the immune system. No live virus. No tumor cells. Just information.
The Pipeline: From Tumor Biopsy to Personalized Vaccine
Paul's vaccine journey begins with his tumor biopsy, but the real work happens in silicon. Here is the five-step pipeline that transforms raw sequencing data into a therapeutic mRNA construct.
Step 1: Identify the Mutations
A sample of Paul's tumor is sent for whole-exome sequencing alongside a sample of his healthy blood cells. By comparing the two, bioinformaticians identify every somatic mutation – DNA changes present in the tumor but not in his normal tissue. Paul's melanoma carries 847 mutations, which is typical for a UV-driven cancer with a high mutational burden.
Not all mutations matter. Most are passengers – random changes that don't affect protein function. The pipeline filters for nonsynonymous mutations: those that actually change the amino acid sequence of a protein, producing something the immune system could potentially distinguish from self.
Step 2: Predict Which Peptides Bind MHC
Here is where AI enters the picture. For the immune system to see a neoantigen, the mutant peptide must be presented on the cell surface by MHC molecules(Major Histocompatibility Complex, also known as HLA in humans). Think of MHC molecules as display cases – they hold peptide fragments on the cell surface where T cells can inspect them.
The critical constraint: MHC molecules are extremely selective about which peptides they bind. Each person has a unique set of MHC alleles (this is why organ transplants require matching). A peptide that binds strongly to one person's MHC might not bind at all to another's. The vaccine must be designed for Paul's specific MHC genotype.
AI models trained on hundreds of thousands of experimental MHC-peptide binding measurements can predict binding affinity for any peptide-MHC combination. This is the step that makes personalization computationally feasible.
import requests
API_KEY = "sk-sci-your-api-key"
BASE = "https://api.scirouter.ai/v1"
# Paul's HLA alleles (determined from his blood sample)
hla_alleles = ["HLA-A*02:01", "HLA-A*24:02", "HLA-B*07:02", "HLA-B*44:02"]
# Candidate neoantigen peptides from his tumor mutations
peptides = [
"YLQPRTFLL", # from a BRAF V600E mutation
"KQSSKALQR", # from a novel TP53 mutation
"RMFPNAPYL", # from a CDK4 R24C mutation
"GILGFVFTL", # from a melanoma-associated antigen
"FLWGPRALV", # from a NRAS Q61R mutation
]
response = requests.post(
f"{BASE}/immunology/mhc-binding",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"peptides": peptides,
"alleles": hla_alleles,
"prediction_type": "binding_affinity"
}
)
results = response.json()["predictions"]
for pred in results:
status = "STRONG BINDER" if pred["ic50_nm"] < 500 else "weak/non-binder"
print(f"{pred['peptide']} + {pred['allele']}: "
f"IC50 = {pred['ic50_nm']:.0f} nM ({status})")A peptide with predicted IC50 below 500 nM is considered a strong binder – meaning it will be effectively presented on the cell surface. Below 50 nM is a very strong binder. For Paul's vaccine, we want only the strongest binders across his HLA alleles.
Step 3: Select the Best Neoantigen Candidates
MHC binding alone is necessary but not sufficient. The neoantigen pipeline considers additional factors to rank candidates:
- Binding affinity – Strong MHC binding ensures the peptide is displayed on the cell surface
- Expression level – The mutated gene must be actively transcribed in the tumor. A mutation in a silent gene produces no target.
- Clonality – Mutations present in all tumor cells (clonal) are better targets than those in only a subpopulation (subclonal)
- Self-similarity – The neoantigen should be sufficiently different from normal peptides to avoid autoimmune responses
- Processing likelihood – The peptide must be generated by the proteasome and transported by TAP into the endoplasmic reticulum
import requests
API_KEY = "sk-sci-your-api-key"
BASE = "https://api.scirouter.ai/v1"
response = requests.post(
f"{BASE}/immunology/neoantigen-pipeline",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"mutations": [
{"gene": "BRAF", "mutation": "V600E", "vaf": 0.45},
{"gene": "TP53", "mutation": "R248W", "vaf": 0.38},
{"gene": "CDK4", "mutation": "R24C", "vaf": 0.52},
{"gene": "NRAS", "mutation": "Q61R", "vaf": 0.41},
{"gene": "PTEN", "mutation": "R130Q", "vaf": 0.29},
],
"hla_alleles": ["HLA-A*02:01", "HLA-A*24:02",
"HLA-B*07:02", "HLA-B*44:02"],
"max_candidates": 20,
"min_binding_affinity_nm": 500,
"include_processing_score": True
}
)
pipeline = response.json()
print(f"Total mutations analyzed: {pipeline['mutations_analyzed']}")
print(f"Peptides generated: {pipeline['peptides_screened']}")
print(f"Strong MHC binders: {pipeline['strong_binders']}")
print(f"Final candidates: {len(pipeline['selected_neoantigens'])}")
for neo in pipeline["selected_neoantigens"][:5]:
print(f" {neo['peptide']} | Gene: {neo['gene']} | "
f"IC50: {neo['best_ic50_nm']:.0f} nM | "
f"Score: {neo['composite_score']:.2f}")The pipeline narrows hundreds of mutations down to 10–20 high-confidence neoantigen candidates. For Paul, the algorithm selects 15 peptides across 8 mutated genes, each predicted to bind strongly to at least one of his HLA alleles.
Step 4: Design the mRNA Construct
With neoantigen candidates selected, the next step is engineering the mRNA molecule that will encode them. This is not as simple as stringing peptide sequences together. The mRNA construct must be carefully designed for:
- Polyepitope architecture – Multiple neoantigens are encoded in a single mRNA, separated by linker sequences that ensure proper processing
- Codon optimization – Synonymous codons are chosen to maximize translation efficiency in human cells
- mRNA stability – GC content and secondary structure are optimized to extend the half-life of the mRNA molecule
- Immune modulation – Modified nucleosides (like N1-methylpseudouridine, used in COVID vaccines) reduce innate immune detection of the mRNA itself
import requests
API_KEY = "sk-sci-your-api-key"
BASE = "https://api.scirouter.ai/v1"
# Selected neoantigens from the pipeline
selected_peptides = [
"YLQPRTFLL", "KQSSKALQR", "RMFPNAPYL",
"FLWGPRALV", "GILGFVFTL", "SLLMWITQC",
"KTWGQYWQV", "RQKISTINH", "ALWGPDPAAA",
"YLEPGPVTA"
]
response = requests.post(
f"{BASE}/vaccine/mrna-design",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"epitopes": selected_peptides,
"linker_type": "AAY", # Proteasomal cleavage linker
"codon_optimization": "human",
"five_prime_utr": "kozak_optimized",
"three_prime_utr": "beta_globin",
"poly_a_length": 120,
"modified_nucleosides": True, # N1-methylpseudouridine
"optimize_gc_content": True,
"target_gc_range": [0.45, 0.55]
}
)
design = response.json()
print(f"mRNA length: {design['mrna_length']} nt")
print(f"GC content: {design['gc_content']:.1%}")
print(f"Predicted half-life: {design['predicted_half_life_hours']:.1f} hours")
print(f"Codon adaptation index: {design['cai_score']:.3f}")
print(f"Number of epitopes encoded: {design['epitope_count']}")
print(f"Estimated protein expression: {design['expression_score']}/10")
# The full mRNA sequence (truncated for display)
print(f"5' UTR + CDS + 3' UTR: {design['mrna_sequence'][:80]}...")Step 5: Manufacturing and Administration
The optimized mRNA sequence is sent to a GMP manufacturing facility. The mRNA is synthesized via in vitro transcription, encapsulated in lipid nanoparticles (LNPs) for delivery, and quality-tested. For Paul, this process takes approximately three weeks.
Paul receives his vaccine as a series of intramuscular injections, combined with a checkpoint inhibitor (pembrolizumab) that removes the "brakes" on his immune system. The mRNA enters his cells, which produce the neoantigen proteins and display them on MHC molecules. His T cells learn to recognize these neoantigens as foreign, then patrol his body searching for any remaining melanoma cells displaying the same markers.
Where AI Makes the Difference
Every step of Paul's vaccine pipeline either depends on or is dramatically accelerated by AI:
- Mutation calling – AI-based variant callers achieve higher sensitivity for low-frequency mutations that older tools miss
- MHC binding prediction – Deep learning models predict binding affinity across thousands of HLA alleles with accuracy approaching wet-lab assays
- Neoantigen ranking – Multi-objective optimization balances binding, expression, clonality, and safety to select the best candidates from hundreds
- Codon optimization – AI considers dozens of competing objectives simultaneously – translation efficiency, mRNA stability, GC content, avoidance of splice sites – where a human designer could balance perhaps three
- Manufacturing optimization – ML models predict yield and purity for the in vitro transcription reaction, reducing manufacturing failures
Without AI, the computational phase of vaccine design takes 2–3 weeks with a team of bioinformaticians. With the pipeline described here, it takes hours. In a disease where every week matters, this acceleration can be the difference between treating cancer while it is still localized and treating it after it has metastasized.
The Full Pipeline in Code
Here is the complete orchestration – from mutations to mRNA sequence – in a single script:
import requests
API_KEY = "sk-sci-your-api-key"
BASE = "https://api.scirouter.ai/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# --- Step 1: Input patient data ---
patient = {
"hla_alleles": ["HLA-A*02:01", "HLA-A*24:02",
"HLA-B*07:02", "HLA-B*44:02"],
"mutations": [
{"gene": "BRAF", "mutation": "V600E", "vaf": 0.45},
{"gene": "TP53", "mutation": "R248W", "vaf": 0.38},
{"gene": "CDK4", "mutation": "R24C", "vaf": 0.52},
{"gene": "NRAS", "mutation": "Q61R", "vaf": 0.41},
{"gene": "PTEN", "mutation": "R130Q", "vaf": 0.29},
]
}
# --- Step 2: Run neoantigen pipeline ---
neo_resp = requests.post(f"{BASE}/immunology/neoantigen-pipeline",
headers=HEADERS,
json={
"mutations": patient["mutations"],
"hla_alleles": patient["hla_alleles"],
"max_candidates": 20,
"min_binding_affinity_nm": 500,
}
)
neoantigens = neo_resp.json()["selected_neoantigens"]
epitopes = [n["peptide"] for n in neoantigens]
print(f"Selected {len(epitopes)} neoantigen epitopes")
# --- Step 3: Design mRNA construct ---
mrna_resp = requests.post(f"{BASE}/vaccine/mrna-design",
headers=HEADERS,
json={
"epitopes": epitopes,
"linker_type": "AAY",
"codon_optimization": "human",
"modified_nucleosides": True,
"optimize_gc_content": True,
}
)
design = mrna_resp.json()
print(f"mRNA construct: {design['mrna_length']} nt, "
f"GC: {design['gc_content']:.1%}, "
f"CAI: {design['cai_score']:.3f}")
print(f"Ready for manufacturing.")The Bigger Picture: Why This Matters
Paul's story is fictional, but it is built from real science. The clinical trials are real. The technology is real. The computational pipeline described here reflects actual methods used in vaccine design programs today.
What makes this moment different from previous waves of cancer immunotherapy hype is the convergence of three technologies: mRNA vaccine platforms proven at scale during COVID-19, checkpoint inhibitors that unleash the immune system, and AI that can design personalized vaccines fast enough to matter for an individual patient.
The challenge ahead is not whether the approach works – clinical data increasingly says it does – but whether it can scale. Each vaccine is a batch-of-one: unique to the patient, manufactured on demand, and delivered on a timeline measured in weeks. AI compresses the computational bottleneck. Manufacturing innovation must compress the rest.
For researchers and developers building the tools that make this pipeline faster, more accurate, and more accessible: SciRouter provides programmatic access to the computational components. From MHC binding prediction to neoantigen ranking to mRNA construct design, the pieces are available as API calls that can be integrated into any research pipeline or AI agent workflow.
For a guide to connecting these tools to AI agents that can reason about vaccine design autonomously, see our post on building an AI science agent with MCP.
Paul finishes his vaccine series. His immune system is now trained to recognize fifteen molecular signatures that exist only on his cancer cells. Whether any melanoma cells survived surgery, his T cells are watching. That is the promise of personalized cancer vaccines – and AI is making it real.