7485753cb34c1c3fd4a3f7b8894d993110db50ff lrnassar Thu Jul 23 14:03:39 2026 -0700 Rebuild popEVE heatmap with the full per-amino-acid matrix. refs #37791 The track was built from the genomic single-nucleotide VCF, so each column showed only the ~6 of 19 substitutions reachable by a single nucleotide change. The popEVE authors confirmed the per-transcript CSV download carries the complete matrix, so the converter now takes the all-19 scores from those CSVs while reusing the genomic codon coordinates, strand, and blocks derived from the VCF. Proteins absent from the (older) CSV release fall back to the sparse VCF scores. Color anchors recomputed over the full-matrix distribution, and the mouseover's raw EVE field is relabeled "EVE index" to distinguish it from the EVE track's 0-1 score. Updates the description page and makedoc to match. diff --git src/hg/makeDb/trackDb/human/popEve.html src/hg/makeDb/trackDb/human/popEve.html index 473d820640a..9bd05a3f109 100644 --- src/hg/makeDb/trackDb/human/popEve.html +++ src/hg/makeDb/trackDb/human/popEve.html @@ -1,40 +1,40 @@

Description

Missense mutations change a single amino acid in a protein and make up a large fraction of the variants observed in human populations, yet most have no established clinical significance. popEVE places missense variants on a single, proteome-wide spectrum of deleteriousness, so that variants in different genes can be compared directly. It is a deep generative model that combines cross-species evolutionary scores with human population variation: scores from EVE (an evolutionary variational autoencoder) and the ESM-1v protein language model are calibrated against allele observations in the UK Biobank using a Gaussian process, yielding a continuous, human-specific measure of variant impact. This track shows -popEVE scores for single-nucleotide missense substitutions across roughly 18,000 human proteins. +popEVE scores for all missense substitutions across roughly 18,000 human proteins.

Display Conventions

Each entry spans one protein at its genomic locus. The heatmap columns correspond to individual amino acid positions in the protein, placed at the codon's genomic coordinate. The rows correspond to the 20 standard amino acids, ordered by amino acid class to match the MaveDB track. Each cell shows the popEVE score for substituting the wildtype amino acid at that position with the -row amino acid. Because popEVE is distributed as a list of genomic single-nucleotide -variants, only amino acid substitutions reachable by a single-nucleotide change are scored; -cells for substitutions requiring more than one nucleotide change, for the wildtype amino -acid, or for positions without a score (for example start codons) are left empty. +row amino acid. All 19 possible substitutions are scored at each position; only the wildtype +cell is left empty. A small number of proteins, taken from an earlier data release that +provided only genomic single-nucleotide variants, show just the substitutions reachable by a +single-nucleotide change (roughly 6 of 19 per position) and therefore appear sparser.

Unlike per-gene scores, popEVE is calibrated across the whole proteome, so cells are colored on a single global gradient keyed to the raw popEVE score (lower, more negative scores are more deleterious). The color is interpolated between the five anchors below: the published severe and moderate thresholds are fixed anchors, and the extremes saturate at the 0.5th and 99.5th percentiles of the proteome-wide score distribution.

@@ -54,43 +54,43 @@
Color popEVE score Interpretation
  ≤ −5.74

Note: popEVE ranks deleteriousness to organismal fitness, weighted toward severe, often early-onset phenotypes, rather than classic clinical pathogenicity. Some well-known disease genes whose variants act mainly through loss of function or cause adult-onset conditions (for example BRCA1) may therefore show few or no cells in the severe range.

Hovering over a cell shows a summary of that substitution and the scores behind it, for example:

G1042→A
popEVE: -3.652 (tolerated)
-EVE: 6.75
+EVE index: 6.75
ESM1v: -8.779
popAdj: EVE -3.537 / ESM1v -3.767
gap: 0.277

- +
Field Meaning
G1042→A The substitution: the wildtype amino acid (G) at the protein position (1042) changed to the variant amino acid (A) represented by this row.
popEVE The popEVE score and its severity class (severe / moderate / tolerated). This is the calibrated, proteome-wide score — comparable across genes, with lower (more negative) values more deleterious — and it determines the cell color.
EVE
EVE index The raw EVE evolutionary index used as an input to popEVE (a log-likelihood-ratio scale on which higher values are more deleterious). This is not the same as the 0–1 score shown in the separate EVE track.
ESM1v The raw ESM-1v protein language model score used as the other input to popEVE, on which more negative values are more deleterious.
popAdj The EVE and ESM-1v scores after popEVE's population-based recalibration onto the proteome-wide scale; the popEVE score is the combination of these two.
gap The fraction of sequences with a gap at this position in the multiple sequence alignment (a per-position value; higher means sparser alignment coverage and a weaker evolutionary signal).

For reverse-strand genes, protein positions are displayed left to right in genomic order (C-terminus to N-terminus on the screen), consistent with the standard genome browser orientation.

@@ -108,36 +108,38 @@ variation, and ESM-1v, a protein language model trained on the UniRef database. For each protein, the evolutionary scores from these models are treated as a prior, and a Gaussian process is used to model how the probability of observing a variant in the human population (the UK Biobank, ~500,000 exomes) depends on its evolutionary score. Population data are used only as a coarse "seen / not seen" signal rather than by allele frequency, which lets the resulting score rank the deleteriousness of variants across different proteins while leaving the within-gene ranking essentially unchanged. The inferred function rescales the evolutionary score per protein to account for the degree of constraint acting on that protein in the population, producing a calibrated, proteome-wide score. Low (more negative) scores indicate greater predicted deleteriousness. Following the authors, a high-confidence severe threshold is set at −5.056 and a moderate threshold at −4.617, each derived from a two-component Gaussian mixture fit. See Orenbuch et al. 2025 for full details.

-The data were downloaded as a complete GRCh38 VCF (UKBB-trained popEVE, version 1.1) from -https://pop.evemodel.org. -The VCF lists, for every possible missense substitution, its genomic coordinates, the RefSeq -protein accession and gene symbol, the popEVE score and component scores. Multiple codon -changes encoding the same amino acid substitution carry identical popEVE scores and were -deduplicated to one record per substitution. Records were converted to heatmap bigBed format +The full per-amino-acid popEVE score matrices (all substitutions at every position, with the +popEVE score and component scores) were downloaded as per-transcript files from +https://pop.evemodel.org +(UKBB-trained popEVE, version 1.1). Because those files are keyed by RefSeq protein position +rather than by genome coordinate, the genomic codon coordinates for each residue were taken +from the companion complete GRCh38 popEVE VCF. A small number of proteins present in the VCF +but not in the per-transcript release retain only their single-nucleotide-reachable +substitutions. Records were converted to heatmap bigBed format with a custom Python script; full processing instructions are in the makedoc file, and the conversion scripts are available in our GitHub repository. The strand of each protein was taken from NCBI RefSeq. The global color gradient saturates at the 0.5th and 99.5th percentiles of the proteome-wide score distribution.

Data Access

The data can be explored interactively in table format with the Table Browser or the Data Integrator and exported from there to spreadsheet or tab-separated tables. From scripts, the data can be accessed through our API, track=popEve.