Skip to content
intermediatescience

ClinVar Variant Classification with ACMG/AMP Terms

Classify variants in igv.js with five ACMG/AMP terms and tick evidence criteria. The ten cases are illustrative, beside a live ClinVar track, and not a diagnosis.

Get This Design

View on GitHub(opens in a new tab)

Clone or download from the repository

Quick start:

bash
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/science/genomics/clinvar-variant-classification-acmg
potato start config.yaml

About this dataset

ClinVar is NCBI's public archive of interpretations of clinically relevant variants (Landrum et al., 2016). Laboratories and other submitters report a classification for each variant, and the archive publishes the reports. The joint recommendation of the American College of Medical Genetics and Genomics and the Association for Molecular Pathology (Richards et al., 2015) sets the standard behind most of the terms. The recommendation names the terms 'pathogenic', 'likely pathogenic', 'uncertain significance', 'likely benign', and 'benign' for variants in genes that cause Mendelian disorders.

This design is a training and review exercise and is not clinical diagnosis. The ten cases are invented. Each case pairs a short evidence summary with an invented position inside a real gene. The genes are BRCA1, BRCA2, CFTR, MSH2, MYH7, and TP53, with spans from Ensembl GRCh38. No ClinVar record, identifier, or classification is copied. NCBI's policies page says NCBI places no restrictions on the data and that some submitters may claim rights. ClinVar's own data-use page returned a bot check and was not read. The items therefore stay illustrative. The genome_locus display opens igv.js on hg38 and reads NCBI's ClinVar VCF over HTTP range requests. The annotator sees whatever ClinVar holds near the position, and an invented position may show a ClinVar record or none.

The annotator picks one of the five terms with a radio scheme and ticks the evidence criteria used from the 28 codes in Tables 3 and 4 of the standard. The codes are PVS1, PS1 to PS4, PM1 to PM6, PP1 to PP5, BA1, BS1 to BS4, and BP1 to BP7. A viewer_selection scheme lets the annotator click a track feature as evidence. Potato does not apply the standard's rules for combining criteria (Table 5) and does not check that the verdict follows from the ticked criteria. The two answers are therefore recorded independently. The config has no model_training block because none of Potato's trainers reads a genome locus.

Classification terms
5
Evidence criteria codes (Tables 3 and 4)
28
Pathogenic criteria codes
16
Benign criteria codes
12
Sample cases (illustrative)
10

Configuration File

This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.

yaml
# ClinVar variant classification with the ACMG/AMP five terms (training exercise)
#
# THIS IS A TRAINING AND REVIEW EXERCISE, NOT CLINICAL DIAGNOSIS. Nothing here
# is a clinical interpretation, and the cases must not be used for patient care.
# Per the abstract of Richards et al., clinical testing "should be performed in
# a CLIA-approved laboratory with results interpreted by a board-certified
# clinical molecular geneticist or molecular genetic pathologist or equivalent."
#
# Standard:  Richards et al., Standards and guidelines for the interpretation
#            of sequence variants: a joint consensus recommendation of the
#            American College of Medical Genetics and Genomics and the
#            Association for Molecular Pathology. Genetics in Medicine 17(5),
#            405-424, 2015.
# DOI:       10.1038/gim.2015.30
# PMC:       https://pmc.ncbi.nlm.nih.gov/articles/PMC4544753/
# BibTeX (Crossref):
#   @article{Richards_2015,
#     title     = {Standards and guidelines for the interpretation of sequence variants: a joint consensus recommendation of the American College of Medical Genetics and Genomics and the Association for Molecular Pathology},
#     volume    = {17},
#     ISSN      = {1098-3600},
#     url       = {http://dx.doi.org/10.1038/gim.2015.30},
#     DOI       = {10.1038/gim.2015.30},
#     number    = {5},
#     journal   = {Genetics in Medicine},
#     publisher = {Elsevier BV},
#     author    = {Richards, Sue and Aziz, Nazneen and Bale, Sherri and Bick, David and Das, Soma and Gastier-Foster, Julie and Grody, Wayne W. and Hegde, Madhuri and Lyon, Elaine and Spector, Elaine and Voelkerding, Karl and Rehm, Heidi L.},
#     year      = {2015},
#     month     = May,
#     pages     = {405--424}
#   }
# Archive:   ClinVar. Landrum et al., ClinVar: public archive of interpretations
#            of clinically relevant variants. Nucleic Acids Research 44(D1),
#            D862-D868, 2016. DOI 10.1093/nar/gkv1222
# Data:      https://www.ncbi.nlm.nih.gov/clinvar/
#            The ClinVar track below is read by the browser from NCBI's FTP site
#            (https://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh38/clinvar.vcf.gz,
#            with its .tbi index). Nothing from ClinVar is copied into this folder.
# Licence:   NCBI's policies page (https://www.ncbi.nlm.nih.gov/home/about/policies/)
#            says "NCBI itself places no restrictions on the use or distribution
#            of the data contained therein" and adds that "some submitters of the
#            original data" may claim rights. ClinVar's own data-use page returned
#            a bot check and was not read, so the sample items below are
#            illustrative. They are invented cases at invented positions inside
#            real gene spans (Ensembl GRCh38 gene coordinates), with no ClinVar
#            record, variant identifier or classification copied. A position may
#            show a ClinVar record in the track or none.
# Reference: the hg38 genome and its gene annotation are igv.js's built-in genome,
#            fetched from the internet, which is why allow_remote is true.
#
# The five terms (abstract of Richards et al.): 'pathogenic', 'likely
# pathogenic', 'uncertain significance', 'likely benign', and 'benign'.
#
# Evidence criteria. The multiselect lists the 28 criteria codes of Tables 3
# (PVS1, PS1-PS4, PM1-PM6, PP1-PP5) and 4 (BA1, BS1-BS4, BP1-BP7), with the
# wording of each table row. The tables' caveats and notes are left out.
#
# Adaptations (this design differs from the original standard here):
#   - Potato records the criteria an annotator ticks and the verdict they pick.
#     It does NOT apply Table 5, the rules for combining criteria into a
#     classification, and it does not check that the verdict follows from the
#     ticked criteria. The ticked list and the verdict are independent answers.
#   - The standard weights criteria as very strong, strong, moderate,
#     supporting or stand-alone, and a laboratory may adjust a weight. This
#     design records only which criteria are present.
#   - The cases are invented summaries, so no criterion can be confirmed from
#     real patient, family or functional data. The note and the tracks are the
#     only evidence. A real review would use data this design does not carry.
#   - ClinVar review statuses are out of scope. Their wording was not read.
#
# No model_training block. Potato's trainers consume text, images, audio and
# similar data, and none reads a genome locus. This design only collects labels.
#
# Run from this folder:
#   potato start config.yaml -p 8000

