Skip to main content
Glama

gnomad-genetics-mcp-server

gnomad-genetics-mcp-server: list gene variants

gnomad_list_gene_variants
Read-onlyIdempotent

List every gnomAD variant in a gene, transcript, or region with allele frequencies, filtering allele frequencies, zygosity counts, predicted consequences with LOFTEE's loss-of-function call, and QC status, optionally filtered to one consequence class (lof, missense, synonymous, other), a LOFTEE confidence (lof_confidence HC or LC), a maximum allele frequency, and/or a maximum filtering allele frequency (faf95_max, the value to test against a disease threshold such as ACMG/AMP BA1 or BS1). Pass annotations: true to add each row's HGVS c. and p. notation, LOFTEE filter and flags, and rsIDs. Every row carries its exome and genome QC filters and a qc_status; qc_filtered counts the matching variants that failed QC in every callset carrying them (often AC0, no high-quality carrier, at AF 0), which gnomAD's browser hides by default — read them as low-confidence, not observed variants, or pass pass_only to drop them. Each call returns one page: up to limit matching variants from offset, in gnomAD's genomic order, with total counting every match; pass next_offset as offset until it is null. gnomAD lists a target only whole, so each page re-fetches the whole target — page a large gene with filters and a large limit. At offset 0, a result too large to inline is also staged on a DataCanvas table named gene_variants holding every matching variant, returned as canvas_id and table_name — call gnomad_dataframe_describe for its columns, then gnomad_dataframe_query to rank by AF, count by consequence, or group across every row rather than one page. A result that fits inline stages no table unless canvas_id is supplied, and a page past offset 0 never stages. Supply exactly one of gene, transcript_id, or region. Echoes the resolved target, the row filters, and the effective dataset and build. Data source: gnomAD (Broad Institute) — https://gnomad.broadinstitute.org/

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "gnomad_list_gene_variants"
  }
}

Input Schema

