MissenseDB v2.0
Proteome-wide human missense variant effect prediction database with structural context
Xu J · Kovacs AS · Portelli S · Malik AJ · Ascher DB
School of Chemistry and Molecular Biosciences, The University of Queensland
Contents
  1. What is MissenseDB?
  2. Comparison with Related Resources
  3. Data Sources
  4. Variant Processing Pipeline
  5. Using the Web Interface
    1. Genomic coordinate lookup
    2. VUS Catalogue
  6. Guided Examples
    1. Use case 1: Clinical variant interpretation
    2. Use case 2: Proteome-wide discovery
    3. Use case 3: Structural discovery via composable API
  7. Retrieving and constructing custom datasets through the API — a guide for non-programmers
  8. API Reference
  9. Database Schemas
    1. Empirical Score Calibration
  10. Licence
  11. Contact

What is MissenseDB?

MissenseDB is a proteome-wide database of human missense variant effect predictions integrating three state-of-the-art computational predictors — AlphaMissense (AM), VESM, and VESPA — across 19,436 UniProtKB/Swiss-Prot human protein entries. Per-variant scores are retained on each predictor's native scale and converted to a common calibrated 0–1 scale (higher = more pathogenic; see Empirical Score Calibration), and are mapped onto experimental and AlphaFold-predicted protein structures for 3D visualisation.

For each position in every protein, MissenseDB precomputes a residue mutational-sensitivity score for each predictor — the mean of its calibrated scores across all 19 possible amino acid substitutions — and the mean of these scores across the three predictors, providing a position-level summary of mutational intolerance independent of any specific observed variant. Calibrated scores are obtained by empirical binning of each predictor's raw score against HUMSAVAR LP/P and LB/B labels (see Empirical Score Calibration). For backward compatibility, position-level scores on a global per-predictor min-max normalised scale (VESM log-likelihood ratios inverted, values clipped to [0, 1]) are also stored. Structural annotations (DSSP secondary structure, ligand proximity), domain assignments (Pfam), and clinical variant data (HUMSAVAR, dbSNP, ClinVar) are integrated to enable both per-protein inspection and proteome-wide programmatic discovery.

The three predictors are:

Comparison with Related Resources

No comparable resource combines three complete variant-effect predictor landscapes — AlphaMissense, VESM and VESPA — a position-level mutational intolerance map, synchronised multi-structure views, and composable proteome-wide querying in a single persistent precomputed database. ProtVar, dbNSFP and CATVariant each address complementary use cases; the table below summarises how MissenseDB differs.

Capability MissenseDB ProtVar CATVariant dbNSFP
Structure-first design ✅ ❌ ❌ ❌
DSSP from 3D atomic coordinates ✅ ⚠️ seq-predicted ⚠️ seq-predicted ❌
Multi-structure position mapping ✅ 211,731 ⚠️ 1 structure ⚠️ 1 structure ❌
Precomputed ligand proximity ✅ ⚠️ UniProt only ⚠️ UniProt only ❌
VESM ✅ ❌ ❌ ❌
Position-level mean variant-effect score ✅ ❌ ⚠️ per-variant ❌
All 19 substitutions per position ✅ ❌ observed only ❌ observed only ⚠️ genomic only
Pfam as queryable API dimension ✅ ❌ ❌ ❌
HUMSAVAR clinical variants ✅ ❌ ❌ ❌
Proteome-wide cross-filtering API ✅ ❌ per-variant ❌ per-protein ❌ flat file
Instant precomputed response ✅ ✅ ⚠️ ~30 min ✅

✅ fully supported  ·  ⚠️ partial or different implementation  ·  ❌ absent.

Data Sources

SourceVersion / ReleaseContent
UniProtKB/Swiss-Prot2024_06 (canonical sequences only; alternative isoforms are excluded as AM and VESM scores are released on canonical sequences)19,436 human protein sequences and annotations
AlphaMissenseDownloaded October 2023Per-variant pathogenicity scores for all human Swiss-Prot proteins
VESM3BPer-variant log-likelihood ratio scores
VESPAv1Per-variant pathogenicity probability scores
AlphaFoldv6Predicted structures for all 19,436 proteins
PDB / SIFTSApril 2026Experimental structures and UniProt–PDB residue mappings. The 211,731 structure mappings reported represent UniProt-to-PDB chain-level mappings (1:N); chimeric chains are excluded and alternative isoforms are not mapped.
DSSP4.0Secondary structure and solvent accessibility per residue
HUMSAVAR2026_0184,476 curated human missense variants with ACMG/AMP classifications
dbSNP157Population frequencies (gnomAD, TOPMed, 1000 Genomes, TOMMO) and ClinVar assertions
Pfam36.0Domain annotations via SIFTS UniProt–Pfam mapping

Update policy

MissenseDB is updated annually. Each release incorporates accumulated updates to PDB, AlphaFold, UniProt Swiss-Prot, HUMSAVAR, SIFTS, Pfam, dbSNP and ClinVar over the preceding year. The current release versions are listed in the Data Sources table above. A changelog will be maintained on this page between releases.

Variant Processing Pipeline

