gnomad-genetics-mcp-server: get gene constraint
gnomad_get_gene_constraintFetch gnomAD loss-of-function constraint for a gene — pLI (probability of LoF intolerance; >0.9 intolerant), LOEUF (oe_lof_upper, the headline metric) plus its lower bound and gnomAD’s LOEUF percentile, observed/expected ratios for LoF, missense, and synonymous variation with 90% intervals for missense and synonymous, and the three Z-scores. This is the orthogonal axis to allele frequency: a loss-of-function variant matters far more in a gene intolerant to being broken. Accepts an HGNC symbol (PCSK9) or an Ensembl gene ID (ENSG00000169174). constraint_release names the release the metrics come from: gnomAD v4.1.2 for gnomad_r4, gnomad_r3, and their subsets (gnomAD publishes no v3 constraint), gnomAD v2.1.1 for gnomad_r2_1 and its subsets, and ExAC r0.3 for exac. gnomAD publishes no subset constraint, so a subset dataset reads its parent release’s table and echoes the subset as dataset. gnomAD recommends LOEUF < 0.45 to call a gene LoF-intolerant on v4.1.2 and LOEUF < 0.35 on v2.1.1; only v4.1.2 publishes the LOEUF percentile. ExAC r0.3 publishes only pLI, the Z-scores, and observed/expected counts, so on exac the ratios, their intervals, LOEUF, and the LOEUF percentile are null, constraint_flags is empty, and pLI is the intolerance measure. A mitochondrial gene (MT-CO1, MT-TL1) has no nuclear constraint: gnomAD’s mitochondrial constraint comes back in mitochondrial_constraint instead — kind protein or rna, the same table on every dataset, exac included — and is null for every nuclear gene; the nuclear LOEUF thresholds do not apply to it. Many genes have null constraint (sparse upstream) — null fields are reported as such, never fabricated. Echoes the effective dataset and reference build. Data source: gnomAD (Broad Institute) — https://gnomad.broadinstitute.org/
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"gene": "<gene>"
},
"name": "gnomad_get_gene_constraint"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| gene | Yes | Gene — HGNC symbol (e.g. PCSK9) or Ensembl gene ID (e.g. ENSG00000169174). Obtain a stable ID from ensembl_lookup_gene. | |
| dataset | No | gnomAD dataset, default gnomad_r4: gnomad_r4 and its subset gnomad_r4_non_ukb (GRCh38); gnomad_r3 and its subsets gnomad_r3_controls_and_biobanks, gnomad_r3_non_cancer, gnomad_r3_non_neuro, gnomad_r3_non_topmed, gnomad_r3_non_v2 (GRCh38); gnomad_r2_1 and its subsets gnomad_r2_1_controls, gnomad_r2_1_non_cancer, gnomad_r2_1_non_neuro, gnomad_r2_1_non_topmed (GRCh37); exac (GRCh37). A subset keeps only part of its parent release's samples (non_cancer leaves out cancer-study samples, non_ukb UK Biobank's) and can leave a callset unchanged: gnomad_r4_non_ukb genome counts equal gnomad_r4's, and gnomad_r2_1_non_cancer genome counts equal gnomad_r2_1's. No subset publishes joint data, and gnomAD publishes no subset coverage or constraint, so those come from the parent. Echoed in output. | |
| reference_genome | No | Reference build. Derived from dataset when omitted: GRCh38 for gnomad_r4, gnomad_r3, and their subsets; GRCh37 for gnomad_r2_1, its subsets, and exac. If supplied it must match the dataset, or the call is rejected. Keep aligned with ensembl coordinates. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pli | No | pLI — probability of LoF intolerance; >0.9 intolerant. Null when unavailable. | |
| error | No | Present when the call failed. Absent on success. | |
| lof_z | No | LoF constraint Z-score. Null when unavailable. | |
| mis_z | No | Missense constraint Z-score. Null when unavailable. | |
| syn_z | No | Synonymous constraint Z-score. Null when unavailable. | |
| oe_lof | No | Non-negative observed/expected LoF ratio. Null when unavailable. | |
| oe_mis | No | Observed/expected missense ratio. Null when unavailable. | |
| oe_syn | No | Observed/expected synonymous ratio. Null when unavailable. | |
| symbol | No | HGNC gene symbol. | |
| dataset | No | Effective gnomAD dataset. | |
| exp_lof | No | Non-negative expected LoF variant count. Null when unavailable. | |
| exp_mis | No | Non-negative expected missense count. Null when unavailable. | |
| exp_syn | No | Non-negative expected synonymous count. Null when unavailable. | |
| gene_id | No | Ensembl gene ID resolved for the gene. | |
| obs_lof | No | Non-negative observed LoF variant count. Null when unavailable. | |
| obs_mis | No | Non-negative observed missense count. Null when unavailable. | |
| obs_syn | No | Non-negative observed synonymous count. Null when unavailable. | |
| oe_lof_lower | No | LOEUF confidence-interval lower bound. Null when unavailable. | |
| oe_lof_upper | No | LOEUF (oe_lof_upper) — the headline intolerance metric; gnomAD recommends < 0.45 on v4.1.2 and < 0.35 on v2.1.1 to call a gene LoF-intolerant. Null when unavailable, and always null on exac. | |
| oe_mis_lower | No | Lower bound of the 90% confidence interval around oe_mis. Null when unavailable, and always null on exac. | |
| oe_mis_upper | No | Upper bound of the 90% confidence interval around oe_mis. Null when unavailable, and always null on exac. | |
| oe_syn_lower | No | Lower bound of the 90% confidence interval around oe_syn. Null when unavailable, and always null on exac. | |
| oe_syn_upper | No | Upper bound of the 90% confidence interval around oe_syn. Null when unavailable, and always null on exac. | |
| constraint_flags | No | Caveat flags gnomAD attaches to the gene’s constraint (e.g. no_exp_lof, mis_too_many, syn_outlier); empty when none, and always empty on exac, where ExAC publishes no flags. | |
| reference_genome | No | Effective reference build. | |
| oe_lof_percentile | No | gnomAD’s LOEUF percentile — the percentile bin the gene’s LOEUF falls in among gnomAD v4.1.2’s MANE Select transcripts, an integer from 0 to 100; lower is more constrained (KMT2A is 0, FLG is 98). Only gnomAD v4.1.2 publishes it, so it is null on gnomad_r2_1, its subsets, and exac, and wherever LOEUF is null. | |
| constraint_release | No | Constraint release the metrics come from: gnomAD v4.1.2 for gnomad_r4, gnomad_r3, and their subsets (gnomAD publishes no v3 constraint, so gnomad_r3 serves the GRCh38 table), gnomAD v2.1.1 for gnomad_r2_1 and its subsets, ExAC r0.3 for exac. A subset reads its parent release’s table, since gnomAD publishes no subset constraint. It labels the nuclear tables only, never mitochondrial_constraint. | |
| mitochondrial_constraint | No | gnomAD’s mitochondrial gene constraint, computed from 56,434 gnomAD v4.1 genomes: present for every mitochondrial gene and null for a nuclear gene, whose nuclear fields carry its constraint instead. kind "protein" carries observed, expected, observed/expected, and its 90% interval for stop-gain (lof; splice variants do not apply in mtDNA), missense (mis), and synonymous (syn) SNVs; kind "rna" (a tRNA or rRNA gene) carries one set over all SNVs. Observed and expected are sums of maximum heteroplasmy over every possible SNV, not variant counts, and the intervals come from a beta distribution, so the nuclear LOEUF thresholds do not apply; gnomAD reads the upper bound (OEUF) as the conservative measure, lower meaning stronger selection. The same table on every dataset, exac included; constraint_release does not label it. |