How CDR boundaries are defined: Chothia-derived HLT for generation, IMGT for reporting
A residue-level worked example and implementation contract for research, API, web, and mobile teams. The purpose is not to force two scientific coordinate systems to agree; it is to preserve exactly what each system means.
Generation asks “which structural residues may the model redesign?” Reporting asks “which residues does IMGT call CDRs in the final sequence?” They are different questions. Store both answers with their purpose and coordinate system; never replace one with the other.
H1 = GGSEYSYSTF — scheme missing
position 26 — coordinate system missing
IMGT mismatch — difference is not automatically an error
The branch is intentional. HLT remains provenance for what the generator was allowed to change. IMGT is recomputed from each final candidate sequence for annotation, comparison, and reporting.
Real sequence: h-NbBCII10 VHH
The official upstream RFantibody HLT example for the h-NbBCII10 framework name, used here as the canonical scientific fixture. Heavy/VHH chain, 127 residues.
One H/VHH chain with explicit H1/H2/H3 REMARK labels; this page's residue map comes from that exact file.
SHA-256 ab444bb19d8391b1b75decd0026e0d9f09affff5a702a6180edc990bbda3095e
A raw 3EAK PDB with chains A/B and zero HLT REMARK labels. It is used as a sequence source during fixed-CDR framework assembly, not as evidence of an HLT mask.
SHA-256 6aa99fa43e5d9da305a5f52f18b3cf48ad7c49c14c7a0faadb3e4fcadcbf9147
Production submits the name h-NbBCII10. The provider does not currently return its exact framework artifact/hash, so byte-level equivalence to the upstream fixture is unproven.
| CDR | Generation · HLT | Reporting · IMGT | Exact difference |
|---|---|---|---|
| H1 | GGSEYSYSTF raw 26–35 · 10 aa | GGSEYSYSTFS raw 26–36 · 11 aa | IMGT-only: S36 |
| H2 | ASMGGL raw 55–60 · 6 aa | IASMGGLT raw 54–61 · 8 aa | IMGT-only: I54, T61 |
| H3 | VRGYFMRLPSSHNFRY raw 102–117 · 16 aa | AAVRGYFMRLPSSHNFRY raw 100–117 · 18 aa | IMGT-only: A100, A101 |
REMARK PDBinfo-LABEL: 26 H1
REMARK PDBinfo-LABEL: 27 H1
...
REMARK PDBinfo-LABEL: 35 H1
REMARK PDBinfo-LABEL: 55 H2
...
REMARK PDBinfo-LABEL: 60 H2
REMARK PDBinfo-LABEL: 102 H3
...
REMARK PDBinfo-LABEL: 117 H3These labels are read from the exact upstream file; they are not inferred from the sequence in the client.
H1 raw 26-36 GGSEYSYSTFS
H27 H28 H29 H30 H31 H32 H34 H35 H36 H37 H38
H2 raw 54-61 IASMGGLT
H56 H57 H58 H59 H62 H63 H64 H65
H3 raw 100-117 AAVRGYFMRLPSSHNFRY
H105 ... H111 H111A H111B H112C H112B
H112A H112 H113 H114 H115 H116 H117The gaps and insertion labels are retained because they are scientific addresses, not display decoration.
The official converter starts from Chothia-numbered residues, includes insertion-coded residues inside each CDR range, then removes insertion codes and renumbers the entire H/L/T structure with contiguous absolute indices.
A numbering address is not the same as a raw sequence index. IMGT preserves canonical alignment positions and insertion conventions, so some numbered positions are gaps and some residues receive insertion labels.
| Concept | Coordinate | Scientific meaning |
|---|---|---|
| Chothia numbering + CDR definition | chain-local residue addresses, including insertion codes | Defines the source loop ranges used by the official conversion script: H1 26–32, H2 52–56, H3 95–102. Insertions such as H31A or H100A are real residues inside those ranges. |
| HLT format | absolute 1-based residue indices in one specific PDB | A structure file plus explicit REMARK labels. RFantibody consumes the labels as a design mask. HLT is a file contract, not a fourth universal antibody numbering scheme. |
| IMGT numbering | standardized residue addresses, including gaps and insertion codes | Assigns stable scientific addresses to the final sequence. A contiguous raw sequence can map to non-contiguous IMGT numbers because alignment gaps are part of the scheme. |
| IMGT CDR definition | CDR1 27–38 · CDR2 56–65 · CDR3 105–117 | Selects the reporting regions after numbering. It describes the final candidate sequence and must not silently overwrite the generation mask. |
{
"candidate_id": "h-NbBCII10-reference",
"chain": "H",
"sequence_sha256": "af2df909…",
"boundaries": [
{
"purpose": "generation_mask",
"region": "H1",
"source_format": "rfantibody_hlt_pdb",
"source_definition": "chothia-derived",
"coordinate_system": "pdb_absolute_residue_index_1_based",
"residue_ids": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35],
"sequence": "GGSEYSYSTF"
},
{
"purpose": "sequence_annotation",
"region": "H1",
"scheme": "imgt",
"cdr_definition": "imgt",
"annotation_backend": "anarci",
"annotation_version": "2026.2.13.2",
"sequence_start_1_based": 26,
"sequence_end_1_based_inclusive": 36,
"numbered_positions": ["H27", "H28", "…", "H38"],
"sequence": "GGSEYSYSTFS"
}
]
}The schema deliberately repeats the sequence and coordinate metadata. Scientific records should be self-describing; clients must not reconstruct one coordinate system from another.
AHo, Kabat, Chothia, and IMGT can assign addresses and/or region definitions differently. Always record both scheme and cdr_definition.
Missing coordinates, non-antibody chains, chain order, insertion codes, and global PDB renumbering can break numeric equality.
Generation can change loop length and sequence. The final sequence requires fresh annotation; an input boundary is provenance, not a reusable answer.
A residue absent from a PDB may be unresolved rather than deleted. Do not infer sequence deletions from coordinate absence without source-sequence evidence.
Pin ANARCI/database versions and keep the raw numbered positions. Re-annotation can change labels even when the amino-acid sequence does not.
Correct numbering says nothing about affinity, folding, specificity, or function. Those require separate structural and experimental evidence.
Official code and HLT format description
Official conversion logic and CDR ranges
Exact PDB and REMARK labels used here
Official IMGT numbering reference
Dunbar & Deane · DOI 10.1093/bioinformatics/btv552
upstream commit 8fe311415754
ANARCI 2026.2.13.2 / AbNumber 0.4.4
captured 2026-08-12