MissenseDB integrates HUMSAVAR release 2026_01 (28-Jan-2026). HUMSAVAR was chosen as the clinical annotation backbone because it provides expert-curated ACMG/AMP classifications tied directly to UniProt canonical sequences, offering stable protein-coordinate anchoring and consistent variant nomenclature across releases. For HUMSAVAR variants that carry an rsID, the corresponding dbSNP record is fetched to enrich each variant with population allele frequencies and per-submission ClinVar significance calls. Not all HUMSAVAR variants appear in the queryable database — the following pipeline explains each filtering step and the resulting counts.

84,476
HUMSAVAR protein variants
UniProt 2026_01 · 28-Jan-2026 · LP/P: 33,127 · LB/B: 39,929 · US: 11,420
↓
dbSNP build 157 rsID matching
~23.3% have no rsID → excluded
64,803
Variants matched to dbSNP
76.7% of HUMSAVAR · all with population frequency and ClinVar data where available
↓
MANE-select transcript consequence annotation
59,851
missense_variant — queryable core
92.4% of dbSNP-matched variants · fully annotated with predictor scores, population frequencies, and ClinVar assertions
4,952
Other consequences
7.6% · synonymous, stop-gained, intronic and other MANE consequences · retained in DB2 but excluded from missense analyses

Using the Web Interface

Searching for a protein

Enter a UniProtKB accession (e.g. P04637) in the search box on the home page. Autocomplete suggestions appear after two characters — only proteins present in MissenseDB are shown. Press Enter or click Visualise to load the results page.

Results page layout

The results page is divided into three areas:

Sequence feature tracks

TrackColourDescription
SequenceGreyFull UniProt amino acid sequence; click to select a position
PfamBluePfam domain intervals; hover for domain name and accession
dbSNPPurplePositions with HUMSAVAR/dbSNP annotated variants
CoverageYellowUniProt residue range covered by the currently loaded structure
DSSPSteel blueDSSP secondary-structure assignment for the loaded structure
Ligand (<5 Å)OrangeResidues within 5 Å of a HETATM record (ligand, ion or crystallographic water) in the loaded structure
AMPinkAlphaMissense calibrated residue score per position (mean of the 19 calibrated substitution scores, 0–1)
VESMLight blueVESM-3B calibrated residue score per position (0–1)
VESPAGreenVESPA calibrated residue score per position (0–1)
AveragePurpleMean of the three calibrated residue scores (0–1)
pLDDTAmberAlphaFold per-residue confidence (pLDDT)

Downloading score-annotated structures

For each protein, calibrated residue scores are mapped into the B-factor column of the corresponding structure files, producing three score-annotated PDB files — one per predictor (AM, VESM, VESPA). Calibrated scores (0–1) are written to the B-factor column multiplied by 100, so values lie between 0 and 100. These can be downloaded directly from the results page using the Download PDB button beneath the structure viewer. Downloaded files can be opened in any molecular visualisation software (PyMOL, ChimeraX, VMD) and coloured by B-factor to reproduce the MissenseDB score mapping. The structure identifier, predictor and calibrated are encoded in the filename.

dbSNP variant panel

For proteins with HUMSAVAR-annotated variants, a dbSNP Variants section appears below the sequence viewer. The full-width table lists all annotated substitutions with their ACMG/AMP classification, rsID, AM/VESM/VESPA/mean scores, and disease association. Click any row to expand the detail panel showing population allele frequencies across multiple cohorts (gnomAD, TOPMed, 1000 Genomes, TOMMO and others) and all ClinVar submissions with significance classifications.

Genomic coordinate lookup

The Genomic Lookup page maps GRCh38 nucleotide positions to UniProt residues and retrieves predictor annotations for each mapped position. Enter one coordinate per line in any of the accepted formats (chr17:7674220, 17:7674220, chr17 7674220) — up to 5,000 per submission. Tick Include calibrated predictor scores to add the calibrated AM, VESM, VESPA and mean residue scores (each the mean of the 19 calibrated substitution scores at that residue), together with pLDDT, DSSP secondary structure, and ligand proximity, to each mapped residue. Results are displayed in a filterable table with status indicators (mapped / unmapped / invalid) and can be downloaded as TSV. Click any mapped UniProt ID in the results table to open the full MissenseDB results page for that protein. Programmatic access is available via the POST /api/db/gencord endpoint described in the API Reference and the non-programmer guide above.

VUS Catalogue

The VUS Catalogue page provides predictor annotations for all HUMSAVAR variants classified as uncertain significance (US). Each variant is independently evaluated by AlphaMissense (AM), VESM-3B, and VESPA using its own calibrated substitution score, with a shared threshold of  ≥ 0.50 across all three predictors after empirical binning calibration (see Empirical Score Calibration). Score colours reflect the binary P/B call at this threshold rather than generic numerical ranges: red indicates a high-effect (P) call and green a low-effect (B) call. The consensus column records the pattern of calls across the three predictors: 3P indicates three high-effect calls; 2P · 1B and 1P · 2B indicate predictor disagreement; and 3B indicates three low-effect calls. Consensus filter buttons allow users to focus on concordant or discordant subsets, and the complete active view can be downloaded as TSV for further analysis. These predictor calls are computational annotations and should not be interpreted as clinical reclassification of HUMSAVAR variants.

