The NCBI Entrez Ecosystem

The NCBI Entrez Ecosystem · Subtopic 4 of 5 · 11 min

dbSNP and ClinVar: Variation and Clinical Significance

Everything so far has treated a gene as one reference sequence. Real genomes disagree with that reference at millions of positions, and a handful of those disagreements decide whether someone develops disease. This lesson shows you the two NCBI databases that catalog those differences — dbSNP records where genomes vary, and ClinVar records whether it matters — and how to pull a clinical verdict on a BRCA1 variant with a few lines of code.

dbSNP: a catalog of where genomes differ

A variant is simply a position where one genome's sequence differs from the reference — the NC_000017 chromosome 17 RefSeq reference sequence, in BRCA1's case. dbSNP is NCBI's archive of these positions. Despite the name (originally "SNP" for single-nucleotide polymorphism), it now holds insertions, deletions, and short substitutions too, not just single-letter changes.

Every distinct variant in dbSNP gets an rs ID (a reference SNP cluster ID — a stable, permanent identifier for one variant at one genomic location), written like rs28897672. The "cluster" part matters: dbSNP merges every independent submission of the same change into one rs record, so rs28897672 is the canonical handle for that position no matter who reported it. This is the same accession-versus-record idea from What an Accession Number Is, applied to variation.

One subtlety: dbSNP reports alleles on the sequence's own strand. BRCA1 sits on the minus strand of chromosome 17, so a change you would write as c.181T>G in transcript coordinates shows up in dbSNP's genomic view as an A>C allele. Same event, different frame of reference — always check which coordinate system you are reading.

ClinVar: adding the clinical verdict

dbSNP tells you a variant exists. It does not tell you whether carrying it is dangerous. That judgment lives in ClinVar, NCBI's archive of assertions linking a variant to a health condition, each backed by a submitter and evidence.

ClinVar's core output is a clinical significance term drawn from a controlled five-tier vocabulary:

TermPlain meaning
Pathogenicstrong evidence it causes disease
Likely pathogenicprobably causes disease (≥ 90% confident)
Uncertain significance (VUS)evidence is insufficient either way
Likely benignprobably harmless
Benignstrong evidence it is harmless

That middle row, VUS, is the one that dominates real reports — most rare variants sit there because nobody has enough data yet.

ClinVar uses two accession types, and mixing them up is a classic beginner error:

  • An RCV accession (like RCV000031218) is one assertion: this variant, judged against this one condition, by this submitter.
  • A VCV accession (like VCV000017661) is the aggregate for a variant — it rolls up every RCV about that variant into a single reference-variant record. When you want "ClinVar's overall view of this change," you want the VCV.

Review status: how much to trust the call

A "Pathogenic" label from an unnamed single lab and one from an international expert committee are not equal, so ClinVar attaches a review status rendered as zero to four gold stars — a confidence signal about who made the call and whether they agreed.

StarsReview status
0no assertion criteria provided
1single submitter, criteria provided
2multiple submitters, no conflicts
3reviewed by an expert panel
4endorsed in a practice guideline

Always read the stars alongside the significance term. A one-star "Pathogenic" is a lead to verify; a three-star one carries real weight.

A worked BRCA1 example

BRCA1's RING domain holds a cysteine at protein position 61 that is essential for the protein to partner with BARD1. The variant NM_007294.4:c.181T>G swaps that cysteine for glycine (p.Cys61Gly) and breaks the interaction. In dbSNP it is rs28897672; in ClinVar its aggregate record is VCV000017661, classified Pathogenic with a three-star review by the ENIGMA expert panel. That is sequence meeting medicine in one record.

You can retrieve it programmatically with the same Entrez module from NCBI Gene: the Gene-Centric Hub. ClinVar's Entrez db name is clinvar:

python
from Bio import Entrez
Entrez.email = "[email protected]"   # NCBI asks who you are

# Find pathogenic BRCA1 variants, then summarize the first hit
search = Entrez.read(Entrez.esearch(
    db="clinvar",
    term='BRCA1[gene] AND "pathogenic"[Clinical_significance]'))

summary = Entrez.read(Entrez.esummary(
    db="clinvar", id=search["IdList"][0]))
record = summary["DocumentSummarySet"]["DocumentSummary"][0]

print(record["accession"])                 # VCV... accession
print(record["clinical_significance"])     # description + review_status

The returned summary carries the VCV accession, the significance term, and the review status together — exactly the three fields you just learned to read by eye.

Try it yourself, then sanity-check the result in a browser. An rs ID is not a clinical verdict: rs28897672 actually clusters three different substitutions at the same position (C61G, C61R, C61S), each with its own ClinVar record and possibly a different star rating. Never report "rs-number is pathogenic" — report the specific allele and its VCV. And keep your esearch loops under the E-utilities cap of 3 req/s (or 10 req/s with a free API key), or NCBI will throttle you.

Where this leads

A ClinVar record is the endpoint of a whole annotation pipeline: someone first has to call the variant from sequencing reads, map it to a transcript, and predict its effect before a curator can weigh in. If you want to see that middle step — how a raw variant call becomes an annotated, interpretable verdict like the one BRCA1's C61G carries — the blog post variant annotation with VEP, ANNOVAR, SnpEff and ACMG walks the full path.