annotation_task_name: "ClinVar variant classification (ACMG/AMP training exercise)"
task_dir: "."

data_files:
  - "sample-data.json"

item_properties:
  id_key: id
  text_key: note

output_annotation_dir: "annotation_output"
export_annotation_format: jsonl

instance_display:
  fields:
    - key: note
      type: text
      label: "Illustrative case (not a real patient)"
    - key: locus
      type: genome_locus
      label: "Locus (GRCh38)"
      display_options:
        genome: hg38
        allow_remote: true
        flank: 100
        select_features: true
        tracks:
          - name: "ClinVar (NCBI, GRCh38)"
            url: "https://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh38/clinvar.vcf.gz"
            format: vcf

user_config:
  allow_all_users: true

annotation_instructions: |
  This is a training exercise, not a clinical diagnosis. Read the illustrative
  case note, look at the locus in the browser, and classify the variant with
  the five terms of the ACMG/AMP standard (Richards et al., 2015). Then tick
  the evidence criteria you relied on. The criteria are a record of your
  reasoning. Potato does not combine them or check them against your verdict.

annotation_schemes:
  - annotation_type: radio
    name: acmg_classification
    description: "Classify the variant with the ACMG/AMP terms"
    humanize_labels: false
    labels:
      - name: "pathogenic"
        key_value: "1"
      - name: "likely pathogenic"
        key_value: "2"
      - name: "uncertain significance"
        key_value: "3"
      - name: "likely benign"
        key_value: "4"
      - name: "benign"
        key_value: "5"
    label_requirement:
      required: true

  - annotation_type: multiselect
    name: acmg_criteria
    description: "Which ACMG/AMP evidence criteria apply? (select all that apply)"
    humanize_labels: false
    labels:
      - "PVS1: Null variant (nonsense, frameshift, canonical +/−1 or 2 splice sites, initiation codon, single or multi-exon deletion) in a gene where loss of function (LOF) is a known mechanism of disease"
      - "PS1: Same amino acid change as a previously established pathogenic variant regardless of nucleotide change"
      - "PS2: De novo (both maternity and paternity confirmed) in a patient with the disease and no family history"
      - "PS3: Well-established in vitro or in vivo functional studies supportive of a damaging effect on the gene or gene product"
      - "PS4: The prevalence of the variant in affected individuals is significantly increased compared to the prevalence in controls"
      - "PM1: Located in a mutational hot spot and/or critical and well-established functional domain (e.g. active site of an enzyme) without benign variation"
      - "PM2: Absent from controls (or at extremely low frequency if recessive) (see Table 6) in Exome Sequencing Project, 1000 Genomes or ExAC"
      - "PM3: For recessive disorders, detected in trans with a pathogenic variant"
      - "PM4: Protein length changes due to in-frame deletions/insertions in a non-repeat region or stop-loss variants"
      - "PM5: Novel missense change at an amino acid residue where a different missense change determined to be pathogenic has been seen before"
      - "PM6: Assumed de novo, but without confirmation of paternity and maternity"
      - "PP1: Co-segregation with disease in multiple affected family members in a gene definitively known to cause the disease"
      - "PP2: Missense variant in a gene that has a low rate of benign missense variation and where missense variants are a common mechanism of disease"
      - "PP3: Multiple lines of computational evidence support a deleterious effect on the gene or gene product (conservation, evolutionary, splicing impact, etc)"
      - "PP4: Patient’s phenotype or family history is highly specific for a disease with a single genetic etiology"
      - "PP5: Reputable source recently reports variant as pathogenic but the evidence is not available to the laboratory to perform an independent evaluation"
      - "BA1: Allele frequency is above 5% in Exome Sequencing Project, 1000 Genomes, or ExAC"
      - "BS1: Allele frequency is greater than expected for disorder (see table 6)"
      - "BS2: Observed in a healthy adult individual for a recessive (homozygous), dominant (heterozygous), or X-linked (hemizygous) disorder with full penetrance expected at an early age"
      - "BS3: Well-established in vitro or in vivo functional studies shows no damaging effect on protein function or splicing"
      - "BS4: Lack of segregation in affected members of a family"
      - "BP1: Missense variant in a gene for which primarily truncating variants are known to cause disease"
      - "BP2: Observed in trans with a pathogenic variant for a fully penetrant dominant gene/disorder; or observed in cis with a pathogenic variant in any inheritance pattern"
      - "BP3: In-frame deletions/insertions in a repetitive region without a known function"
      - "BP4: Multiple lines of computational evidence suggest no impact on gene or gene product (conservation, evolutionary, splicing impact, etc)"
      - "BP5: Variant found in a case with an alternate molecular basis for disease"
      - "BP6: Reputable source recently reports variant as benign but the evidence is not available to the laboratory to perform an independent evaluation"
      - "BP7: A synonymous (silent) variant for which splicing prediction algorithms predict no impact to the splice consensus sequence nor the creation of a new splice site AND the nucleotide is not highly conserved"

  - annotation_type: viewer_selection
    name: evidence_feature
    description: "Evidence (optional): click the ClinVar record or gene you based this on"
    viewer_field: locus
    max_selections: 4