Guided Examples

Use case 1 — Clinical variant interpretation (TP53, P04637)

This example walks through interpreting a known pathogenic variant in TP53 — one of the most clinically studied tumour suppressor genes — using the MissenseDB web interface. TP53 R248W is a well-characterised Li-Fraumeni syndrome variant (rs28934578) used here to illustrate the full workflow.

1 Navigate to the home page and type P04637 in the search box. Select the autocomplete suggestion and press Search.
2 The results page loads with the AlphaFold structure coloured by the calibrated AM residue score. The DNA-binding domain (residues ~100–290) appears in red — reflecting its high mutational intolerance — while the N-terminal transactivation domain is more tolerant.
3 In the Sequence Feature Viewer, locate the purple dbSNP track. Dense purple marks indicate positions with annotated clinical variants. Click position 248 in the sequence track. The 3D viewer highlights arginine 248, and the Residue Details panel shows all 19 substitution scores — R248W and R248Q both score ≥ 0.99 under AM (raw score), with calibrated probabilities of about 0.95 shown in brackets, consistent with their known pathogenicity.
4 Scroll to the dbSNP Variants table below the sequence viewer. Find position 248, substitution R→W, rsID rs28934578. The ACMG category shows LP/P. Click the row to expand the detail panel.
5 The detail panel shows population frequencies — gnomAD AF ≈ 0 confirms this variant is absent from population cohorts, consistent with its pathogenic classification. ClinVar submissions confirm pathogenic classifications across multiple submitters for Li-Fraumeni syndrome.
P04637 results page showing structure viewer, residue details at position 248, and sequence feature tracks
Figure 1. MissenseDB results page for TP53 (P04637) with position 248 selected. The structure viewer (left) is coloured by the calibrated AlphaMissense residue score. Residue Details (top right) shows all 19 substitution scores at R248 (raw AM scores all ≥0.996), each followed by its calibrated probability in brackets. Position summary reports calibrated AM=0.946, VESM=0.931, VESPA=0.933, Mean=0.937, with pLDDT 97. Sequence feature tracks show the Pfam P53 domain (blue), dense dbSNP annotations (purple), DSSP, and the calibrated AM, VESM, VESPA, Average and pLDDT tracks; the highlighted column marks position 248 within the uniformly high-scoring DNA-binding domain.
dbSNP variant table and detail panel for TP53 position 248
Figure 2. dbSNP Variants table and detail panel for P04637 around position 248. The table shows annotated substitutions with AM, VESM and VESPA raw scores, each followed by its calibrated probability in brackets, ACMG badges (LP/P in red, US in orange), and disease associations. The detail panel for rs121912651 shows population frequencies across gnomAD, ExAC and dbGaP, and 70 ClinVar submissions all classified pathogenic for Li-Fraumeni syndrome and hereditary cancer-predisposing syndrome.

Use case 2 — Proteome-wide discovery via API

This example demonstrates programmatic access to MissenseDB to identify all LP/P variants in the proteome that lie within alpha-helices and carry high variant-effect scores — a query relevant to structural interpretation of disease variants and not feasible from a single-protein GUI view.

The workflow combines two API endpoints: /api/db/scan from DB1 to find high-score alpha-helical positions, and /api/db/variants/category/LP/P from DB2 to retrieve pathogenic variants, then intersects the two sets.

Step 1 — Fetch all alpha-helical positions with high variant-effect score

curl
Python
curl -s "https://biosig.lab.uq.edu.au/missense_db/api/db/scan?dssp=H&min_cal_load=0.8&limit=5000&format=tsv" \ > helix_high_score.tsv
import requests, pandas as pd r = requests.get( "https://biosig.lab.uq.edu.au/missense_db/api/db/scan", params={"dssp": "H", "min_cal_load": 0.8, "limit": 5000} ) positions = pd.DataFrame(r.json()["data"]) print(f"{len(positions):,} high-score alpha-helical positions")

Step 2 — Fetch all LP/P variants with population frequency data

curl
Python
curl -s "https://biosig.lab.uq.edu.au/missense_db/api/db/variants/category/LP%2FP?limit=5000&format=tsv" \ > lpp_variants.tsv
r2 = requests.get( "https://biosig.lab.uq.edu.au/missense_db/api/db/variants/category/LP/P", params={"limit": 5000} ) variants = pd.DataFrame(r2.json()["data"]) print(f"{len(variants):,} LP/P variants retrieved")

Step 3 — Intersect: LP/P variants in high-score helical positions

