What Are Nanobodies?
In 1993, researchers at the Vrije Universiteit Brussel made a surprising discovery: camelids (camels, llamas, and alpacas) produce a class of antibodies that consist of only heavy chains – no light chains at all. The variable antigen-binding domain of these heavy-chain-only antibodies, called VHH or nanobodies, turned out to be remarkably small (12 to 15 kDa compared to 150 kDa for a full IgG), remarkably stable, and remarkably effective at binding targets.
Three decades later, nanobodies have become one of the most exciting modalities in biotechnology. Caplacizumab, the first approved nanobody therapeutic, treats thrombotic thrombocytopenic purpura. Dozens more are in clinical trials for cancer, inflammation, and infectious diseases. In research, nanobodies serve as crystallization chaperones, intracellular probes, and biosensor components. Their simplicity – a single protein domain that can be engineered, expressed, and manufactured with far less complexity than conventional antibodies – makes them ideal candidates for computational design.
Nanobody Structure: The VHH Domain
A nanobody is a single immunoglobulin variable domain, approximately 120 to 130 amino acids long. It adopts the classic immunoglobulin fold: two beta-sheets packed against each other, stabilized by a conserved disulfide bond. Three CDR loops (CDR-H1, CDR-H2, CDR-H3) extend from one end of the domain and form the antigen-binding surface.
Key Structural Differences from Conventional VH Domains
- Extended CDR-H3: Nanobody CDR-H3 loops are typically longer than those in conventional antibodies (often 15 to 25 residues versus 8 to 16). This extended loop compensates for the absence of a light chain by providing a larger binding surface.
- Hallmark framework mutations: Four key positions in the framework 2 region (positions 37, 44, 45, and 47 in Kabat numbering) carry hydrophilic substitutions that would normally form the VH-VL interface. These mutations make nanobodies soluble as isolated domains.
- Additional disulfide bonds: Many nanobodies have an extra disulfide bond between CDR-H3 and framework 2, which stabilizes the extended CDR-H3 loop and compensates for the missing light chain support.
- Convex paratope: The binding surface of nanobodies tends to be more convex than that of conventional antibodies, allowing them to insert into concave epitopes like enzyme active sites and receptor binding pockets.
Advantages of Nanobodies
The small size and single-domain architecture of nanobodies confer several practical advantages that make them attractive for both therapeutic and research applications:
Biophysical Properties
- Thermal stability: Many nanobodies retain function after heating to 60 to 80 degrees Celsius. Some can refold after complete thermal denaturation. This stability enables formulations that conventional antibodies cannot survive.
- Chemical resistance: Nanobodies tolerate pH extremes (pH 2 to 11), detergents, and organic solvents better than conventional antibodies. This is valuable for diagnostic and industrial applications.
- Tissue penetration: At 15 kDa, nanobodies diffuse rapidly into dense tissues like solid tumors. Conventional IgG antibodies (150 kDa) penetrate solid tumors poorly.
- Blood-brain barrier: Certain nanobodies can cross the blood-brain barrier, opening possibilities for CNS targets that are inaccessible to full-size antibodies.
Production Advantages
- E. coli expression: Nanobodies fold correctly in the bacterial periplasm. No mammalian cell culture (CHO, HEK293) required. This dramatically reduces production cost and timelines.
- Yeast expression: Pichia pastoris can secrete nanobodies at gram-per-liter titers, enabling scalable manufacturing.
- No chain pairing: Conventional antibodies require correct heavy-light chain pairing. Nanobodies are single chains, eliminating this complexity.
- Easy multimerization: Nanobodies can be genetically fused into bivalent, bispecific, or multivalent constructs using simple peptide linkers.
Designing Nanobodies with AI: The Workflow
Computational nanobody design follows the same fold-design-validate loop as conventional antibody engineering, with adjustments for the single-domain architecture. The SciRouter platform provides all three steps through a unified API:
- Step 1 – Fold: Predict the nanobody 3D structure from sequence using ImmuneBuilder in nanobody mode
- Step 2 – Design: Generate new CDR sequences using AntiFold conditioned on the structure
- Step 3 – Validate: Re-fold designed sequences to check structural integrity
Getting Started
You need Python 3.8+ and a SciRouter API key. Sign up at scirouter.ai/register for 500 free credits per month.
pip install scirouterexport SCIROUTER_API_KEY="sk-sci-your-api-key-here"Step 1: Predict Nanobody Structure
Start with a nanobody sequence. Here we use a well-characterized anti-lysozyme VHH (cAbLys3) as our starting scaffold:
from scirouter import SciRouter
client = SciRouter()
# Anti-lysozyme nanobody cAbLys3
nanobody_seq = (
"QVQLVESGGGLVQAGGSLRLSCAASGRTFSSYAMGWFRQAPGKEREFVAAINWSSGSTYYADSVKG"
"RFTISRDNAKNTVYLQMNSLKPEDTAVYYCAADSTIYASYYECGHGLSTGGYDYWGQGTQVTVSS"
)
# Fold in nanobody mode (single domain, no light chain)
structure = client.antibodies.fold(
heavy_chain=nanobody_seq,
mode="nanobody",
)
print(f"Structure predicted. Mean pLDDT: {structure.mean_plddt:.1f}")
print(f"CDR-H3 region: well-modeled" if structure.mean_plddt > 75 else "CDR-H3 region: check confidence")
# Save the structure
with open("nanobody_scaffold.pdb", "w") as f:
f.write(structure.pdb)
print("Saved to nanobody_scaffold.pdb")mode="nanobody" parameter tells ImmuneBuilder to use its VHH-specific prediction module. This handles the extended CDR-H3 loops and framework 2 hydrophilic mutations that distinguish nanobodies from conventional VH domains. Always use nanobody mode for VHH sequences – the default paired mode will produce incorrect results.Step 2: Design CDR Variants with AntiFold
With the nanobody structure in hand, use AntiFold to design new CDR sequences. Because nanobodies have only three CDR loops (versus six in conventional antibodies), you can efficiently explore the full binding surface:
# Design CDR-H3 variants (primary binding determinant)
h3_designs = client.antibodies.design(
pdb=structure.pdb,
num_sequences=15,
regions=["CDR-H3"],
temperature=0.2,
)
print(f"Generated {len(h3_designs.sequences)} CDR-H3 variants:\n")
for i, seq in enumerate(h3_designs.sequences[:5]):
print(f"Variant {i+1}: CDR-H3={seq.cdr_h3}")
print(f" Recovery: {seq.sequence_recovery:.1%}, Log-LL: {seq.log_likelihood:.2f}")
print()
# Design all three CDRs simultaneously
all_cdr_designs = client.antibodies.design(
pdb=structure.pdb,
num_sequences=20,
regions=["CDR-H1", "CDR-H2", "CDR-H3"],
temperature=0.15,
)
print(f"\nGenerated {len(all_cdr_designs.sequences)} full-CDR variants:\n")
for i, seq in enumerate(all_cdr_designs.sequences[:5]):
print(f"Variant {i+1}:")
print(f" H1={seq.cdr_h1} H2={seq.cdr_h2} H3={seq.cdr_h3}")
print(f" Log-LL: {seq.log_likelihood:.2f}")Step 3: Validate Designs by Re-Folding
Re-fold each designed nanobody variant to verify structural integrity. This step is critical because not all sequences that AntiFold generates will fold well – some may destabilize the framework or create steric clashes in the CDR loops:
# Validate top candidates by re-folding
ranked = sorted(h3_designs.sequences, key=lambda s: s.log_likelihood, reverse=True)
validated = []
for i, design in enumerate(ranked[:8]):
val = client.antibodies.fold(
heavy_chain=design.full_heavy_chain,
mode="nanobody",
)
passed = val.mean_plddt >= 75
validated.append({
"variant": i + 1,
"cdr_h3": design.cdr_h3,
"log_likelihood": design.log_likelihood,
"plddt": val.mean_plddt,
"passed": passed,
})
status = "PASS" if passed else "FAIL"
print(f"Variant {i+1}: pLDDT={val.mean_plddt:.1f} [{status}] CDR-H3={design.cdr_h3}")
if passed:
with open(f"nanobody_v{i+1}.pdb", "w") as f:
f.write(val.pdb)
passed_count = sum(1 for v in validated if v["passed"])
print(f"\n{passed_count}/{len(validated)} variants passed structural validation")Using ESMFold as a Complementary Validation
Because nanobodies are single-chain proteins, you can also validate them with ESMFold as an independent structural check. If both ImmuneBuilder and ESMFold predict high-confidence structures for a design, that is a strong signal of good foldability:
# Cross-validate the top nanobody design with ESMFold
top_design = max(h3_designs.sequences, key=lambda s: s.log_likelihood)
esm_result = client.proteins.fold(
sequence=top_design.full_heavy_chain,
)
print(f"ImmuneBuilder pLDDT: {validated[0]['plddt']:.1f}")
print(f"ESMFold pLDDT: {esm_result.mean_plddt:.1f}")
if esm_result.mean_plddt > 80 and validated[0]["plddt"] > 75:
print("Both models agree: high-confidence structure")
else:
print("Models disagree: investigate CDR region confidence")Complete Nanobody Design Pipeline
Here is the full end-to-end script that takes a nanobody sequence through structure prediction, CDR design, validation, and ranking:
import json
from scirouter import SciRouter
from scirouter.exceptions import SciRouterError
client = SciRouter()
# Input: anti-GFP nanobody (LaG16)
nanobody_seq = (
"QVQLVESGGGLVQPGGSLRLSCAASGFTFSSYAMSWVRQAPGKGLEWVSAISGSGGSTYYADSVKG"
"RFTISRDNSKNTLYLQMNSLRAEDTAVYYCAKDRLSITIRPRYYGLDVWGQGTLVTVSS"
)
# Step 1: Fold
print("=== Step 1: Fold nanobody ===")
try:
structure = client.antibodies.fold(
heavy_chain=nanobody_seq,
mode="nanobody",
)
except SciRouterError as e:
print(f"Folding failed: {e}")
raise
print(f"Folded. pLDDT: {structure.mean_plddt:.1f}")
# Step 2: Design CDRs
print("\n=== Step 2: Design CDR variants ===")
designs = client.antibodies.design(
pdb=structure.pdb,
num_sequences=20,
regions=["CDR-H1", "CDR-H2", "CDR-H3"],
temperature=0.2,
)
print(f"Generated {len(designs.sequences)} variants")
# Step 3: Validate top candidates
print("\n=== Step 3: Validate top 10 ===")
ranked = sorted(designs.sequences, key=lambda s: s.log_likelihood, reverse=True)[:10]
results = []
for i, design in enumerate(ranked):
val = client.antibodies.fold(
heavy_chain=design.full_heavy_chain,
mode="nanobody",
)
passed = val.mean_plddt >= 75
results.append({
"variant": i + 1,
"cdr_h1": design.cdr_h1,
"cdr_h2": design.cdr_h2,
"cdr_h3": design.cdr_h3,
"log_likelihood": round(design.log_likelihood, 3),
"plddt": round(val.mean_plddt, 1),
"passed": passed,
})
status = "PASS" if passed else "FAIL"
print(f" V{i+1}: pLDDT={val.mean_plddt:.1f} [{status}]")
if passed:
with open(f"nanobody_design_{i+1}.pdb", "w") as f:
f.write(val.pdb)
# Save results
with open("nanobody_designs.json", "w") as f:
json.dump(results, f, indent=2)
passed_count = sum(1 for r in results if r["passed"])
print(f"\nDone. {passed_count}/{len(results)} passed validation.")
print("Results saved to nanobody_designs.json")Nanobody Applications and Design Considerations
Diagnostics
Nanobodies are widely used in rapid diagnostic tests and biosensors. Their thermal stability allows storage without cold chain, which is critical for point-of-care diagnostics in resource-limited settings. When designing nanobodies for diagnostics, prioritize thermal stability by selecting designs with high pLDDT scores and conservative framework mutations.
Therapeutics
For therapeutic nanobodies, half-life extension is a key design consideration. Unmodified nanobodies are cleared rapidly by the kidneys (half-life of 1 to 2 hours) due to their small size. Common strategies include fusion to an anti-albumin nanobody, PEGylation, or Fc fusion. When designing CDRs for therapeutic nanobodies, ensure your designs do not introduce immunogenic T-cell epitopes or post-translational modification sites.
Research Tools
Nanobodies serve as powerful research tools: chromobodies for live-cell imaging, intrabodies for disrupting protein-protein interactions, and crystallization chaperones for structural biology. For these applications, high binding affinity and specificity are paramount, and the fold-design-validate cycle can be run for multiple rounds to optimize CDR sequences.
Multivalent and Bispecific Constructs
One unique advantage of nanobodies is the ease of creating multivalent constructs by genetic fusion. Design individual nanobodies against different epitopes, then link them with flexible peptide linkers (typically Gly4Ser repeats). SciRouter can fold these fused constructs with ESMFold to verify that the linker does not disrupt individual domain folding.
Nanobody vs. Conventional Antibody: When to Choose What
- Choose nanobodies when: You need tissue penetration (solid tumors, BBB crossing), thermostable reagents, simple production (E. coli), intracellular targeting, or modular multispecific constructs.
- Choose conventional antibodies when: You need Fc effector functions (ADCC, CDC), long serum half-life without modification, or when regulatory precedent matters for your therapeutic area.
- Consider both when: You are early in discovery and want to evaluate multiple modalities. SciRouter's unified API lets you design both nanobodies and conventional antibodies through the same workflow.
Next Steps
You now have a complete workflow for designing nanobodies computationally. Use ImmuneBuilder in nanobody mode for structure prediction, AntiFold for CDR design, and ESMFold for cross-validation.
For more on CDR design methodology, see our detailed guide on CDR design with AntiFold. For conventional antibody design, see how to design antibodies programmatically with AI.
To run the full end-to-end pipeline with a visual interface, try the Antibody Design Studio on SciRouter. Sign up at scirouter.ai/register for 500 free credits and start designing nanobodies today.