Sample Data

json
[
  {
    "id": "acmg_001",
    "gene": "BRCA1",
    "locus": "chr17:43,094,000",
    "note": "Illustrative case 1. Invented variant at an invented position inside BRCA1 (GRCh38). Evidence summary: absent from population databases and reported in several unrelated affected individuals."
  },
  {
    "id": "acmg_002",
    "gene": "BRCA1",
    "locus": "chr17:43,124,000",
    "note": "Illustrative case 2. Invented variant at an invented position inside BRCA1 (GRCh38). Evidence summary: seen in a healthy adult and at a frequency higher than the disorder allows."
  }
]

// ... and 8 more items

Dataset & paper

Richards et al., Genetics in Medicine 2015

Paper DOI
10.1038/gim.2015.30

Citation (BibTeX)

bibtex
@article{Richards_2015,
  title     = {Standards and guidelines for the interpretation of sequence variants: a joint consensus recommendation of the American College of Medical Genetics and Genomics and the Association for Molecular Pathology},
  volume    = {17},
  ISSN      = {1098-3600},
  url       = {http://dx.doi.org/10.1038/gim.2015.30},
  DOI       = {10.1038/gim.2015.30},
  number    = {5},
  journal   = {Genetics in Medicine},
  publisher = {Elsevier BV},
  author    = {Richards, Sue and Aziz, Nazneen and Bale, Sherri and Bick, David and Das, Soma and Gastier-Foster, Julie and Grody, Wayne W. and Hegde, Madhuri and Lyon, Elaine and Spector, Elaine and Voelkerding, Karl and Rehm, Heidi L.},
  year      = {2015},
  month     = May,
  pages     = {405--424}
}

Details

Annotation Types

radiomultiselectviewer_selection

Domain

genomicsclinical genetics

Use Cases

variant classification trainingvariant reviewevidence criteria tagging

Tags

clinvaracmgampvariant classificationgenome_locusigv.jshg38viewer_selectiontraining exercise

Found an issue or want to improve this design?

Open an Issue(opens in a new tab)