Python
R
import requests, pandas as pd # Merge on uniprot_id + position helix_pos = positions[["uniprot_id","position","dssp_ss"]] merged = variants.merge(helix_pos, on=["uniprot_id","position"], how="inner") # Sort by mean load descending merged = merged.sort_values("mean_cal_load", ascending=False) print(f"\nLP/P variants in high-score alpha-helices: {len(merged)}") print(merged[["uniprot_id","position","ref","alt","dbsnp", "mean_cal_load","gnomad_af","disease_name"]].head(10).to_string())
library(httr); library(dplyr) pos <- read.delim(text=content( GET("https://biosig.lab.uq.edu.au/missense_db/api/db/scan", query=list(dssp="H", min_cal_load=0.8, limit=5000, format="tsv")), "text"), comment.char="#") var <- read.delim(text=content( GET("https://biosig.lab.uq.edu.au/missense_db/api/db/variants/category/LP%2FP", query=list(limit=5000, format="tsv")), "text"), comment.char="#") merged <- inner_join(var, pos[, c("uniprot_id","position","dssp_ss")], by=c("uniprot_id","position")) %>% arrange(desc(mean_cal_load)) cat(sprintf("LP/P variants in high-score alpha-helices: %d\n", nrow(merged)))

Use case 3 — Structural discovery: high-effect positions near bound ligands

This example illustrates the composable query model of MissenseDB. Each residue position is an independently queryable record linked to predictor scores, structural context, domain annotations, population frequencies and clinical evidence. Queries that span these dimensions simultaneously — such as finding disease-associated variants at structurally constrained, ligand-proximal positions — are answered in a single API call and are not feasible from per-protein GUI tools.

Step 1 — Find all high-effect positions proximal to a bound ligand

curl
Python
curl -s "https://biosig.lab.uq.edu.au/missense_db/api/db/scan?proximal_ligand=1&min_cal_load=0.8&limit=5000&format=tsv" \ > ligand_proximal_high_score.tsv
import requests, pandas as pd r = requests.get( "https://biosig.lab.uq.edu.au/missense_db/api/db/scan", params={"proximal_ligand": 1, "min_cal_load": 0.8, "limit": 5000} ) positions = pd.DataFrame(r.json()["data"]) print(f"{len(positions):,} high-score ligand-proximal positions")

Step 2 — Retrieve LP/P variants at those positions

curl
Python
curl -s "https://biosig.lab.uq.edu.au/missense_db/api/db/scan?proximal_ligand=1&min_cal_load=0.8&has_pathogenic=1&limit=5000&format=tsv" \ > ligand_proximal_pathogenic.tsv
r2 = requests.get( "https://biosig.lab.uq.edu.au/missense_db/api/db/scan", params={"proximal_ligand": 1, "min_cal_load": 0.8, "has_pathogenic": 1, "limit": 5000} ) pathogenic_ligand = pd.DataFrame(r2.json()["data"]) print(f"{len(pathogenic_ligand):,} positions: high-score, ligand-proximal, with LP/P variant") print(pathogenic_ligand[["uniprot_id","position","ref_aa","mean_cal_load", "proximal_ligand_ids","pfam_name"]].head(10).to_string())

Other queries answerable via the same composable API include: positions where all three predictors agree within a specific secondary structure element (dssp=E&min_cal_load=0.9); disease-associated variants in structurally constrained Pfam domains (in_pfam=1&has_pathogenic=1); or proteins with the highest density of intolerant positions via per-protein queries to /api/db/position/<uniprot_id>. All results are downloadable in JSON or TSV format for reproducible downstream analysis.

Retrieving and constructing custom datasets through the API — a guide for non-programmers

Every panel on the MissenseDB results page is backed by a REST API endpoint. The same data the interface displays can be retrieved directly using curl from a terminal, or with requests in Python. Basic queries can be reproduced by copying the provided commands directly, while TSV output can be opened in standard spreadsheet and statistical software without additional parsing. Beyond the results page, the scan endpoint enables proteome-wide filtered dataset construction that is not available through the GUI at all.

The base URL for all API calls is https://biosig.lab.uq.edu.au/missense_db/. The examples below use TP53 (UniProt accession P04637) throughout. Database query endpoints support tab-separated output where indicated by appending ?format=tsv, suitable for opening directly in Excel, R, or other statistical software. The structure mapping and PDB download endpoints return JSON and PDB format respectively and do not support TSV output.

Sequence feature tracks (AM / VESM / VESPA / mean / pLDDT)

The area tracks shown in the sequence feature viewer — one per predictor plus the mean and pLDDT — correspond to the am_cal_load, vesm_cal_load, vespa_cal_load, mean_cal_load, and plddt columns in DB1 (the min-max *_load columns are returned alongside them). One row is returned per residue position. The same response also includes the structural context columns (dssp_ss, proximal_ligand, in_pfam, pfam_name) shown in the annotation tracks, and the has_pathogenic and worst_category flags shown in the dbSNP track.

curl "https://biosig.lab.uq.edu.au/missense_db/api/db/position/P04637?format=tsv"
uniprot_id position ref_aa am_load vesm_load vespa_load mean_load ... am_cal_load vesm_cal_load vespa_cal_load mean_cal_load P04637 1 M 0.459938 0.683647 0.435876 0.526487 ... 0.640747 0.763606 0.592766 0.665706 P04637 2 E 0.227953 0.561387 0.319790 0.369710 ... 0.402094 0.281871 0.417976 0.367314 P04637 3 E 0.138809 0.522881 0.266691 0.309460 ... 0.279721 0.164998 0.339451 0.261390 P04637 4 P 0.054441 0.518076 0.274456 0.282324 ... 0.152681 0.145479 0.344767 0.214309