NameRequiredDescriptionDefault
geneNoGene — HGNC symbol (e.g. PCSK9) or Ensembl gene ID (e.g. ENSG00000169174). Obtain a stable ID from ensembl_lookup_gene. Mitochondrial genes (e.g. MT-TL1) are not served. Mutually exclusive with transcript_id and region; blank means omitted.
limitNoMatching variants on this page. Default 25; a value above 3,000 is clamped to 3,000, with a notice.
max_afNoKeep only variants with allele frequency ≤ this value (0–1). Variants with null AF are always kept.
offsetNoZero-based position, among the variants the filters keep, of the first one on this page. Pass next_offset from the previous call to continue.
regionNoGenomic region chrom-start-stop (1-based inclusive, e.g. 1-55039447-55064852): chromosome 1–22, X, or Y with an optional chr prefix (mitochondrial regions are not served), a span (stop − start) under 2,500,000 bp, and at most ~30,000 variants. Mutually exclusive with gene and transcript_id.
datasetNognomAD 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.
max_fafNoKeep only variants whose filtering allele frequency (faf95_max) is ≤ this value (0–1) — the test against a disease threshold such as ACMG/AMP BA1 or BS1. Variants with a null faf95_max are always kept, and a notice counts them among total. gnomad_r3, its subsets, and exac list rows carry no FAF, so there it filters nothing and the notice says so.
canvas_idNoOptional canvas ID from a prior call, to reuse the same canvas. When supplied, a call at offset 0 always writes its result to the gene_variants table on that canvas, replacing (not appending to) the previous one, its columns included: the table takes this call's annotations shape — even when the result fits inline; a result with no variants removes the table. A page past offset 0 leaves the table as it was. Omit to stage on a fresh canvas only when the result is too large to inline.
pass_onlyNoKeep only variants that passed gnomAD QC in at least one callset carrying them (qc_status pass), with the counts gnomAD's browser table shows by default: a row without joint data (every dataset but gnomad_r4, gnomad_r4_non_ukb included) reads ac, an, af, homozygote_count, hemizygote_count, and faf95_max from its passing callsets only, and max_af and max_faf filter on those values; gnomad_r4 rows keep their joint counts. The drop follows consequence_class, lof_confidence, max_af, and max_faf, and qc_filtered still counts the dropped rows. Omit to list every matching variant with its QC columns and a QC-failed callset's counts included — a single-position region then never reads as absent because of QC.
annotationsNoAdd five columns describing each row's transcript_id after every default column, on the rows and in the staged gene_variants table: hgvsc, hgvsp, lof_filter, lof_flags, and rsids (pipe-joined). Omitted or false, the rows and the table carry none of them. A column toggle, not a filter: it keeps every row and filters does not echo it. It widens every row by about a quarter and every page's re-fetch of the target from gnomAD by about as much.
transcript_idNoEnsembl transcript ID (e.g. ENST00000302118). Mutually exclusive with gene and region; blank means omitted.
lof_confidenceNoKeep only variants whose lof — LOFTEE's call on the row's transcript_id — equals this: HC high-confidence or LC low-confidence. A row with lof null or OS matches neither. consequence_class lof reads the consequence term instead, so it keeps LoF terms LOFTEE did not call. Omit to keep every call.
reference_genomeNoReference 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.
consequence_classNoKeep only variants in this gnomAD consequence category, read from each row's consequence: lof (pLoF) is transcript_ablation, splice_acceptor_variant, splice_donor_variant, stop_gained, frameshift_variant; missense (missense / inframe indel) is missense_variant, stop_lost, start_lost, inframe_insertion, inframe_deletion; synonymous is synonymous_variant; other is every other term and a null consequence. Omit to return all classes.

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
totalNoTotal matching variants across every page, not just this one — counted after pass_only drops QC-failed rows when it is set, so it then excludes the qc_filtered rows.
noticeNoGuidance when no variants matched, when matching variants failed gnomAD QC (the qc_filtered count, and what pass_only dropped), when max_faf is set (how many variants in total it kept untested for a null faf95_max, or that the dataset carries no FAF on its rows), when limit was clamped to its cap, the next offset when no staged table holds the rest, an offset past the end, and — when a table was staged — its name with the next steps: gnomad_dataframe_describe, then gnomad_dataframe_query.
targetNoThe resolved target the rows describe: gene symbol or Ensembl gene ID, transcript ID, or region, as normalized for the lookup.
datasetNoEffective gnomAD dataset.
filtersNoThe row filters this call applied, each null when not set. offset, limit, canvas_id, and annotations are not filters.
previewNoThis page: up to limit matching variants from offset, in genomic order — the immediate answer.
spilledNoTrue when the matching variants exceeded the inline budget at offset 0, so this call staged every one of them in table_name; the page holds at most limit of them either way.
canvas_idNoCanvas holding table_name (or the canvas_id you supplied) — pass it to gnomad_dataframe_describe, then gnomad_dataframe_query. Empty when this call used no canvas: the result fit inline and no canvas_id was supplied, or the page started past offset 0.
truncatedNoTrue when matching variants remain past this page; continue with next_offset.
table_nameNoCanvas table this call staged (gene_variants), holding every matching variant — inspect it with gnomad_dataframe_describe, then query it with gnomad_dataframe_query. Empty when this call staged no table, as on every page past offset 0.
next_offsetNooffset for the next page; null when this page reaches the last matching variant.
qc_filteredNoMatching variants that failed gnomAD QC in every callset carrying them (qc_status filtered), counted over every match — not just this page — before pass_only drops them.
target_kindNoWhich target type was queried.
reference_genomeNoEffective reference build.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed27 schema fields changed
    • addedInput schema / properties / annotations
      Added value: +{
      +  "description": "Add five columns describing each row's transcript_id after every default column, on the rows and in the staged gene_variants table: hgvsc, hgvsp, lof_filter, lof_flags, and rsids (pipe-joined). Omitted or false, the rows and the table carry none of them. A column toggle, not a filter: it keeps every row and filters does not echo it. It widens every row by about a quarter and every page's re-fetch of the target from gnomAD by about as much.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / canvas_id / description
      Previous value: -"Optional canvas ID from a prior call, to reuse the same canvas. When supplied, a call at offset 0 always writes its result to the gene_variants table on that canvas, replacing (not appending to) the previous one — even when the result fits inline; a result with no variants removes the table. A page past offset 0 leaves the table as it was. Omit to stage on a fresh canvas only when the result is too large to inline."New value: +"Optional canvas ID from a prior call, to reuse the same canvas. When supplied, a call at offset 0 always writes its result to the gene_variants table on that canvas, replacing (not appending to) the previous one, its columns included: the table takes this call's annotations shape — even when the result fits inline; a result with no variants removes the table. A page past offset 0 leaves the table as it was. Omit to stage on a fresh canvas only when the result is too large to inline."
    • changedInput schema / properties / dataset / description
      Previous value: -"gnomAD dataset: gnomad_r4 (GRCh38, default), gnomad_r3 (GRCh38), gnomad_r2_1 (GRCh37), exac (GRCh37). Echoed in output."New value: +"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."
    • changedInput schema / properties / dataset / enum
      Previous value: -[
      -  "gnomad_r4",
      -  "gnomad_r3",
      -  "gnomad_r2_1",
      -  "exac"
      -]New value: +[
      +  "gnomad_r4",
      +  "gnomad_r4_non_ukb",
      +  "gnomad_r3",
      +  "gnomad_r3_controls_and_biobanks",
      +  "gnomad_r3_non_cancer",
      +  "gnomad_r3_non_neuro",
      +  "gnomad_r3_non_topmed",
      +  "gnomad_r3_non_v2",
      +  "gnomad_r2_1",
      +  "gnomad_r2_1_controls",
      +  "gnomad_r2_1_non_neuro",
      +  "gnomad_r2_1_non_cancer",
      +  "gnomad_r2_1_non_topmed",
      +  "exac"
      +]
    • addedInput schema / properties / lof_confidence
      Added value: +{
      +  "description": "Keep only variants whose lof — LOFTEE's call on the row's transcript_id — equals this: HC high-confidence or LC low-confidence. A row with lof null or OS matches neither. consequence_class lof reads the consequence term instead, so it keeps LoF terms LOFTEE did not call. Omit to keep every call.",
      +  "enum": [
      +    "HC",
      +    "LC"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / max_faf
      Added value: +{
      +  "description": "Keep only variants whose filtering allele frequency (faf95_max) is ≤ this value (0–1) — the test against a disease threshold such as ACMG/AMP BA1 or BS1. Variants with a null faf95_max are always kept, and a notice counts them among total. gnomad_r3, its subsets, and exac list rows carry no FAF, so there it filters nothing and the notice says so.",
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • changedInput schema / properties / pass_only / description
      Previous value: -"Keep only variants that passed gnomAD QC in at least one callset carrying them (qc_status pass), with the counts gnomAD's browser table shows by default: a row without joint data (gnomad_r3, gnomad_r2_1, exac) reads ac, an, af, and homozygote_count from its passing callsets only, and max_af filters on that af; gnomad_r4 rows keep their joint counts. The drop follows consequence_class and max_af, and qc_filtered still counts the dropped rows. Omit to list every matching variant with its QC columns and a QC-failed callset's counts included — a single-position region then never reads as absent because of QC."New value: +"Keep only variants that passed gnomAD QC in at least one callset carrying them (qc_status pass), with the counts gnomAD's browser table shows by default: a row without joint data (every dataset but gnomad_r4, gnomad_r4_non_ukb included) reads ac, an, af, homozygote_count, hemizygote_count, and faf95_max from its passing callsets only, and max_af and max_faf filter on those values; gnomad_r4 rows keep their joint counts. The drop follows consequence_class, lof_confidence, max_af, and max_faf, and qc_filtered still counts the dropped rows. Omit to list every matching variant with its QC columns and a QC-failed callset's counts included — a single-position region then never reads as absent because of QC."
    • changedInput schema / properties / reference_genome / description
      Previous value: -"Reference build. Derived from dataset when omitted (v4/v3=GRCh38, v2.1/ExAC=GRCh37). If supplied it must match the dataset, or the call is rejected. Keep aligned with ensembl coordinates."New value: +"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."
    • changedOutput schema / properties / filters / description
      Previous value: -"The row filters this call applied, each null when not set. offset, limit, and canvas_id are not filters."New value: +"The row filters this call applied, each null when not set. offset, limit, canvas_id, and annotations are not filters."
    • addedOutput schema / properties / filters / properties / lof_confidence
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "HC",
      +        "LC"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The lof_confidence filter; null when omitted."
      +}
    • addedOutput schema / properties / filters / properties / max_faf
      Added value: +{
      +  "description": "The max_faf filter; null when omitted.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / filters / required
      Previous value: -[
      -  "consequence_class",
      -  "max_af",
      -  "pass_only"
      -]New value: +[
      +  "consequence_class",
      +  "lof_confidence",
      +  "max_af",
      +  "max_faf",
      +  "pass_only"
      +]
    • changedOutput schema / properties / notice / description
      Previous value: -"Guidance when no variants matched, when matching variants failed gnomAD QC (the qc_filtered count, and what pass_only dropped), when limit was clamped to its cap, the next offset when no staged table holds the rest, an offset past the end, and — when a table was staged — its name with the next steps: gnomad_dataframe_describe, then gnomad_dataframe_query."New value: +"Guidance when no variants matched, when matching variants failed gnomAD QC (the qc_filtered count, and what pass_only dropped), when max_faf is set (how many variants in total it kept untested for a null faf95_max, or that the dataset carries no FAF on its rows), when limit was clamped to its cap, the next offset when no staged table holds the rest, an offset past the end, and — when a table was staged — its name with the next steps: gnomad_dataframe_describe, then gnomad_dataframe_query."
    • changedOutput schema / properties / preview / items / description
      Previous value: -"One gene-variant row — also the canvas table column set."New value: +"One gene-variant row — also the canvas table column set: the default columns, then, with annotations, hgvsc, hgvsp, lof_filter, lof_flags, and rsids."
    • changedOutput schema / properties / preview / items / properties / ac / description
      Previous value: -"Allele count — gnomAD's joint exome + genome count on gnomad_r4; on datasets without joint data the sum across carried callsets, or under pass_only across those that passed QC."New value: +"Allele count — gnomAD's joint exome + genome count on gnomad_r4; on every other dataset, gnomad_r4_non_ukb and the other subsets included (no joint data), the sum across carried callsets, or under pass_only across those that passed QC."
    • changedOutput schema / properties / preview / items / properties / an / description
      Previous value: -"Allele number. On gnomad_r4, gnomAD's joint AN over every callable sample in both callsets, including a callset that does not carry the variant or failed QC; on gnomad_r3, gnomad_r2_1, and exac (no joint data), the sum across carried callsets — a QC-failed one included, except under pass_only, which sums only the callsets that passed, as gnomAD's browser table does."New value: +"Allele number. On gnomad_r4, gnomAD's joint AN over every callable sample in both callsets, including a callset that does not carry the variant or failed QC; on every other dataset (no joint data — gnomad_r4_non_ukb and every other subset, gnomad_r3, gnomad_r2_1, exac), the sum across carried callsets — a QC-failed one included, except under pass_only, which sums only the callsets that passed, as gnomAD's browser table does."
    • changedOutput schema / properties / preview / items / properties / consequence_transcript / description
      Previous value: -"On a gene target, where transcript_id sits as gnomAD's gene table marks it (†): mane_select when it is the gene's MANE Select transcript; canonical when the gene has no MANE Select (none on gnomad_r2_1 or exac) and it is the canonical transcript; other when the consequence is on another transcript, so it may be milder or absent on the primary one — gnomad_get_variant's primary_transcript gives that term. Null on transcript and region targets, and for a gene with neither a MANE Select nor a canonical transcript."New value: +"On a gene target, where transcript_id sits as gnomAD's gene table marks it (†): mane_select when it is the gene's MANE Select transcript; canonical when the gene has no MANE Select (none on any GRCh37 dataset: gnomad_r2_1, its subsets, and exac) and it is the canonical transcript; other when the consequence is on another transcript, so it may be milder or absent on the primary one — gnomad_get_variant's primary_transcript gives that term. Null on transcript and region targets, and for a gene with neither a MANE Select nor a canonical transcript."
    • addedOutput schema / properties / preview / items / properties / faf95_max
      Added value: +{
      +  "description": "gnomAD's filtering allele frequency (GroupMax FAF95): the lower bound of the 95% confidence interval of a genetic-ancestry group's AF, from the group with the highest bound, over non-bottlenecked groups — the value max_faf filters on and the one to test against a disease threshold such as ACMG/AMP BA1 or BS1, which raw AF is not. From the same records as ac and an: gnomAD's joint value on gnomad_r4 (the same figure as gnomad_get_variant's faf95 there); elsewhere the highest a summed callset reports, gnomad_r4_non_ukb's and each gnomad_r2_1 subset's own. Null when gnomAD reports none, as for AC 0 and singleton variants, and on every row of gnomad_r3, its subsets, and exac, whose list rows carry no FAF.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / preview / items / properties / faf95_max_group
      Added value: +{
      +  "description": "Genetic-ancestry group faf95_max comes from (e.g. nfe); null when faf95_max is null or gnomAD names none.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / preview / items / properties / hemizygote_count
      Added value: +{
      +  "description": "Hemizygote count (0 off X/Y), from the same source as ac, an, and homozygote_count — under pass_only, the passing callsets of a row without joint data; null when none of them reports one.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / preview / items / properties / hgvsc
      Added value: +{
      +  "description": "HGVS coding or transcript notation on transcript_id (e.g. c.137G>T, c.*9G>T); null when gnomAD gives none. Present only when annotations is true; absent (not null) otherwise.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / preview / items / properties / hgvsp
      Added value: +{
      +  "description": "HGVS protein notation on transcript_id (e.g. p.Arg46Leu); null when gnomAD gives none, as for a UTR or intronic change. Present only when annotations is true; absent (not null) otherwise.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / preview / items / properties / lof
      Added value: +{
      +  "description": "LOFTEE's loss-of-function call on transcript_id — HC high-confidence, LC low-confidence, or OS other splice — the value lof_confidence filters on; null when LOFTEE made none. It describes transcript_id, which can be a minor isoform (consequence_transcript other), and is distinct from consequence_class lof, which gnomAD reads from the consequence term.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / preview / items / properties / lof_filter
      Added value: +{
      +  "description": "The LOFTEE filter that made the call on transcript_id low-confidence (e.g. END_TRUNC); null when none. Present only when annotations is true; absent (not null) otherwise.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / preview / items / properties / lof_flags
      Added value: +{
      +  "description": "LOFTEE's flags on the call on transcript_id, as gnomAD writes them (e.g. PHYLOCSF_WEAK, NAGNAG_SITE) — they can qualify an HC call too; null when none. Present only when annotations is true; absent (not null) otherwise.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / preview / items / properties / rsids
      Added value: +{
      +  "description": "dbSNP rsIDs, pipe-joined; empty when gnomAD lists none. gnomad_search_clinvar's table joins its rsids with semicolons. Present only when annotations is true; absent (not null) otherwise.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / preview / items / required
      Previous value: -[
      -  "variant_id",
      -  "af",
      -  "ac",
      -  "an",
      -  "consequence",
      -  "consequence_class",
      -  "homozygote_count",
      -  "source",
      -  "flags",
      -  "exome_filters",
      -  "genome_filters",
      -  "qc_status",
      -  "transcript_id",
      -  "consequence_transcript"
      -]New value: +[
      +  "variant_id",
      +  "af",
      +  "ac",
      +  "an",
      +  "consequence",
      +  "consequence_class",
      +  "homozygote_count",
      +  "hemizygote_count",
      +  "faf95_max",
      +  "faf95_max_group",
      +  "source",
      +  "flags",
      +  "exome_filters",
      +  "genome_filters",
      +  "qc_status",
      +  "transcript_id",
      +  "consequence_transcript",
      +  "lof"
      +]
  2. Changed25 schema fields changed
    • changedInput schema / properties / canvas_id / description
      Previous value: -"Optional canvas ID from a prior call, to reuse the same canvas. When supplied, this call always writes its result to the gene_variants table on that canvas, replacing (not appending to) the previous one — even when the result fits inline; a result with no variants removes the table. Omit to stage on a fresh canvas only when the result is too large to inline."New value: +"Optional canvas ID from a prior call, to reuse the same canvas. When supplied, a call at offset 0 always writes its result to the gene_variants table on that canvas, replacing (not appending to) the previous one — even when the result fits inline; a result with no variants removes the table. A page past offset 0 leaves the table as it was. Omit to stage on a fresh canvas only when the result is too large to inline."
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 25,
      +  "description": "Matching variants on this page. Default 25; a value above 3,000 is clamped to 3,000, with a notice.",
      +  "minimum": 1,
      +  "multipleOf": 1,
      +  "type": "number"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "description": "Zero-based position, among the variants the filters keep, of the first one on this page. Pass next_offset from the previous call to continue.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / properties / pass_only / description
      Previous value: -"Keep only variants that passed gnomAD QC in at least one callset carrying them (qc_status pass), as gnomAD's browser shows by default. Applied after consequence_class and max_af; qc_filtered still counts the dropped rows. Omit to list every matching variant with its QC columns — a single-position region then never reads as absent because of QC."New value: +"Keep only variants that passed gnomAD QC in at least one callset carrying them (qc_status pass), with the counts gnomAD's browser table shows by default: a row without joint data (gnomad_r3, gnomad_r2_1, exac) reads ac, an, af, and homozygote_count from its passing callsets only, and max_af filters on that af; gnomad_r4 rows keep their joint counts. The drop follows consequence_class and max_af, and qc_filtered still counts the dropped rows. Omit to list every matching variant with its QC columns and a QC-failed callset's counts included — a single-position region then never reads as absent because of QC."
    • changedInput schema / properties / region / anyOf
      Previous value: -[
      -  {
      -    "const": "",
      -    "type": "string"
      -  },
      -  {
      -    "description": "Genomic region chrom-start-stop (1-based inclusive, e.g. 13-32315474-32400266) on chromosome 1–22, X, or Y, optional chr prefix.",
      -    "pattern": "^(?:chr)?[0-9A-Z]+-\\d+-\\d+$",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "const": "",
      +    "type": "string"
      +  },
      +  {
      +    "description": "Genomic region chrom-start-stop (1-based inclusive, e.g. 1-55039447-55064852) on chromosome 1–22, X, or Y, optional chr prefix.",
      +    "pattern": "^(?:chr)?[0-9A-Z]+-\\d+-\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / region / description
      Previous value: -"Genomic region chrom-start-stop (1-based inclusive, e.g. 13-32315474-32400266): chromosome 1–22, X, or Y with an optional chr prefix (mitochondrial regions are not served), a span (stop − start) under 2,500,000 bp, and at most ~30,000 variants. Mutually exclusive with gene and transcript_id."New value: +"Genomic region chrom-start-stop (1-based inclusive, e.g. 1-55039447-55064852): chromosome 1–22, X, or Y with an optional chr prefix (mitochondrial regions are not served), a span (stop − start) under 2,500,000 bp, and at most ~30,000 variants. Mutually exclusive with gene and transcript_id."
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "not": {
      -      "required": [
      -        "error"
      -      ]
      -    },
      -    "required": [
      -      "preview",
      -      "canvas_id",
      -      "table_name",
      -      "spilled",
      -      "total",
      -      "qc_filtered",
      -      "dataset",
      -      "reference_genome"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "error"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "target",
      +      "target_kind",
      +      "filters",
      +      "preview",
      +      "canvas_id",
      +      "table_name",
      +      "spilled",
      +      "total",
      +      "truncated",
      +      "next_offset",
      +      "qc_filtered",
      +      "dataset",
      +      "reference_genome"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • changedOutput schema / properties / canvas_id / description
      Previous value: -"Canvas holding table_name (or the canvas_id you supplied) — pass it to gnomad_dataframe_describe, then gnomad_dataframe_query. Empty when this call used no canvas: the result fit inline and no canvas_id was supplied, or the canvas is disabled."New value: +"Canvas holding table_name (or the canvas_id you supplied) — pass it to gnomad_dataframe_describe, then gnomad_dataframe_query. Empty when this call used no canvas: the result fit inline and no canvas_id was supplied, or the page started past offset 0."
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `invalid_target`: Not exactly one of gene, transcript_id, or region was supplied. `incoherent_build`: reference_genome was supplied but does not match the dataset. `invalid_region`: The region names a chromosome outside 1–22, X, Y, or breaks the coordinate bounds. `region_too_large`: The region spans 2,500,000 bp or more, or holds more variants (~30,000) than gnomAD lists at once. `mitochondrial_unsupported`: The gene, transcript, or region is on the mitochondrial chromosome (M or MT). `graphql_error`: gnomAD rejected the variant-list query with a GraphQL error. `upstream_unavailable`: gnomAD stayed unavailable or throttled through every retry. `upstream_timeout`: gnomAD attempts timed out or the shared 45 s call budget expired. `upstream_access`: gnomAD refused the request (access denied). `invalid_upstream_response`: gnomAD kept answering with a response that failed validation. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_target`: Not exactly one of gene, transcript_id, or region was supplied. `incoherent_build`: reference_genome was supplied but does not match the dataset. `invalid_region`: The region names a chromosome outside 1–22, X, Y, or breaks the coordinate bounds. `region_too_large`: The region spans 2,500,000 bp or more, or holds more variants (~30,000) than gnomAD lists at once. `mitochondrial_unsupported`: The gene, transcript, or region is on the mitochondrial chromosome (M or MT). `gene_not_found`: gnomAD holds no gene matching the symbol or Ensembl ID in this build. `transcript_not_found`: gnomAD holds no transcript matching transcript_id in this build. `graphql_error`: gnomAD rejected the variant-list query with a GraphQL error. `upstream_unavailable`: gnomAD stayed unavailable or throttled through every retry. `upstream_timeout`: gnomAD attempts timed out or the shared 45 s call budget expired. `upstream_access`: gnomAD refused the request (access denied). `invalid_upstream_response`: gnomAD kept answering with a response that failed validation. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "invalid_target",
      -  "incoherent_build",
      -  "invalid_region",
      -  "region_too_large",
      -  "mitochondrial_unsupported",
      -  "graphql_error",
      -  "upstream_unavailable",
      -  "upstream_timeout",
      -  "upstream_access",
      -  "invalid_upstream_response"
      -]New value: +[
      +  "invalid_target",
      +  "incoherent_build",
      +  "invalid_region",
      +  "region_too_large",
      +  "mitochondrial_unsupported",
      +  "gene_not_found",
      +  "transcript_not_found",
      +  "graphql_error",
      +  "upstream_unavailable",
      +  "upstream_timeout",
      +  "upstream_access",
      +  "invalid_upstream_response"
      +]
    • addedOutput schema / properties / filters
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "The row filters this call applied, each null when not set. offset, limit, and canvas_id are not filters.",
      +  "properties": {
      +    "consequence_class": {
      +      "anyOf": [
      +        {
      +          "description": "gnomAD's category of consequence (the terms each holds are listed on the consequence_class filter): lof is pLoF, missense covers missense and inframe indels, start_lost, and stop_lost; other includes a null consequence.",
      +          "enum": [
      +            "lof",
      +            "missense",
      +            "synonymous",
      +            "other"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The consequence_class filter; null when omitted."
      +    },
      +    "max_af": {
      +      "description": "The max_af filter; null when omitted.",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "pass_only": {
      +      "anyOf": [
      +        {
      +          "const": true,
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "true when pass_only was set; null when omitted or false."
      +    }
      +  },
      +  "required": [
      +    "consequence_class",
      +    "max_af",
      +    "pass_only"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / next_offset
      Added value: +{
      +  "description": "offset for the next page; null when this page reaches the last matching variant.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / notice / description
      Previous value: -"Guidance when no variants matched, when matching variants failed gnomAD QC (the qc_filtered count, and what pass_only dropped), when the canvas is disabled and the preview is capped, and — when a table was staged — its name with the next steps: gnomad_dataframe_describe, then gnomad_dataframe_query."New value: +"Guidance when no variants matched, when matching variants failed gnomAD QC (the qc_filtered count, and what pass_only dropped), when limit was clamped to its cap, the next offset when no staged table holds the rest, an offset past the end, and — when a table was staged — its name with the next steps: gnomad_dataframe_describe, then gnomad_dataframe_query."
    • changedOutput schema / properties / preview / description
      Previous value: -"Inline preview rows — the immediate answer; every matching variant unless spilled."New value: +"This page: up to limit matching variants from offset, in genomic order — the immediate answer."
    • changedOutput schema / properties / preview / items / properties / ac / description
      Previous value: -"Allele count — gnomAD's joint exome + genome count on gnomad_r4, the sum across carried callsets on datasets without joint data."New value: +"Allele count — gnomAD's joint exome + genome count on gnomad_r4; on datasets without joint data the sum across carried callsets, or under pass_only across those that passed QC."
    • changedOutput schema / properties / preview / items / properties / af / description
      Previous value: -"Allele frequency, ac/an from the same source — the value max_af filters on; null when an is 0."New value: +"Allele frequency, ac/an from the same source — the value max_af filters on, so under pass_only a row without joint data reads its passing callsets; null when an is 0."
    • changedOutput schema / properties / preview / items / properties / an / description
      Previous value: -"Allele number. On gnomad_r4, gnomAD's joint AN over every callable sample in both callsets, including a callset that does not carry the variant; on gnomad_r3, gnomad_r2_1, and exac (no joint data), the sum across carried callsets."New value: +"Allele number. On gnomad_r4, gnomAD's joint AN over every callable sample in both callsets, including a callset that does not carry the variant or failed QC; on gnomad_r3, gnomad_r2_1, and exac (no joint data), the sum across carried callsets — a QC-failed one included, except under pass_only, which sums only the callsets that passed, as gnomAD's browser table does."
    • changedOutput schema / properties / preview / items / properties / homozygote_count / description
      Previous value: -"Homozygote count, from the same source as ac and an."New value: +"Homozygote count, from the same source as ac and an — under pass_only, the passing callsets of a row without joint data."
    • changedOutput schema / properties / qc_filtered / description
      Previous value: -"Matching variants that failed gnomAD QC in every callset carrying them (qc_status filtered), counted over every match — not just the preview — before pass_only drops them."New value: +"Matching variants that failed gnomAD QC in every callset carrying them (qc_status filtered), counted over every match — not just this page — before pass_only drops them."
    • changedOutput schema / properties / spilled / description
      Previous value: -"True when the result exceeded the inline preview budget, so the preview holds only the first rows and table_name holds them all."New value: +"True when the matching variants exceeded the inline budget at offset 0, so this call staged every one of them in table_name; the page holds at most limit of them either way."
    • changedOutput schema / properties / table_name / description
      Previous value: -"Canvas table this call staged (gene_variants), holding every matching variant — inspect it with gnomad_dataframe_describe, then query it with gnomad_dataframe_query. Empty when this call staged no table."New value: +"Canvas table this call staged (gene_variants), holding every matching variant — inspect it with gnomad_dataframe_describe, then query it with gnomad_dataframe_query. Empty when this call staged no table, as on every page past offset 0."
    • addedOutput schema / properties / target
      Added value: +{
      +  "description": "The resolved target the rows describe: gene symbol or Ensembl gene ID, transcript ID, or region, as normalized for the lookup.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / target_kind
      Added value: +{
      +  "description": "Which target type was queried.",
      +  "enum": [
      +    "gene",
      +    "transcript",
      +    "region"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / total / description
      Previous value: -"Total matching variants, including any beyond the preview — counted after pass_only drops QC-failed rows when it is set, so it then excludes the qc_filtered rows."New value: +"Total matching variants across every page, not just this one — counted after pass_only drops QC-failed rows when it is set, so it then excludes the qc_filtered rows."
    • addedOutput schema / properties / truncated
      Added value: +{
      +  "description": "True when matching variants remain past this page; continue with next_offset.",
      +  "type": "boolean"
      +}
  3. Changed18 schema fields changed
    • changedInput schema / properties / consequence_class / description
      Previous value: -"Keep only variants in this consequence class. Omit to return all classes."New value: +"Keep only variants in this gnomAD consequence category, read from each row's consequence: lof (pLoF) is transcript_ablation, splice_acceptor_variant, splice_donor_variant, stop_gained, frameshift_variant; missense (missense / inframe indel) is missense_variant, stop_lost, start_lost, inframe_insertion, inframe_deletion; synonymous is synonymous_variant; other is every other term and a null consequence. Omit to return all classes."
    • addedInput schema / properties / pass_only
      Added value: +{
      +  "description": "Keep only variants that passed gnomAD QC in at least one callset carrying them (qc_status pass), as gnomAD's browser shows by default. Applied after consequence_class and max_af; qc_filtered still counts the dropped rows. Omit to list every matching variant with its QC columns — a single-position region then never reads as absent because of QC.",
      +  "type": "boolean"
      +}
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "not": {
      -      "required": [
      -        "error"
      -      ]
      -    },
      -    "required": [
      -      "preview",
      -      "canvas_id",
      -      "table_name",
      -      "spilled",
      -      "total",
      -      "dataset",
      -      "reference_genome"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "error"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "preview",
      +      "canvas_id",
      +      "table_name",
      +      "spilled",
      +      "total",
      +      "qc_filtered",
      +      "dataset",
      +      "reference_genome"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • changedOutput schema / properties / notice / description
      Previous value: -"Guidance when no variants matched, when the canvas is disabled and the preview is capped, and — when a table was staged — its name with the next steps: gnomad_dataframe_describe, then gnomad_dataframe_query."New value: +"Guidance when no variants matched, when matching variants failed gnomAD QC (the qc_filtered count, and what pass_only dropped), when the canvas is disabled and the preview is capped, and — when a table was staged — its name with the next steps: gnomad_dataframe_describe, then gnomad_dataframe_query."
    • changedOutput schema / properties / preview / items / properties / ac / description
      Previous value: -"Allele count (joint across carried callsets)."New value: +"Allele count — gnomAD's joint exome + genome count on gnomad_r4, the sum across carried callsets on datasets without joint data."
    • changedOutput schema / properties / preview / items / properties / af / description
      Previous value: -"Allele frequency computed from joint allele counts; null when uncomputable."New value: +"Allele frequency, ac/an from the same source — the value max_af filters on; null when an is 0."
    • changedOutput schema / properties / preview / items / properties / an / description
      Previous value: -"Allele number (joint sum across carried callsets)."New value: +"Allele number. On gnomad_r4, gnomAD's joint AN over every callable sample in both callsets, including a callset that does not carry the variant; on gnomad_r3, gnomad_r2_1, and exac (no joint data), the sum across carried callsets."
    • changedOutput schema / properties / preview / items / properties / consequence / description
      Previous value: -"VEP consequence term; null when none."New value: +"VEP consequence term, as gnomAD's tables show it: the most severe in the gene on a gene target, the named transcript's term on a transcript target, the most severe across transcripts on a region target. It can sit on a non-primary isoform — see consequence_transcript. Null when none."
    • changedOutput schema / properties / preview / items / properties / consequence_class / description
      Previous value: -"Bucketed consequence class."New value: +"gnomAD's category of consequence (the terms each holds are listed on the consequence_class filter): lof is pLoF, missense covers missense and inframe indels, start_lost, and stop_lost; other includes a null consequence."
    • addedOutput schema / properties / preview / items / properties / consequence_transcript
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "mane_select",
      +        "canonical",
      +        "other"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "On a gene target, where transcript_id sits as gnomAD's gene table marks it (†): mane_select when it is the gene's MANE Select transcript; canonical when the gene has no MANE Select (none on gnomad_r2_1 or exac) and it is the canonical transcript; other when the consequence is on another transcript, so it may be milder or absent on the primary one — gnomad_get_variant's primary_transcript gives that term. Null on transcript and region targets, and for a gene with neither a MANE Select nor a canonical transcript."
      +}
    • addedOutput schema / properties / preview / items / properties / exome_filters
      Added value: +{
      +  "description": "QC filters gnomAD applied to the exome call, pipe-joined (e.g. AC0|AS_VQSR; the set varies by dataset, RF on gnomad_r2_1). Empty when the exome call passed QC; null when the exome callset does not carry the variant or gnomAD returned no filter list.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / preview / items / properties / genome_filters
      Added value: +{
      +  "description": "QC filters gnomAD applied to the genome call, pipe-joined (e.g. AC0|AS_VQSR; the set varies by dataset, RF on gnomad_r2_1). Empty when the genome call passed QC; null when the genome callset does not carry the variant or gnomAD returned no filter list.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / preview / items / properties / homozygote_count / description
      Previous value: -"Homozygote count (joint across callsets)."New value: +"Homozygote count, from the same source as ac and an."
    • addedOutput schema / properties / preview / items / properties / qc_status
      Added value: +{
      +  "description": "gnomAD's QC verdict, by its browser's rule: pass when at least one callset carrying the variant passed QC (an empty filters column); filtered when none did — gnomAD's browser hides these by default, and AC0 among the filters means no high-quality carrier.",
      +  "enum": [
      +    "pass",
      +    "filtered"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / preview / items / properties / transcript_id
      Added value: +{
      +  "description": "Ensembl transcript ID (unversioned) the consequence is on; null when gnomAD names none, as for an intergenic variant.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / preview / items / required
      Previous value: -[
      -  "variant_id",
      -  "af",
      -  "ac",
      -  "an",
      -  "consequence",
      -  "consequence_class",
      -  "homozygote_count",
      -  "source",
      -  "flags"
      -]New value: +[
      +  "variant_id",
      +  "af",
      +  "ac",
      +  "an",
      +  "consequence",
      +  "consequence_class",
      +  "homozygote_count",
      +  "source",
      +  "flags",
      +  "exome_filters",
      +  "genome_filters",
      +  "qc_status",
      +  "transcript_id",
      +  "consequence_transcript"
      +]
    • addedOutput schema / properties / qc_filtered
      Added value: +{
      +  "description": "Matching variants that failed gnomAD QC in every callset carrying them (qc_status filtered), counted over every match — not just the preview — before pass_only drops them.",
      +  "type": "number"
      +}
    • changedOutput schema / properties / total / description
      Previous value: -"Total matching variants, including any beyond the preview."New value: +"Total matching variants, including any beyond the preview — counted after pass_only drops QC-failed rows when it is set, so it then excludes the qc_filtered rows."
  4. Changed1 schema field changed
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `invalid_target`: Not exactly one of gene, transcript_id, or region was supplied. `incoherent_build`: reference_genome was supplied but does not match the dataset. `invalid_region`: The region names a chromosome outside 1–22, X, Y, or breaks the coordinate bounds. `region_too_large`: The region spans 2,500,000 bp or more, or holds more variants (~30,000) than gnomAD lists at once. `mitochondrial_unsupported`: The gene, transcript, or region is on the mitochondrial chromosome (M or MT). `graphql_error`: gnomAD rejected the variant-list query with a GraphQL error. `upstream_unavailable`: gnomAD stayed unavailable or throttled through every retry. `upstream_timeout`: Every attempt to reach gnomAD timed out. `upstream_access`: gnomAD refused the request (access denied). `invalid_upstream_response`: gnomAD kept answering with a response that failed validation. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_target`: Not exactly one of gene, transcript_id, or region was supplied. `incoherent_build`: reference_genome was supplied but does not match the dataset. `invalid_region`: The region names a chromosome outside 1–22, X, Y, or breaks the coordinate bounds. `region_too_large`: The region spans 2,500,000 bp or more, or holds more variants (~30,000) than gnomAD lists at once. `mitochondrial_unsupported`: The gene, transcript, or region is on the mitochondrial chromosome (M or MT). `graphql_error`: gnomAD rejected the variant-list query with a GraphQL error. `upstream_unavailable`: gnomAD stayed unavailable or throttled through every retry. `upstream_timeout`: gnomAD attempts timed out or the shared 45 s call budget expired. `upstream_access`: gnomAD refused the request (access denied). `invalid_upstream_response`: gnomAD kept answering with a response that failed validation. Other values are possible when a failure originates below the handler."
  5. Changed5 schema fields changed
    • changedInput schema / properties / gene / description
      Previous value: -"Gene — HGNC symbol (e.g. PCSK9) or Ensembl gene ID (e.g. ENSG00000169174). Obtain a stable ID from ensembl_lookup_gene. Mutually exclusive with transcript_id and region; blank means omitted."New value: +"Gene — HGNC symbol (e.g. PCSK9) or Ensembl gene ID (e.g. ENSG00000169174). Obtain a stable ID from ensembl_lookup_gene. Mitochondrial genes (e.g. MT-TL1) are not served. Mutually exclusive with transcript_id and region; blank means omitted."
    • changedInput schema / properties / region / anyOf
      Previous value: -[
      -  {
      -    "const": "",
      -    "type": "string"
      -  },
      -  {
      -    "description": "Genomic region chrom-start-stop (1-based inclusive, e.g. 13-32315474-32400266).",
      -    "pattern": "^[0-9XYM]+-\\d+-\\d+$",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "const": "",
      +    "type": "string"
      +  },
      +  {
      +    "description": "Genomic region chrom-start-stop (1-based inclusive, e.g. 13-32315474-32400266) on chromosome 1–22, X, or Y, optional chr prefix.",
      +    "pattern": "^(?:chr)?[0-9A-Z]+-\\d+-\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / region / description
      Previous value: -"Genomic region chrom-start-stop (1-based inclusive). Mutually exclusive with gene and transcript_id."New value: +"Genomic region chrom-start-stop (1-based inclusive, e.g. 13-32315474-32400266): chromosome 1–22, X, or Y with an optional chr prefix (mitochondrial regions are not served), a span (stop − start) under 2,500,000 bp, and at most ~30,000 variants. Mutually exclusive with gene and transcript_id."
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `invalid_target`: Not exactly one of gene, transcript_id, or region was supplied. `incoherent_build`: reference_genome was supplied but does not match the dataset. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_target`: Not exactly one of gene, transcript_id, or region was supplied. `incoherent_build`: reference_genome was supplied but does not match the dataset. `invalid_region`: The region names a chromosome outside 1–22, X, Y, or breaks the coordinate bounds. `region_too_large`: The region spans 2,500,000 bp or more, or holds more variants (~30,000) than gnomAD lists at once. `mitochondrial_unsupported`: The gene, transcript, or region is on the mitochondrial chromosome (M or MT). `graphql_error`: gnomAD rejected the variant-list query with a GraphQL error. `upstream_unavailable`: gnomAD stayed unavailable or throttled through every retry. `upstream_timeout`: Every attempt to reach gnomAD timed out. `upstream_access`: gnomAD refused the request (access denied). `invalid_upstream_response`: gnomAD kept answering with a response that failed validation. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "invalid_target",
      -  "incoherent_build"
      -]New value: +[
      +  "invalid_target",
      +  "incoherent_build",
      +  "invalid_region",
      +  "region_too_large",
      +  "mitochondrial_unsupported",
      +  "graphql_error",
      +  "upstream_unavailable",
      +  "upstream_timeout",
      +  "upstream_access",
      +  "invalid_upstream_response"
      +]
  6. Changed12 schema fields changed
    • changedInput schema / properties / canvas_id / description
      Previous value: -"Optional canvas ID from a prior call, to reuse the same canvas. Reusing it REPLACES (overwrites) the gene_variants table with this call's results — it does not append. Omit to start a fresh canvas; the response returns a new one."New value: +"Optional canvas ID from a prior call, to reuse the same canvas. When supplied, this call always writes its result to the gene_variants table on that canvas, replacing (not appending to) the previous one — even when the result fits inline; a result with no variants removes the table. Omit to stage on a fresh canvas only when the result is too large to inline."
    • addedInput schema / properties / gene / anyOf
      Added value: +[
      +  {
      +    "description": "Gene — HGNC symbol (e.g. PCSK9) or Ensembl gene ID (e.g. ENSG00000169174). Obtain a stable ID from ensembl_lookup_gene.",
      +    "minLength": 2,
      +    "type": "string"
      +  },
      +  {
      +    "description": "Blank — the gene is treated as omitted.",
      +    "maxLength": 0,
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / gene / description
      Previous value: -"Gene — HGNC symbol (e.g. PCSK9) or Ensembl gene ID (e.g. ENSG00000169174). Obtain a stable ID from ensembl_lookup_gene."New value: +"Gene — HGNC symbol (e.g. PCSK9) or Ensembl gene ID (e.g. ENSG00000169174). Obtain a stable ID from ensembl_lookup_gene. Mutually exclusive with transcript_id and region; blank means omitted."
    • removedInput schema / properties / gene / minLength
      Removed value: -2
    • removedInput schema / properties / gene / type
      Removed value: -"string"
    • changedInput schema / properties / transcript_id / description
      Previous value: -"Ensembl transcript ID (e.g. ENST00000302118). Mutually exclusive with gene and region."New value: +"Ensembl transcript ID (e.g. ENST00000302118). Mutually exclusive with gene and region; blank means omitted."
    • changedOutput schema / properties / canvas_id / description
      Previous value: -"Canvas ID — pass to gnomad_dataframe_query. Empty string when canvas is disabled."New value: +"Canvas holding table_name (or the canvas_id you supplied) — pass it to gnomad_dataframe_describe, then gnomad_dataframe_query. Empty when this call used no canvas: the result fit inline and no canvas_id was supplied, or the canvas is disabled."
    • changedOutput schema / properties / notice / description
      Previous value: -"Guidance when no variants matched, or when the canvas is disabled and the preview is capped."New value: +"Guidance when no variants matched, when the canvas is disabled and the preview is capped, and — when a table was staged — its name with the next steps: gnomad_dataframe_describe, then gnomad_dataframe_query."
    • changedOutput schema / properties / preview / description
      Previous value: -"Inline preview rows — the immediate answer."New value: +"Inline preview rows — the immediate answer; every matching variant unless spilled."
    • changedOutput schema / properties / spilled / description
      Previous value: -"True when the full result was staged on the canvas beyond the preview."New value: +"True when the result exceeded the inline preview budget, so the preview holds only the first rows and table_name holds them all."
    • changedOutput schema / properties / table_name / description
      Previous value: -"Canvas table holding the full set (gene_variants); empty when not spilled."New value: +"Canvas table this call staged (gene_variants), holding every matching variant — inspect it with gnomad_dataframe_describe, then query it with gnomad_dataframe_query. Empty when this call staged no table."
    • changedOutput schema / properties / total / description
      Previous value: -"Total matching variants (staged row count when spilled, else preview length)."New value: +"Total matching variants, including any beyond the preview."
  7. Changed5 schema fields changed
    • addedInput schema / properties / canvas_id / pattern
      Added value: +"^[A-Za-z0-9_-]{10}$"
    • removedOutput schema / properties / preview / items / properties / af / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / preview / items / properties / af / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / preview / items / properties / consequence / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / preview / items / properties / consequence / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  8. First observed

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety is covered. The description goes well beyond them with qc_filtered semantics, canvas staging/replacement rules, the 3,000 limit clamp, and the per-page re-fetch cost of listing a target whole. However, the QC/annotation-column behavior is largely restated from the schema text, diluting the added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, and most sentences carry real information (pagination, staging, QC). But it is a dense run-on of em-dash-clause sentences that is hard to scan, and several behaviors (annotations columns, pass_only re-computation) repeat what the schema descriptions already state.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter tool with an output schema and annotations, the description covers everything an agent needs: mutual exclusivity, defaults, pagination loop, staging/canvas reuse, and QC interpretation. Return shapes are appropriately left to the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 14 parameters are already documented with examples, enums and range constraints. The description's filter summary (consequence class, lof_confidence, max_af, max_faf against ACMG/AMP BA1/BS1) mostly re-states the schema rather than adding new meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource: 'List every gnomAD variant in a gene, transcript, or region', then enumerates the returned fields (allele frequencies, FAF, zygosity, LOFTEE consequences, QC). This clearly separates it from gnomad_get_variant (single variant) and the dataframe tools (aggregation over a staged table).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states which filters combine, that exactly one of gene/transcript_id/region must be supplied, how to page (pass next_offset as offset until null), and routes aggregation work to gnomad_dataframe_describe then gnomad_dataframe_query. It also says when to use pass_only versus keeping QC-failed rows.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.