HLA G groups and P groups, explained with examples
A G group is a set of HLA alleles that have identical nucleotide sequences across the exons encoding the peptide-binding domains. A P group is a set of alleles that encode the same protein sequence for those domains. Both exist so a laboratory can report an ambiguous typing with one short name instead of a long list.
The difference is DNA versus protein. G groups are the stricter of the two. In IPD-IMGT/HLA release 3.66.0 no G group spans two P groups, while 65 P groups contain more than one G group.
Which exons count
Both definitions use the same region, set out on the G group and P group pages at hla.alleles.org:
- Class I (HLA-A, -B, -C and the other class I genes): exons 2 and 3.
- Class II (DRB1, DQB1, DPB1 and the others): exon 2 only.
These are the exons that encode the peptide-binding groove, and they are the exons that many typing methods were designed to resolve. Everything outside them, including other exons, introns and untranslated regions, is ignored by the group definition.
How the names are written
A G group takes the first three fields of the lowest-numbered allele in the group and adds an upper-case G. It always has at least six digits, for example A*02:01:01G.
A P group takes the two-field name of the lowest-numbered allele in the group and adds an upper-case P. It always has at least four digits, for example A*02:01P or DPB1*04:01P.
Do not confuse these with expression suffixes. N, L, S, C, A and Q describe one allele. G and P turn a name into the name of a set. The suffixes guide covers the expression letters.
How big are they?
Bigger than most people expect. Checked against IPD-IMGT/HLA release 3.66.0:
| Name | What it is | Members |
|---|---|---|
A*02:01:01G | G group | 554 |
A*02:01P | P group | 697 |
A*02:01 | Two-field name | 519 |
DPB1*04:01P | P group | 471 |
Notice that the G group and the two-field name A*02:01 are not the same set. A G group is defined by exon sequence, and alleles with different second fields can share exons 2 and 3 exactly: when the 2010 nomenclature update introduced G codes, its worked example of A*02:01:01G included A*02:09, A*02:66 and A*02:75 alongside the A*02:01 alleles. Equally, an A*02:01 allele with a difference in exon 2 or 3 at the nucleotide level falls outside A*02:01:01G.
The P group is larger again, because it only asks whether the encoded peptide-binding domains are identical. Synonymous nucleotide differences inside exons 2 and 3 do not split a P group.
Why a G group can contain null alleles
This is the property that catches people out. Because G groups compare only exons 2 and 3 (or exon 2), an allele with a stop codon or a splice defect elsewhere can share the group with fully expressed alleles.
The 2010 update's example of A*02:01:01G included two null alleles, A*02:43N and A*02:83N. Both are still in A*02:01:01G in release 3.66.0. Likewise A*24:09N sits in A*24:02:01G.
P groups behave differently. They are defined on protein sequence, and a null allele has no normal expressed protein, so in release 3.66.0 A*24:09N, A*02:43N and A*02:83N have no P group at all.
The practical consequence: a typing reported at G-group resolution has not excluded the null alleles in that group. Whether that matters depends on the use, and in donor matching it can.
Unsequenced regions
Many older alleles were never sequenced across the whole of exons 2 and 3. The G-group page explains how IPD-IMGT/HLA handles them:
- The algorithm includes alleles with unsequenced regions, filling the gap with the sequence of a closely related allele when there is high confidence the fill would prove correct.
- Where a gap cannot be inferred with confidence, the allele is left out of the analysis.
- The alleles involved and the alleles used to fill them are listed in the database's ambiguous-typing files.
The P-group page says alleles with partly unsequenced regions are still included, based on the protein sequence that is present, and that codons split across an exon border are excluded from the comparison.
So group membership is a statement about current knowledge. When a gap is later sequenced, an allele can move.
Groups change between releases
G and P groups are recomputed for every IPD-IMGT/HLA release. New alleles join existing groups, modified sequences can move an allele, and after a deletion a G group may be left with a single member. The G-group page says such a group is retained and may grow again later.
Two rules follow:
- Record the release with any group-level result.
A*02:01:01Gin release 3.40.0 and in release 3.66.0 are not the same list of alleles. - Expand groups against the release you are comparing in, not the release the report was issued in, if your question is about current alleles. The group files are
hla_nom_g.txtandhla_nom_p.txtin the IPD-IMGT/HLA repository.
Storing group-level typing
Most problems with G and P groups in data systems come from flattening:
- Do not truncate
A*02:01:01GtoA*02:01. The G group includes alleles with other second fields, so the two-field reduction claims more than the typing showed and can also drop members. - Do not drop the
GorP. Without it,A*02:01Preads as the two-field nameA*02:01, which is a different and smaller set. - Keep the original string. Store what the lab reported, the normalised form, and the release. Then a later re-analysis can expand the group again.
If you need to compare a group-level typing with an allele list, a GL String can carry the expansion explicitly; see the GL String guide.
What HLA-Verify does with group names
POST /v1/normalize accepts G and P group names as reported typings. For A*02:01:01G it returns the two-field name it is written under, A*02:01, with the flag g_group_name, so a pipeline knows the input was a group and not an allele. DPB1*04:01P comes back with p_group_name. GET /v1/allele/A*02:01:01G returns the group type, the member count and a sample of members for the pinned release.
Frequently asked questions
What is the difference between a G group and a P group?
A G group requires identical nucleotide sequence in the exons encoding the peptide-binding domains. A P group requires only that those exons encode identical protein, so a P group can contain several G groups. Null alleles can be in a G group but are not in any P group.
Why does a G group name have three fields?
The rule is that a G group takes the first three fields of its lowest-numbered member and adds G, with at least six digits. A P group takes two fields and adds P, with at least four digits.
Can a G group include a null allele?
Yes. Null alleles that are identical in exons 2 and 3 (class I) or exon 2 (class II) to expressed alleles share their G group. A*02:01:01G includes A*02:43N and A*02:83N in release 3.66.0.
Do G and P groups change?
Yes. They are recalculated each release as alleles are added, modified or deleted, so always record the release a group was resolved against.
Sources
- https://hla.alleles.org/pages/p&g_groups/g_groups/
- https://hla.alleles.org/pages/p&g_groups/p_groups/
- https://hla.alleles.org/pages/nomenclature/nomenclature_update_april_2010/
- https://github.com/ANHIG/IMGTHLA/blob/Latest/README.md
HLA-Verify is a research-and-evaluation tool for nomenclature and reference-release validation. It is not a medical device and this guide is not clinical advice. Send allele names, never patient identifiers.