Available structures and structure residue mapping

The mapping endpoint returns, for each UniProt residue position, the corresponding author residue number in that structure — this is what the GUI uses to synchronise the sequence track with the 3D viewer. The auth field gives the structure residue number; dssp and prox give the per-structure DSSP assignment and ligand proximity at that residue. Score-annotated PDB files (Panel 6 below) use these same author residue numbers, so the mapping response is the bridge between UniProt positions and structure coordinates.

curl "https://biosig.lab.uq.edu.au/missense_db/api/mapping/P04637/AF-P04637-F1-model_v6"
{ "1": {"auth": 1, "dssp": "-", "lids": "-", "prox": false}, "2": {"auth": 2, "dssp": "-", "lids": "-", "prox": false}, "3": {"auth": 3, "dssp": "-", "lids": "-", "prox": false}, ... }

Residue Details and Position Summary

Clicking a position in the GUI populates the Residue Details table (all 19 substitution scores for the selected predictor, each with its calibrated probability in brackets) and the Position Summary strip (calibrated per-predictor averages, pLDDT, structure residue number). Both come from the single-position endpoint. The am_scores, vesm_scores, and vespa_scores columns contain all 19 raw substitution scores in ALT:score format, pipe-separated, and the am_cal_scores, vesm_cal_scores and vespa_cal_scores columns contain the corresponding calibrated scores in the same format. The am_cal_load, vesm_cal_load, vespa_cal_load, mean_cal_load, and plddt fields populate the Position Summary strip.

curl "https://biosig.lab.uq.edu.au/missense_db/api/db/position/P04637/248?format=tsv"
uniprot_id position ref_aa am_load vesm_load vespa_load mean_load plddt dssp_ss proximal_ligand am_scores vesm_scores vespa_scores P04637 248 R 0.99862 0.809168 0.902256 0.903348 97.25 T 1 A:0.9999|C:0.9978|D:0.9996|... A:-15.22|C:-11.83|D:-18.53|... A:0.8038|C:0.8545|D:0.8306|...

HUMSAVAR Variants table

The variants table lists all HUMSAVAR-annotated substitutions for the protein with predictor scores, ACMG/AMP classification, population frequencies, and ClinVar data. Key columns: variant_category (LP/P, LB/B, US), am_load / vesm_load / vespa_load (position-level residue mutational-sensitivity scores, min-max normalised) with their calibrated counterparts am_cal_load / vesm_cal_load / vespa_cal_load / mean_cal_load, gnomad_af / topmed_af / thousandg_af (population frequencies), and clinvar_json (full per-submission ClinVar records). The bracketed calibrated probabilities shown alongside raw scores in the GUI are computed from the empirical binning calibration described in the Empirical Score Calibration section. The API returns position-level calibrated scores in the *_cal_load columns; per-substitution calibrated scores are available from the single-position endpoint in the *_cal_scores columns.

curl "https://biosig.lab.uq.edu.au/missense_db/api/db/variants/P04637?format=tsv"
uniprot_id position ref alt gene_name variant_category disease_name dbsnp am_load vesm_load vespa_load gnomad_af clinvar_significance ... P04637 7 D H TP53 US A sporadic cancer rs587782646 0.128303 0.503227 0.281736 (null) uncertain-significance ...

Score-annotated PDB download

For each structure, MissenseDB maps predictor scores into the B-factor column, producing one PDB file per predictor (AM, VESM, VESPA). The URL pattern is /missense_db/<uniprot_id>/<pdb_stem>/<predictor>. By default the B-factor column holds the calibrated residue score multiplied by 100 (0–100); the file is served as <pdb_stem>_calibrated.pdb. Appending ?scale=minmax returns the corresponding file in which the B-factor column holds the min-max normalised residue score instead. Downloaded files can be opened in PyMOL, ChimeraX, or VMD and coloured by B-factor to reproduce the MissenseDB score mapping. Residue numbers in the file correspond to the auth values returned by the mapping endpoint above.

curl -o P04637_AF_AM.pdb \ "https://biosig.lab.uq.edu.au/missense_db/P04637/AF-P04637-F1-model_v6/AM"

Genomic coordinate lookup

Maps GRCh38 nucleotide positions to UniProt residues. Accepts up to 5,000 coordinates per request. Setting enrich: true adds the calibrated DB1 residue scores (*_cal_load), the min-max normalised scores (*_load, retained for backward compatibility), pLDDT, DSSP, and ligand proximity for each mapped residue. The browser page (/missense_db/gencord) displays and exports the calibrated scores only. Append ?format=tsv for tabular output.

curl -X POST \ -H "Content-Type: application/json" \ -d '{"coords":["chr17:7674220"],"enrich":true}' \ "https://biosig.lab.uq.edu.au/missense_db/api/db/gencord"
{ "n_submitted": 1, "n_mapped": 1, "n_unmapped": 0, "results": [{ "query": "chr17:7674220", "status": "mapped", "uniprot_id": "P04637", "protein_pos": 248, "amino_acid": "R", "chr": "17", "nt_position": 7674220, "strand": "M", "exon_id": "ENSE00003712342", "codon_pos": 2, "am_load": 0.99862, "vesm_load": 0.809168, "vespa_load": 0.902256, "mean_load": 0.903348, "am_cal_load": 0.945803, "vesm_cal_load": 0.930633, "vespa_cal_load": 0.933408, "mean_cal_load": 0.936615, "plddt": 97.25, "dssp_ss": "T", "proximal_ligand": 1 }] }

The strand field uses P for plus strand and M for minus strand.

Proteome-wide filtered dataset construction (scan endpoint)

This functionality goes beyond the results page GUI and is the most powerful query mode in MissenseDB. The scan endpoint filters all 10.7 million positions across the proteome simultaneously by any combination of score threshold, secondary structure class, Pfam domain membership, ligand proximity, and clinical variant presence. Results are returned as paginated TSV for immediate download and analysis. The example below retrieves all 335,158 positions that are highly sensitive (mean calibrated score ≥ 0.8), inside a Pfam domain, and within 5 Å of a bound ligand — a dataset relevant to structure-guided variant prioritisation that is not retrievable from any per-protein or per-variant interface. Use offset=500, offset=1000 etc. to retrieve subsequent pages; available filter parameters are listed in the API Reference section.

curl "https://biosig.lab.uq.edu.au/missense_db/api/db/scan?min_cal_load=0.8&proximal_ligand=1&in_pfam=1&format=tsv"
# n_returned: 500 # n_total_matched: 335158 # limit: 500 # offset: 0 # next_offset: 500 # filters: {'min_cal_load': 0.8, 'in_pfam': 1, 'proximal_ligand': 1} uniprot_id position ref_aa am_load vesm_load vespa_load mean_load dssp_ss proximal_ligand proximal_ligand_ids in_pfam pfam_name ...

API Reference

All DB-backed endpoints are available under /api/db/. Responses are JSON by default. Append ?format=tsv to any endpoint for tab-separated output suitable for command-line pipelines. The API is open with no authentication required.

GET /api/db/info
Returns database statistics and a listing of all available endpoints.
curl https://biosig.lab.uq.edu.au/missense_db/api/db/info
GET /api/db/position/<uniprot_id>
All positions for a UniProt protein from DB1. Returns variant-effect scores, DSSP secondary structure, Pfam domain membership, ligand proximity, and dbSNP/HUMSAVAR flags. Both the min-max normalised (*_load) and calibrated (*_cal_load) per-position scores are returned. Score blobs (full 19-substitution JSON) are excluded for bandwidth — use the single-position endpoint for those.
curl "https://biosig.lab.uq.edu.au/missense_db/api/db/position/P04637" curl "https://biosig.lab.uq.edu.au/missense_db/api/db/position/P04637?format=tsv"
GET /api/db/position/<uniprot_id>/<position>
Single position with full substitution score blobs. Returns am_scores, vesm_scores, vespa_scores as dicts (JSON) or flattened ALT:score pipe-separated pairs (TSV).
curl "https://biosig.lab.uq.edu.au/missense_db/api/db/position/P04637/248" curl "https://biosig.lab.uq.edu.au/missense_db/api/db/position/P04637/248?format=tsv"
GET /api/db/scan
Proteome-wide filtered scan of DB1. All parameters are optional and combinable. Results are sorted by mean_cal_load descending when a calibrated filter is applied, and by mean_load otherwise. Default limit 500, maximum 5000.
ParameterTypeDescription
min_cal_loadfloatMinimum mean_cal_load, the mean calibrated residue score across the three predictors (0–1)
max_cal_loadfloatMaximum mean_cal_load (0–1)
min_loadfloatMinimum mean_load, the mean min-max normalised residue score (0–1); retained for backward compatibility
max_loadfloatMaximum mean_load (0–1); retained for backward compatibility
dsspstringDSSP secondary structure code: H, E, T, S, G, B, I (coil/loop positions are stored as NULL and are not selectable by this filter)
in_pfam0 or 1Filter to positions in (1) or outside (0) Pfam domains
has_pathogenic0 or 1Filter to positions with at least one LP/P variant
worst_categorystringLP/P, LB/B, or US
proximal_ligand0, 1 or 21 = ligand within 5Å; 0 = experimental structure present, no ligand within 5Å; 2 = AlphaFold only (no experimental structure)
limitintMaximum rows returned (default 500, max 5000)
offsetintPagination offset for retrieving additional results (default 0)
formatstringjson (default) or tsv
curl "https://biosig.lab.uq.edu.au/missense_db/api/db/scan?dssp=H&min_cal_load=0.8&limit=100" curl "https://biosig.lab.uq.edu.au/missense_db/api/db/scan?has_pathogenic=1&in_pfam=1&format=tsv" curl "https://biosig.lab.uq.edu.au/missense_db/api/db/scan?worst_category=LP%2FP&min_cal_load=0.9"
GET /api/db/variants/<uniprot_id>
All dbSNP-annotated clinical variants for a UniProt protein from DB2. Includes ACMG/AMP classification, population allele frequencies, ClinVar significance, MANE-select HGVS, and predictor scores.
curl "https://biosig.lab.uq.edu.au/missense_db/api/db/variants/P04637" curl "https://biosig.lab.uq.edu.au/missense_db/api/db/variants/P04637?format=tsv"
GET /api/db/variant/rsid/<rsid>
Lookup a specific variant by rsID. Accepts rsID with or without the rs prefix.
curl "https://biosig.lab.uq.edu.au/missense_db/api/db/variant/rsid/rs121912662" curl "https://biosig.lab.uq.edu.au/missense_db/api/db/variant/rsid/rs121912662?format=tsv"
GET /api/db/variants/category/<category>
All variants of a given ACMG/AMP category across the full proteome. Category must be LP/P, LB/B, or US. Default limit 500, maximum 50,000. Use offset to paginate through larger result sets.
curl "https://biosig.lab.uq.edu.au/missense_db/api/db/variants/category/LP%2FP" curl "https://biosig.lab.uq.edu.au/missense_db/api/db/variants/category/LP%2FP?limit=1000&format=tsv"
GET /api/protein/<uniprot_id>
Legacy endpoint. Returns tab-separated per-position average normalised scores directly from flat files: Uniprot | Pos | Ref | AM | VESM | VESPA. Retained for backwards compatibility.
curl "https://biosig.lab.uq.edu.au/missense_db/api/protein/P04637"
POST /api/db/gencord
Batch genomic coordinate lookup. Maps GRCh38 nucleotide positions to UniProt residues. Accepts JSON body with a coords array (max 5,000). Optionally enriches each hit with db1 residue scores (calibrated *_cal_load and min-max *_load), pLDDT, DSSP and ligand proximity when enrich: true is set. Append ?format=tsv for TSV output. A browser-based interface that gives only calibrated values is available at /gencord.
curl -X POST \ -H "Content-Type: application/json" \ -d '{"coords":["chr17:7674220","chr13:32907420"],"enrich":true}' \ "https://biosig.lab.uq.edu.au/missense_db/api/db/gencord"

Database Schemas

DB1 — Position Summary

One row per (UniProt ID, position). ~10.7 million rows covering all 19,436 proteins.

FieldTypeDescription
uniprot_idTEXTUniProtKB/Swiss-Prot accession
positionINTEGER1-based residue position in UniProt sequence
ref_aaTEXTReference amino acid (single letter)
am_loadREALAlphaMissense residue mutational-sensitivity score: mean of the 19 substitution-level scores, min-max normalised (0–1)
vesm_loadREALVESM-3B residue mutational-sensitivity score: mean of the 19 substitution-level scores, min-max normalised (0–1)
vespa_loadREALVESPA residue mutational-sensitivity score: mean of the 19 substitution-level scores, min-max normalised (0–1)
mean_loadREALMean of available min-max normalised predictor scores (0–1, higher = more pathogenic). The normalised threshold of 0.5 represents the midpoint of each predictor's observed score range and is not a calibrated pathogenicity decision boundary.
am_scoresTEXTJSON object mapping each alt amino acid to raw AM score e.g. {"A":0.99,...}
vesm_scoresTEXTJSON object mapping each alt amino acid to raw VESM score
vespa_scoresTEXTJSON object mapping each alt amino acid to raw VESPA score
n_structuresINTEGERNumber of PDB/AlphaFold structures covering this position
dssp_ssTEXTModal DSSP secondary-structure assignment (H/E/T/S/G/B/I) among the structures that assign a class at this position; ties are broken by order of file processing. NULL indicates coil/loop (no class assigned in any mapped structure) or no coordinates at this position; use n_structures to distinguish them (>0 = coil/loop, 0 = no structural coverage). AlphaFold pLDDT confidence was not used to filter DSSP assignments.
proximal_ligandINTEGER0 = experimental structure present, no ligand within 5Å; 1 = ligand present within 5Å; 2 = AlphaFold only, no experimental structure available
proximal_ligand_idsTEXTComma-separated union of all proximal ligand names across structures
in_pfamINTEGER1 if position falls within a Pfam domain interval
pfam_accTEXTPfam domain accession (e.g. PF00870)
pfam_nameTEXTPfam domain name (e.g. P53)
n_dbsnpINTEGERNumber of rsIDs annotated at this position in HUMSAVAR
worst_categoryTEXTMost severe ACMG/AMP category at this position (LP/P > US > LB/B)
has_pathogenicINTEGER1 if any substitution at this position is classified LP/P
plddtREALAlphaFold per-residue pLDDT confidence score (0–100); NULL if no AlphaFold structure covers this position
structure_listTEXTPipe-delimited list of mapping TSV filenames contributing annotations at this position; filenames with AF- prefix derive from AlphaFold models, all others from experimental PDB structures
am_cal_loadREALAlphaMissense residue score on the calibrated scale: mean of the 19 calibrated substitution-level scores (0–1)
vesm_cal_loadREALVESM-3B residue score on the calibrated scale: mean of the 19 calibrated substitution-level scores (0–1)
vespa_cal_loadREALVESPA residue score on the calibrated scale: mean of the 19 calibrated substitution-level scores (0–1)
mean_cal_loadREALMean calibrated residue score across available predictors (0–1)
am_cal_scoresTEXTJSON object mapping each alt amino acid to its calibrated AM score
vesm_cal_scoresTEXTJSON object mapping each alt amino acid to its calibrated VESM-3B score
vespa_cal_scoresTEXTJSON object mapping each alt amino acid to its calibrated VESPA score

DB2 — HUMSAVAR + dbSNP

One row per annotated variant (UniProt ID, position, alt) with a matched dbSNP record. ~64,800 rows.

FieldTypeDescription
uniprot_idTEXTUniProtKB/Swiss-Prot accession
positionINTEGER1-based residue position
refTEXTReference amino acid
altTEXTAlternate amino acid
gene_nameTEXTHGNC gene symbol
ft_idTEXTUniProt feature identifier (VAR_XXXXXX)
variant_categoryTEXTACMG/AMP classification: LP/P, LB/B, or US
disease_nameTEXTAssociated disease name from HUMSAVAR
dbsnpTEXTdbSNP rsID (e.g. rs121912662)
am_loadREALAlphaMissense residue mutational-sensitivity score at this position (min-max normalised)
vesm_loadREALVESM-3B residue mutational-sensitivity score at this position (min-max normalised)
vespa_loadREALVESPA residue mutational-sensitivity score at this position (min-max normalised)
mean_loadREALMean min-max normalised residue score at this position across available predictors
gnomad_afREALgnomAD genomes v4 allele frequency
gnomad_acINTEGERgnomAD allele count
gnomad_tcINTEGERgnomAD total allele count
topmed_afREALTOPMed allele frequency
topmed_acINTEGERTOPMed allele count
topmed_tcINTEGERTOPMed total allele count
thousandg_afREAL1000 Genomes allele frequency
tommo_afREALToMMo Japanese population allele frequency
clinvar_significanceTEXTPipe-separated ClinVar significance terms across all submissions
clinvar_diseasesTEXTPipe-separated disease names from ClinVar submissions
review_statusTEXTPipe-separated ClinVar review statuses
consequenceTEXTSequence ontology consequence from MANE-select transcript
mane_hgvs_cTEXTCoding HGVS notation from MANE-select transcript
mane_hgvs_pTEXTProtein HGVS notation from MANE-select transcript
dbgap_afREALdbGaP population allele frequency
clinvar_jsonTEXTJSON array of per-submission ClinVar records, each containing accession, significance, disease names, review status, and last evaluated date
am_cal_loadREALAlphaMissense residue score at this position on the calibrated scale (0–1)
vesm_cal_loadREALVESM-3B residue score at this position on the calibrated scale (0–1)
vespa_cal_loadREALVESPA residue score at this position on the calibrated scale (0–1)
mean_cal_loadREALMean calibrated residue score at this position across available predictors (0–1)

Empirical Score Calibration

In the Residue Details and dbSNP Variants tables on the results page, each predictor score is shown on its native scale alongside a bracketed calibrated probability: for example, 0.821 [0.74] for AlphaMissense or −9.83 [0.91] for VESM-3B. The bracketed value is derived from an empirical binning calibration computed over the 53,923 LP/P and LB/B HUMSAVAR 2026_01 missense variants with complete per-substitution scores across all three predictors. Each predictor's raw score range is divided into 200 equal-width bins; the empirical P(pathogenic | bin) is computed from the LP/P and LB/B labels pooled over a sliding window of five adjacent bins, and a reverse-Bayes prior correction is applied to factor out the HUMSAVAR dataset class balance (π = 0.4005 = 21,597 / 53,923), yielding a calibrated posterior probability interpretable at a 50:50 reference prior. This correction follows the approach described in Malhis (2025, bioRxiv 2024.12.18.629275). Bins containing fewer than five labelled calibration variants (LP/P or LB/B) in the pooled window are treated as unsupported and assigned by linear interpolation from neighbouring supported bins. The raw-score threshold corresponding to a calibrated probability of 0.5 is 0.29 for AlphaMissense, −8.04 for VESM-3B (log-likelihood ratio), and 0.45 for VESPA, demonstrating that the three predictors do not share a common decision boundary on their native scales.

The same calibration is applied to each of the 19 possible substitutions at a position before averaging. The resulting calibrated residue scores (*_cal_load in the database) are used for the Position Summary strip, the sequence feature tracks, the structure colouring and the calibrated B-factor PDB files.

Note: The calibrated values shown in brackets are derived from HUMSAVAR 2026_01 and may change if variant classifications are revised or new variants are added in future HUMSAVAR releases. They are provided as a contextual reference alongside the raw predictor scores, which remain available unchanged. No pathogenicity conclusion should be drawn from the calibrated value alone.

Licence

MissenseDB is freely available to all users under the Creative Commons Attribution 4.0 International (CC BY 4.0) licence. You are free to share, adapt, and build upon this resource for any purpose, including commercial use, provided appropriate credit is given to the original authors and a link to the licence is included.

Contact:

Ashar J. Malik
ashar.malik@uq.edu.au
BioSig Lab · The University of Queensland