From cc043c3a77d24b9483bb387104b083d0194c975a Mon Sep 17 00:00:00 2001 From: Rajat Roy Date: Tue, 30 Apr 2024 10:23:00 -0700 Subject: [PATCH] Deploy website - based on 50faa1626332736fe27c6c5a233bf278c6253a68 --- .../canonical-transcripts/index.html | 8 ++++---- .../gene-fusions/index.html | 8 ++++---- .../transcript-consequence-impacts/index.html | 8 ++++---- .../core-functionality/variant-ids/index.html | 8 ++++---- .../1000Genomes-snv-json/index.html | 8 ++++---- .../1000Genomes-sv-json/index.html | 8 ++++---- 3.22/data-sources/1000Genomes/index.html | 8 ++++---- .../amino-acid-conservation-json/index.html | 8 ++++---- .../amino-acid-conservation/index.html | 8 ++++---- 3.22/data-sources/cancer-hotspots/index.html | 8 ++++---- .../clingen-dosage-json/index.html | 8 ++++---- .../clingen-gene-validity-json/index.html | 8 ++++---- 3.22/data-sources/clingen-json/index.html | 8 ++++---- 3.22/data-sources/clingen/index.html | 8 ++++---- 3.22/data-sources/clinvar-json/index.html | 8 ++++---- 3.22/data-sources/clinvar/index.html | 8 ++++---- .../cosmic-cancer-gene-census/index.html | 8 ++++---- .../cosmic-gene-fusion-json/index.html | 8 ++++---- 3.22/data-sources/cosmic-json/index.html | 8 ++++---- 3.22/data-sources/cosmic/index.html | 8 ++++---- 3.22/data-sources/dann-json/index.html | 8 ++++---- 3.22/data-sources/dann/index.html | 8 ++++---- 3.22/data-sources/dbsnp-json/index.html | 8 ++++---- 3.22/data-sources/dbsnp/index.html | 8 ++++---- 3.22/data-sources/decipher-json/index.html | 8 ++++---- 3.22/data-sources/decipher/index.html | 8 ++++---- .../fusioncatcher-json/index.html | 8 ++++---- 3.22/data-sources/fusioncatcher/index.html | 8 ++++---- 3.22/data-sources/gerp-json/index.html | 8 ++++---- 3.22/data-sources/gerp/index.html | 8 ++++---- 3.22/data-sources/gme-json/index.html | 8 ++++---- 3.22/data-sources/gme/index.html | 8 ++++---- 3.22/data-sources/gnomad-lof-json/index.html | 8 ++++---- .../gnomad-small-variants-json/index.html | 8 ++++---- .../index.html | 8 ++++---- .../index.html | 8 ++++---- 3.22/data-sources/gnomad/index.html | 8 ++++---- .../data-sources/mito-heteroplasmy/index.html | 8 ++++---- .../mitomap-small-variants-json/index.html | 8 ++++---- .../index.html | 8 ++++---- 3.22/data-sources/mitomap/index.html | 8 ++++---- 3.22/data-sources/omim-json/index.html | 8 ++++---- 3.22/data-sources/omim/index.html | 8 ++++---- 3.22/data-sources/phylop-json/index.html | 8 ++++---- 3.22/data-sources/phylop/index.html | 8 ++++---- 3.22/data-sources/primate-ai-json/index.html | 8 ++++---- 3.22/data-sources/primate-ai/index.html | 8 ++++---- 3.22/data-sources/revel-json/index.html | 8 ++++---- 3.22/data-sources/revel/index.html | 8 ++++---- 3.22/data-sources/splice-ai-json/index.html | 8 ++++---- 3.22/data-sources/splice-ai/index.html | 8 ++++---- 3.22/data-sources/topmed-json/index.html | 8 ++++---- 3.22/data-sources/topmed/index.html | 8 ++++---- .../custom-annotations/index.html | 8 ++++---- .../index.html | 8 ++++---- 3.22/index.html | 8 ++++---- 3.22/introduction/dependencies/index.html | 8 ++++---- 3.22/introduction/getting-started/index.html | 8 ++++---- 3.22/introduction/parsing-json/index.html | 8 ++++---- 3.22/utilities/jasix/index.html | 8 ++++---- 3.22/utilities/sautils/index.html | 8 ++++---- .../canonical-transcripts/index.html | 8 ++++---- .../gene-fusions/index.html | 8 ++++---- .../transcript-consequence-impacts/index.html | 8 ++++---- .../core-functionality/variant-ids/index.html | 8 ++++---- .../1000Genomes-snv-json/index.html | 8 ++++---- .../1000Genomes-sv-json/index.html | 8 ++++---- 3.23/data-sources/1000Genomes/index.html | 8 ++++---- .../amino-acid-conservation-json/index.html | 8 ++++---- .../amino-acid-conservation/index.html | 8 ++++---- 3.23/data-sources/cancer-hotspots/index.html | 8 ++++---- .../clingen-dosage-json/index.html | 8 ++++---- .../clingen-gene-validity-json/index.html | 8 ++++---- 3.23/data-sources/clingen-json/index.html | 8 ++++---- 3.23/data-sources/clingen/index.html | 8 ++++---- 3.23/data-sources/clinvar-json/index.html | 8 ++++---- 3.23/data-sources/clinvar/index.html | 8 ++++---- .../cosmic-cancer-gene-census/index.html | 8 ++++---- .../cosmic-gene-fusion-json/index.html | 8 ++++---- 3.23/data-sources/cosmic-json/index.html | 8 ++++---- 3.23/data-sources/cosmic/index.html | 8 ++++---- 3.23/data-sources/dann-json/index.html | 8 ++++---- 3.23/data-sources/dann/index.html | 8 ++++---- 3.23/data-sources/dbsnp-json/index.html | 8 ++++---- 3.23/data-sources/dbsnp/index.html | 8 ++++---- 3.23/data-sources/decipher-json/index.html | 8 ++++---- 3.23/data-sources/decipher/index.html | 8 ++++---- .../fusioncatcher-json/index.html | 8 ++++---- 3.23/data-sources/fusioncatcher/index.html | 8 ++++---- 3.23/data-sources/gerp-json/index.html | 8 ++++---- 3.23/data-sources/gerp/index.html | 8 ++++---- 3.23/data-sources/gme-json/index.html | 8 ++++---- 3.23/data-sources/gme/index.html | 8 ++++---- 3.23/data-sources/gnomad-lof-json/index.html | 8 ++++---- .../gnomad-small-variants-json/index.html | 8 ++++---- .../index.html | 8 ++++---- .../index.html | 8 ++++---- 3.23/data-sources/gnomad/index.html | 8 ++++---- .../data-sources/mito-heteroplasmy/index.html | 8 ++++---- .../mitomap-small-variants-json/index.html | 8 ++++---- .../index.html | 8 ++++---- 3.23/data-sources/mitomap/index.html | 8 ++++---- 3.23/data-sources/omim-json/index.html | 8 ++++---- 3.23/data-sources/omim/index.html | 8 ++++---- 3.23/data-sources/phylop-json/index.html | 8 ++++---- 3.23/data-sources/phylop/index.html | 8 ++++---- .../phylopprimate-json/index.html | 8 ++++---- 3.23/data-sources/primate-ai-json/index.html | 8 ++++---- 3.23/data-sources/primate-ai/index.html | 8 ++++---- 3.23/data-sources/revel-json/index.html | 8 ++++---- 3.23/data-sources/revel/index.html | 8 ++++---- 3.23/data-sources/splice-ai-json/index.html | 8 ++++---- 3.23/data-sources/splice-ai/index.html | 8 ++++---- 3.23/data-sources/topmed-json/index.html | 8 ++++---- 3.23/data-sources/topmed/index.html | 8 ++++---- .../custom-annotations/index.html | 8 ++++---- .../index.html | 8 ++++---- 3.23/index.html | 8 ++++---- 3.23/introduction/dependencies/index.html | 8 ++++---- 3.23/introduction/getting-started/index.html | 8 ++++---- 3.23/introduction/licensedContent/index.html | 11 +++++------ 3.23/introduction/parsing-json/index.html | 8 ++++---- 3.23/utilities/jasix/index.html | 8 ++++---- 3.23/utilities/sautils/index.html | 8 ++++---- 404.html | 8 ++++---- ...etion-c733fc75acdc0ef64ac7d181d5ff81fe.png | Bin 0 -> 232611 bytes assets/js/2973af85.4d30d440.js | 1 + assets/js/2973af85.7079b2ed.js | 1 - assets/js/463e69e4.1615fe13.js | 1 + assets/js/463e69e4.bda43dd0.js | 1 - assets/js/4b69b274.89bfa8ee.js | 1 + ...fc72f.f6f63a8a.js => 5ddfc72f.43897a6b.js} | 2 +- assets/js/75a3a2eb.00f2bb5f.js | 1 + assets/js/75a3a2eb.a6960e59.js | 1 - assets/js/8b7fbb05.1f8311c3.js | 1 + assets/js/8b7fbb05.aabb5c94.js | 1 - assets/js/8c5c59ee.5de8c229.js | 1 + assets/js/935f2afb.2f9a43ce.js | 1 - assets/js/935f2afb.e94232a1.js | 1 + ...8ed9e.49c67853.js => f048ed9e.55c06daa.js} | 2 +- assets/js/main.23b43cc6.js | 2 ++ ...CENSE.txt => main.23b43cc6.js.LICENSE.txt} | 0 assets/js/main.f0f0f5d6.js | 2 -- assets/js/runtime~main.a35c242c.js | 1 - assets/js/runtime~main.fe5beb3e.js | 1 + blog/archive/index.html | 8 ++++---- .../canonical-transcripts/index.html | 10 +++++----- core-functionality/gene-fusions/index.html | 10 +++++----- .../junction-preserving/index.html | 18 ++++++++++++++++++ .../transcript-consequence-impacts/index.html | 12 ++++++------ core-functionality/variant-ids/index.html | 10 +++++----- data-sources/1000Genomes-snv-json/index.html | 8 ++++---- data-sources/1000Genomes-sv-json/index.html | 8 ++++---- data-sources/1000Genomes/index.html | 10 +++++----- .../amino-acid-conservation-json/index.html | 8 ++++---- .../amino-acid-conservation/index.html | 10 +++++----- data-sources/cancer-hotspots/index.html | 10 +++++----- data-sources/clingen-dosage-json/index.html | 8 ++++---- .../clingen-gene-validity-json/index.html | 8 ++++---- data-sources/clingen-json/index.html | 8 ++++---- data-sources/clingen/index.html | 10 +++++----- data-sources/clinvar-json/index.html | 8 ++++---- data-sources/clinvar-preview-json/index.html | 8 ++++---- data-sources/clinvar-preview/index.html | 10 +++++----- data-sources/clinvar/index.html | 10 +++++----- .../cosmic-cancer-gene-census/index.html | 8 ++++---- .../cosmic-gene-fusion-json/index.html | 8 ++++---- data-sources/cosmic-json/index.html | 8 ++++---- data-sources/cosmic/index.html | 10 +++++----- data-sources/dann-json/index.html | 8 ++++---- data-sources/dann/index.html | 10 +++++----- data-sources/dbsnp-json/index.html | 8 ++++---- data-sources/dbsnp/index.html | 10 +++++----- data-sources/decipher-json/index.html | 8 ++++---- data-sources/decipher/index.html | 10 +++++----- data-sources/fusioncatcher-json/index.html | 8 ++++---- data-sources/fusioncatcher/index.html | 10 +++++----- data-sources/gerp-json/index.html | 8 ++++---- data-sources/gerp/index.html | 10 +++++----- data-sources/gme-json/index.html | 8 ++++---- data-sources/gme/index.html | 10 +++++----- data-sources/gnomad-lof-json/index.html | 8 ++++---- .../gnomad-small-variants-json/index.html | 8 ++++---- .../index.html | 8 ++++---- .../index.html | 8 ++++---- data-sources/gnomad/index.html | 10 +++++----- data-sources/gnomad4.0-lof-json/index.html | 8 ++++---- .../gnomad4.0-small-variants-json/index.html | 8 ++++---- .../index.html | 8 ++++---- data-sources/mito-heteroplasmy/index.html | 10 +++++----- .../mitomap-small-variants-json/index.html | 8 ++++---- .../index.html | 8 ++++---- data-sources/mitomap/index.html | 10 +++++----- data-sources/omim-json/index.html | 8 ++++---- data-sources/omim/index.html | 10 +++++----- data-sources/phylop-json/index.html | 8 ++++---- data-sources/phylop/index.html | 10 +++++----- data-sources/phylopprimate-json/index.html | 8 ++++---- data-sources/primate-ai-json/index.html | 8 ++++---- data-sources/primate-ai/index.html | 10 +++++----- data-sources/revel-json/index.html | 8 ++++---- data-sources/revel/index.html | 10 +++++----- data-sources/splice-ai-json/index.html | 8 ++++---- data-sources/splice-ai/index.html | 10 +++++----- data-sources/topmed-json/index.html | 8 ++++---- data-sources/topmed/index.html | 10 +++++----- file-formats/custom-annotations/index.html | 10 +++++----- .../index.html | 10 +++++----- .../index.html | 10 +++++----- .../Annotator-vs-data-update/index.html | 18 ++++++++++++++++++ index.html | 10 +++++----- introduction/dependencies/index.html | 10 +++++----- introduction/getting-started/index.html | 10 +++++----- introduction/licensedContent/index.html | 16 +++++++++------- introduction/parsing-json/index.html | 10 +++++----- search/index.html | 8 ++++---- sitemap.xml | 2 +- utilities/jasix/index.html | 10 +++++----- utilities/sautils/index.html | 12 ++++++------ versions/index.html | 8 ++++---- 220 files changed, 880 insertions(+), 841 deletions(-) create mode 100644 assets/images/27-nt-deletion-c733fc75acdc0ef64ac7d181d5ff81fe.png create mode 100644 assets/js/2973af85.4d30d440.js delete mode 100644 assets/js/2973af85.7079b2ed.js create mode 100644 assets/js/463e69e4.1615fe13.js delete mode 100644 assets/js/463e69e4.bda43dd0.js create mode 100644 assets/js/4b69b274.89bfa8ee.js rename assets/js/{5ddfc72f.f6f63a8a.js => 5ddfc72f.43897a6b.js} (80%) create mode 100644 assets/js/75a3a2eb.00f2bb5f.js delete mode 100644 assets/js/75a3a2eb.a6960e59.js create mode 100644 assets/js/8b7fbb05.1f8311c3.js delete mode 100644 assets/js/8b7fbb05.aabb5c94.js create mode 100644 assets/js/8c5c59ee.5de8c229.js delete mode 100644 assets/js/935f2afb.2f9a43ce.js create mode 100644 assets/js/935f2afb.e94232a1.js rename assets/js/{f048ed9e.49c67853.js => f048ed9e.55c06daa.js} (78%) create mode 100644 assets/js/main.23b43cc6.js rename assets/js/{main.f0f0f5d6.js.LICENSE.txt => main.23b43cc6.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.f0f0f5d6.js delete mode 100644 assets/js/runtime~main.a35c242c.js create mode 100644 assets/js/runtime~main.fe5beb3e.js create mode 100644 core-functionality/junction-preserving/index.html create mode 100644 frequently-asked-questions/Annotator-vs-data-update/index.html diff --git a/3.22/core-functionality/canonical-transcripts/index.html b/3.22/core-functionality/canonical-transcripts/index.html index b209f322..7ec4fcb4 100644 --- a/3.22/core-functionality/canonical-transcripts/index.html +++ b/3.22/core-functionality/canonical-transcripts/index.html @@ -6,13 +6,13 @@ Canonical Transcripts | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Canonical Transcripts

Overview

One of the more polarizing topics within annotation is the notion of canonical transcripts. Because of alternative splicing, we often have several transcripts for each gene. In the human genome, there are an average of 3.4 transcripts per gene (Tung, 2020). As scientists, we seem to have a need for identifying a representative example of a gene - even if there's no biological basis for the motivation.

Golden Helix Blog

A few years ago, the guys over at Golden Helix wrote an excellent post about the pitfalls and issues surrounding the identification of canonical transcripts: What’s in a Name: The Intricacies of Identifying Variants.

In Illumina Connected Annotations, we wanted to identify an algorithm for determining the canonical transcript and apply it consistently to all of our transcript data sources.

Known Algorithms

UCSC

UCSC publishes a list of canonical transcripts in its knownCanonical table which is available via the TableBrowser. Of the RefSeq data sources, it was the only one we could find that provided canonical transcripts:

The canonical transcript is defined as either the longest CDS, if the gene has translated transcripts, or the longest cDNA.

If you were to implement this and compare it with the knownCanonical table, you would see a lot of exceptions to the rule.

Ensembl

The Ensembl glossary states:

The canonical transcript is used in the gene tree analysis in Ensembl and does not necessarily reflect the most biologically relevant transcript of a gene. For human, the canonical transcript for a gene is set according to the following hierarchy:

  1. Longest CCDS translation with no stop codons.
  2. If no (1), choose the longest Ensembl/Havana merged translation with no stop codons.
  3. If no (2), choose the longest translation with no stop codons.
  4. If no translation, choose the longest non-protein-coding transcript.

ACMG

From the ACMG Guidelines for the Interpretation of Sequence Variants:

A reference transcript for each gene should be used and provided in the report when describing coding variants. The transcript should represent either the longest known transcript and/or the most clinically relevant transcript.

ClinVar

From the ClinVar paper:

When there are multiple transcripts for a gene, ClinVar selects one HGVS expression to construct a preferred name. By default, this selection is based on the first reference standard transcript identified by the RefSeqGene/LRG (Locus Reference Genomic) collaboration.

Unified Approach

Our approach is almost identical to the one Golden Helix discussed in their article:

  1. If we're looking at RefSeq, only consider NM & NR transcripts as candidates for canonical transcripts.
  2. Sort the transcripts in the following order:
    1. Locus Reference Genomic (LRG) entries occur before non-LRG entries
    2. Descending CDS length
    3. Descending transcript length
    4. Ascending accession number
  3. Grab the first entry
- - + + \ No newline at end of file diff --git a/3.22/core-functionality/gene-fusions/index.html b/3.22/core-functionality/gene-fusions/index.html index fd2eace3..151bfe55 100644 --- a/3.22/core-functionality/gene-fusions/index.html +++ b/3.22/core-functionality/gene-fusions/index.html @@ -6,14 +6,14 @@ Gene Fusion Detection | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Gene Fusion Detection

Overview

Gene fusions often result from large genomic rearrangements such as structural variants. While WGS secondary analysis pipelines typically contain alignment and variant calling stages, very few of them contain dedicated gene fusion callers. When they are included, they are usually associated with RNA-Seq pipelines where gene fusions can be readily observed.

Since gene fusions are frequently observed in cancer and since many sequencing experiments do not include paired RNA-Seq data, we have added gene fusion detection and annotation to Illumina Connected Annotations.

The rich diversity in gene fusion architectures and their likely mechanisms can be seen below:

Publication

Kumar-Sinha, C., Kalyana-Sundaram, S. & Chinnaiyan, A.M. Landscape of gene fusions in epithelial cancers: seq and ye shall find. Genome Med 7, 129 (2015)

Approach

Illumina Connected Annotations uses structural variant calls to evaluate if they form either putative intra-chromosomal or inter-chromosomal gene fusions. Let's consider two transcripts, NM_014206.3 (TMEM258) and NM_013402.4 (FADS1). Both of these genes are on the reverse strand in the genome. The vertical bar indicates the breakpoint where these transcripts are fused:

TMEM258 & FADS1 transcripts

The above explains where the transcripts are fused together, but it doesn't explain in which orientation. By using the directionality encoded in the translocation breakend, we can rearrange these two transcripts in four ways:

TMEM258 & FADS1 gene fusions

Only two of the combinations yields a fusion containing both the transcription start site (TSS) and the stop codon. In one case, we can even detect an in-frame gene fusion. If only unidirectional gene fusions are desired, only these two fusions can be detected. If enable-bidirectional-fusions is enabled, all four cases can be identified.

Interpreting translocation breakends

At first glance, translocation breakends are a bit daunting. However, once you understand how they work, they're actually quite simple. For more information, we recommend reading section 5.4 in the VCF 4.2 specification.

REFALTMeaning
st[p[piece extending to the right of p is joined after t
st]p]reverse comp piece extending left of p is joined after t
s]p]tpiece extending to the left of p is joined before t
s[p[treverse comp piece extending right of p is joined before t

Variant Types

Specifically we can identify gene fusions from the following structural variant types:

  • deletions (<DEL>)
  • tandem_duplications (<DUP:TANDEM>)
  • inversions (<INV>)
  • translocation breakpoints (AAAAAAAAAAAAAAAAAATTAGTCAGGCAC[chr3:153444911[)

Criteria

The following criteria must be met for Illumina Connected Annotations to identify a gene fusion:

  1. After accounting for gene orientation and genomic rearrangements, both transcripts must have the same orientation if enable-bidirectional-fusions is not enabled. They can have the same or different orientations if enable-bidirectional-fusions is set.
  2. Both transcripts must be from the same transcript source (i.e. we won't mix and match between RefSeq and Ensembl transcripts)
  3. Both transcripts must belong to different genes
  4. Both transcripts cannot have a coding region that already overlaps without the variant (i.e. in cases where two genes naturally overlap, we don't want to call a gene fusion)

ETV6/RUNX1 Example

ETV6/RUNX1 is the most common gene fusion in childhood B-cell precursor acute lymphoblastic leukemia (ALL). Samples with this translocation are associated with a good prognosis and excellent response to treatment.

VCF

Here's a simplified representation of the translocation breakends called by the Manta structural variant caller:

##fileformat=VCFv4.1
#CHROM POS ID REF ALT QUAL FILTER INFO
chr12 12026270 . C [chr21:36420865[C . PASS SVTYPE=BND
chr12 12026305 . A A]chr21:36420571] . PASS SVTYPE=BND
chr21 36420571 . C C]chr12:12026305] . PASS SVTYPE=BND
chr21 36420865 . C [chr12:12026270[C . PASS SVTYPE=BND

When you put these calls together, the resulting genomic rearrangement looks something like this:

JSON Output

The annotation for the first variant in the VCF looks like this:

{
"chromosome": "chr12",
"position": 12026270,
"refAllele": "C",
"altAlleles": [
"[chr21:36420865[C"
],
"filters": [
"PASS"
],
"cytogeneticBand": "12p13.2",
"clingen": [
{
"chromosome": "12",
"begin": 173786,
"end": 34835837,
"variantType": "copy_number_gain",
"id": "nsv995956",
"clinicalInterpretation": "pathogenic",
"phenotypes": [
"Decreased calvarial ossification",
"Delayed gross motor development",
"Feeding difficulties",
"Frontal bossing",
"Morphological abnormality of the central nervous system",
"Patchy alopecia"
],
"phenotypeIds": [
"HP:0002007",
"HP:0002011",
"HP:0002194",
"HP:0002232",
"HP:0005474",
"HP:0011968",
"MedGen:C0232466",
"MedGen:C1862862",
"MedGen:CN001816",
"MedGen:CN001820",
"MedGen:CN001989",
"MedGen:CN004852"
],
"observedGains": 1,
"validated": true
}
],
"variants": [
{
"vid": "12-12026270-C-[chr21:36420865[C",
"chromosome": "chr12",
"begin": 12026270,
"end": 12026270,
"isStructuralVariant": true,
"refAllele": "C",
"altAllele": "[chr21:36420865[C",
"variantType": "translocation_breakend",
"cosmicGeneFusions": [
{
"id": "COSF2245",
"numSamples": 249,
"geneSymbols": [
"ETV6",
"RUNX1"
],
"hgvsr": "ENST00000396373.4(ETV6):r.1_1283::ENST00000300305.3(RUNX1):r.504_6222",
"histologies": [
{
"name": "acute lymphoblastic B cell leukaemia",
"numSamples": 169
},
{
"name": "acute lymphoblastic leukaemia",
"numSamples": 80
}
],
"sites": [
{
"name": "haematopoietic and lymphoid tissue",
"numSamples": 249
}
],
"pubMedIds": [
7761424,
7780150,
8609706,
8751464,
8982044,
9067587,
9207408,
9226156,
9628428,
10463610,
10774753,
11091202,
12621238,
12661004,
12750722,
15104290,
15642392,
24557455,
26925663
]
}
],
"fusionCatcher": [
{
"genes": {
"first": {
"hgnc": "ETV6",
"isOncogene": true
},
"second": {
"hgnc": "RUNX1",
"isOncogene": true
}
},
"somaticSources": [
"DepMap CCLE",
"Cancer Genome Project",
"ChimerKB 4.0",
"ChimerPub 4.0",
"ChimerSeq 4.0",
"Known",
"Mitelman DB",
"OncoKB",
"TICdb"
]
}
],
"transcripts": [
{
"transcript": "ENST00000396373.4",
"source": "Ensembl",
"bioType": "protein_coding",
"introns": "5/7",
"geneId": "ENSG00000139083",
"hgnc": "ETV6",
"consequence": [
"transcript_variant",
"unidirectional_gene_fusion"
],
"geneFusions": [
{
"transcript": "ENST00000437180.1",
"bioType": "protein_coding",
"intron": 2,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000437180.1(RUNX1):r.?_58+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
},
{
"transcript": "ENST00000300305.3",
"bioType": "protein_coding",
"intron": 1,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000300305.3(RUNX1):r.?_58+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
},
{
"transcript": "ENST00000482318.1",
"bioType": "nonsense_mediated_decay",
"intron": 2,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000482318.1(RUNX1):r.?_58+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
},
{
"transcript": "ENST00000486278.2",
"bioType": "protein_coding",
"intron": 2,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000486278.2(RUNX1):r.?_-15+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
},
{
"transcript": "ENST00000455571.1",
"bioType": "protein_coding",
"intron": 2,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000455571.1(RUNX1):r.?_58+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
},
{
"transcript": "ENST00000475045.2",
"bioType": "protein_coding",
"intron": 11,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000475045.2(RUNX1):r.?_58+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
},
{
"transcript": "ENST00000416754.1",
"bioType": "protein_coding",
"intron": 2,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000416754.1(RUNX1):r.?_58+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
}
],
"isCanonical": true,
"proteinId": "ENSP00000379658.3"
},
{
"transcript": "NM_001987.4",
"source": "RefSeq",
"bioType": "protein_coding",
"introns": "5/7",
"geneId": "2120",
"hgnc": "ETV6",
"consequence": [
"transcript_variant",
"unidirectional_gene_fusion"
],
"geneFusions": [
{
"transcript": "NM_001754.4",
"bioType": "protein_coding",
"intron": 2,
"geneId": "861",
"hgnc": "RUNX1",
"hgvsr": "NM_001754.4(RUNX1):r.?_58+274::NM_001987.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
}
],
"isCanonical": true,
"proteinId": "NP_001978.1"
}
]
}
]
}
FieldTypeNotes
transcriptstringtranscript ID
bioTypestringdescriptions of the biotypes from Ensembl
exonintexon that contained fusion breakpoint
intronintintron that contained fusion breakpoint
geneIdstringgene ID. e.g. ENSG00000116062
hgncstringgene symbol. e.g. MSH6
hgvsrstringHGVS RNA nomenclature

Gene Fusion Data Sources

To provide more context to our gene fusions, we provide the following gene fusion data sources:

Consequences

When a gene fusion is identified, we add the following Sequence Ontology consequence:

              "consequence": [
"transcript_variant",
"gene_fusion"
],
  • If both transcripts have the same orientation, we label it as unidirectional_gene_fusion, if they have different orientations, we label it as bidirectional_gene_fusion
  • If both unidirectional and bidirectional ones are detected, we label it as gene_fusion.

Gene Fusions Section

The geneFusions section is contained within the object of the originating transcript. It will contain all the pairwise gene fusions that obey the criteria outline above. In the case of ENST00000396373.4, there 7 other Ensembl transcripts that would produce a gene fusion. For NM_001987.4, there was only one transcript (NM_001754.4) that produce a gene fusion.

For each originating transcript, we report the following for each partner transcript:

  • transcript ID
  • gene ID
  • HGNC gene symbol
  • transcript bio type (e.g. protein_coding)
  • intron or exon number containing the breakpoint
  • HGVS RNA notation
  • gene fusion directionality
tip

Before Illumina Connected Annotations 3.15, we provided HGVS coding notation. However, HGVS r. notation is more appropriate for these types fusion splicing events (see HGVS SVD-WG007).

          "geneFusions": [
{
"transcript": "NM_001754.4",
"bioType": "protein_coding",
"intron": 2,
"geneId": "861",
"hgnc": "RUNX1",
"hgvsr": "NM_001754.4(RUNX1):r.?_58+274::NM_001987.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
}
],

The HGVS RNA notation above indicates that the gene fusion starts with NM_001754.4 (RUNX1) until CDS position 58 and continues with NM_001987.4 (ETV6). 1009+3367 indicates that the fusion occurred 3367 bp within intron 2.

- - + + \ No newline at end of file diff --git a/3.22/core-functionality/transcript-consequence-impacts/index.html b/3.22/core-functionality/transcript-consequence-impacts/index.html index 9b6f30c4..dc8ae22b 100644 --- a/3.22/core-functionality/transcript-consequence-impacts/index.html +++ b/3.22/core-functionality/transcript-consequence-impacts/index.html @@ -6,14 +6,14 @@ Transcript Consequence Impact | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Transcript Consequence Impact

Overview

Illumina Connected Annotations provides transcript consequence impacts from SnpEff.

Following definitions are used for the impact ratings as obtained from SnpEff.

ImpactDefinition
highThe variant is assumed to have high (disruptive) impact in the protein, probably causing protein truncation, loss of function or triggering nonsense mediated decay.
moderateA non-disruptive variant that might change protein effectiveness.
lowAssumed to be mostly harmless or unlikely to change protein behavior.
modifierUsually non-coding variants or variants affecting non-coding genes, where predictions are difficult or there is no evidence of impact.

Sources

Not all consequences are rated by SnpEff, therefore Illumina Connected Annotations combines the ratings from SnpEff with those from VEP.

  1. SnpEff Documentation and Codebase
  2. VEP Documentation

Consequence Impacts

Following table gives the combined rating for all consequences recognized by Illumina Connected Annotations.

ConsequenceSnpEff ImpactVEP ImpactIllumina Connected Annotations ImpactComment
bidirectional_gene_fusionhighhighSnpEff
coding_sequence_variantlow, modifiermodifiermodifierBased on CDS
copy_number_changemodifier
copy_number_decreasemodifier
copy_number_increasemodifier
downstream_gene_variantmodifiermodifiermodifierSnpEff + VEP
feature_elongationmodifierhighhighVEP
feature_truncationhighhighVEP
five_prime_duplicated_transcriptmodifier
five_prime_UTR_variantmodifiermodifiermodifierSnpEff + VEP
frameshift_varianthighhighhighSnpEff + VEP
gene_fusionhighhighSnpEff
incomplete_terminal_codon_variantlowlowVEP
inframe_deletionmoderatemoderatemoderateSnpEff + VEP
inframe_insertionmoderatemoderatemoderateSnpEff + VEP
intron_variantmodifiermodifiermodifierSnpEff + VEP
mature_miRNA_variantmodifiermodifierVEP
missense_variantmoderatemoderatemoderateSnpEff + VEP
NMD_transcript_variantmodifiermodifierVEP
non_coding_transcript_exon_variantmodifiermodifiermodifierSnpEff + VEP
non_coding_transcript_variantmodifiermodifiermodifierSnpEff + VEP
protein_altering_variantmoderatemoderateVEP
regulatory_region_ablationmodifiermodifierVEP
regulatory_region_amplificationmodifiermodifierVEP
regulatory_region_variantmodifiermodifiermodifierSnpEff + VEP
short_tandem_repeat_changemodifier
short_tandem_repeat_contractionmodifier
short_tandem_repeat_expansionmodifier
splice_acceptor_varianthighhighhighSnpEff + VEP
splice_donor_varianthighhighhighSnpEff + VEP
splice_region_variantmoderate, lowlowlowBased on SPLICE_SITE_REGION in SnpEff
start_losthighhighhighSnpEff + VEP
start_retained_variantlowlowlowSnpEff + VEP
stop_gainedhighhighhighSnpEff + VEP
stop_losthighhighhighSnpEff + VEP
stop_retained_variantlowlowlowSnpEff + VEP
synonymous_variantlowlowlowSnpEff + VEP
three_prime_duplicated_transcriptmodifier
three_prime_UTR_variantmodifiermodifiermodifierSnpEff + VEP
transcript_ablationhighhighhighSnpEff + VEP
transcript_amplificationhighhighVEP
transcript_variantmodifiermodifierSnpEff
unidirectional_gene_fusionhighhighSnpEff
upstream_gene_variantmodifiermodifiermodifierSnpEff + VEP
Note:
  1. For transcripts with multiple consequences, the most severe impact rating is chosen.
  2. In case of consequences that do not have any impact rating from SnpEff or VEP, Illumina Connected Annotations provides modifier.

Known Issues

Known Issues

The consequence splice_polypyrimidine_tract_variant, is rated as low by VEP. However, this consequence is not annotated by Illumina Connected Annotations, therefore the impact will also not be provided.

Example Transcript

The key impact for each transcript gives the impact rating for the consequence.

{
"variants": [
{
"vid": "1-1623412-T-C",
"chromosome": "1",
"begin": 1623412,
"end": 1623412,
"refAllele": "T",
"altAllele": "C",
"variantType": "SNV",
"hgvsg": "NC_000001.11:g.1623412T>C",
"transcripts": [
{
"transcript": "ENST00000479659.5",
"source": "Ensembl",
"bioType": "lncRNA",
"introns": "2/18",
"geneId": "ENSG00000197530",
"hgnc": "MIB2",
"consequence": [
"intron_variant",
"non_coding_transcript_variant"
],
"impact": "modifier",
"hgvsc": "ENST00000479659.5:n.288-19T>C"
},
{
"transcript": "ENST00000489635.5",
"source": "VEP",
"bioType": "mRNA",
"codons": "aTg/aCg",
"aminoAcids": "M/T",
"cdnaPos": "269",
"cdsPos": "134",
"exons": "3/20",
"proteinPos": "45",
"geneId": "ENSG00000197530",
"hgnc": "MIB2",
"consequence": [
"missense_variant"
],
"impact": "moderate",
"hgvsc": "ENST00000489635.5:c.134T>C",
"hgvsp": "ENSP00000426007.1:p.(Met45Thr)",
"proteinId": "ENSP00000426007.1"
}
]
}
]
}
- - + + \ No newline at end of file diff --git a/3.22/core-functionality/variant-ids/index.html b/3.22/core-functionality/variant-ids/index.html index f671a605..df9fe378 100644 --- a/3.22/core-functionality/variant-ids/index.html +++ b/3.22/core-functionality/variant-ids/index.html @@ -6,13 +6,13 @@ Variant IDs | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Variant IDs

Overview

Many downstream tools use a variant identifier to store annotation results. We've standardized on using variant identifiers (VIDs) that originated from the notation used by the Broad Institute.

The Broad VID scheme is not only simple, but it has the advantage that a user could create a bare bones VCF entry from the information captured in the identifier. One of the limitations of the Broad VID scheme is that it does not define how to handle structural variants. Our VID scheme attempts to fill that gap.

Conventions
  • all chromosomes use Ensembl style notation (i.e. 22 instead of chr22)
  • for a reference variant (i.e. no alt allele), replace the period (.) with the reference base
  • padding bases are used, neither the reference nor alternate allele can be empty
  • some large variant callers lazily output N for the reference allele. If this is the case, replace it with the true reference base

Small Variants

VCF Examples

chr1    66507   .   T   A   184.45  PASS    .
chr1 66521 . T TATATA 144.53 PASS .
chr1 66572 . GTA G,GTACTATATATTATA 45.45 PASS .

Format

chromosomepositionreference allelealternate allele

VID Examples

  • 1-66507-T-A
  • 1-66521-T-TATATA
  • 1-66572-GTA-G
  • 1-66572-G-GTACTATATATTA

Translocation Breakends

VCF Example

chr1    2617277 .   A   AAAAAAAAAAAAAAAAAATTAGTCAGGCAC[chr3:153444911[  .   PASS    SVTYPE=BND

Format

chromosomepositionreference allelealternate allele

VID Example

  • 1-2617277-A-AAAAAAAAAAAAAAAAAATTAGTCAGGCAC[chr3:153444911[

All Other Structural Variants

VCF Examples

chr1    1000    .   G   <ROH>   .   PASS    END=3001000;SVTYPE=ROH
chr1 1350082 . G <DEL> . PASS END=1351320;SVTYPE=DEL
chr1 1477854 . C <DUP:TANDEM> . PASS END=1477984;SVTYPE=DUP
chr1 1477968 . T <INS> . PASS END=1477968;SVTYPE=INS
chr1 1715898 . N <DUP> . PASS SVTYPE=CNV;END=1750149
chr1 2650426 . N <DEL> . PASS SVTYPE=CNV;END=2653074
chr2 321682 . T <INV> . PASS SVTYPE=INV;END=421681
chr20 2633403 . G <STR2> . PASS END=2633421

Format

chromosomepositionend positionreference allelealternate alleleSVTYPE

VID Examples

  • 1-1000-3001000-G-<ROH>-ROH
  • 1-1350082-1351320-G-<DEL>-DEL
  • 1-1477854-1477984-C-<DUP:TANDEM>-DUP
  • 1-1477968-1477968-T-<INS>-INS
  • 1-1715898-1750149-A-<DUP>-CNV (replace the N with A)
  • 1-2650426-2653074-N-<DEL>-CNV (keep the N)
  • 2-321682-421681-T-<INV>-INV
  • 20-2633403-2633421-G-<STR2>-STR
- - + + \ No newline at end of file diff --git a/3.22/data-sources/1000Genomes-snv-json/index.html b/3.22/data-sources/1000Genomes-snv-json/index.html index ab61d8ef..07f0f2e4 100644 --- a/3.22/data-sources/1000Genomes-snv-json/index.html +++ b/3.22/data-sources/1000Genomes-snv-json/index.html @@ -6,13 +6,13 @@ 1000Genomes-snv-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

1000Genomes-snv-json

"oneKg":{
"allAf":0.200879,
"afrAf":0.210287,
"amrAf":0.139769,
"easAf":0.275794,
"eurAf":0.181909,
"sasAf":0.173824,
"allAn":5008,
"afrAn":1322,
"amrAn":694,
"easAn":1008,
"eurAn":1006,
"sasAn":978,
"allAc":1006,
"afrAc":278,
"amrAc":97,
"easAc":278,
"eurAc":183,
"sasAc":170
}
FieldTypeNotes
allAffloatallele frequency for all populations. Range: 0 - 1.0
allAcintallele count for all populations. Integer.
allAnintallele number for all populations. Non-zero integer.
afrAffloatallele frequency for the African super population. Range: 0 - 1.0
afrAcintallele count for the African super population. Integer.
afrAnintallele number for the African super population. Non-zero integer.
amrAffloatallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
amrAcintallele count for the Ad Mixed American super population. Integer.
amrAnintallele number for the Ad Mixed American super population. Non-zero integer.
easAffloatallele frequency for the East Asian super population. Range: 0 - 1.0
easAcintallele count for the East Asian super population. Integer.
easAnintallele number for the East Asian super population. Non-zero integer.
eurAffloatallele frequency for the European super population. Range: 0 - 1.0
eurAcintallele count for the European super population. Integer.
eurAnintallele number for the European super population. Non-zero integer.
sasAffloatallele frequency for the South Asian super population. Range: 0 - 1.0
sasAcintallele count for the South Asian super population. Integer.
sasAnintallele number for the South Asian super population. Non-zero integer.
- - + + \ No newline at end of file diff --git a/3.22/data-sources/1000Genomes-sv-json/index.html b/3.22/data-sources/1000Genomes-sv-json/index.html index e418f668..a5811ff6 100644 --- a/3.22/data-sources/1000Genomes-sv-json/index.html +++ b/3.22/data-sources/1000Genomes-sv-json/index.html @@ -6,13 +6,13 @@ 1000Genomes-sv-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

1000Genomes-sv-json

"oneKg":[
{
"chromosome":"1",
"begin":1595369,
"end":1612441,
"variantType": "copy_number_variation",
"id": "esv3635753;esv3635754;esv3635755;esv3635756;esv3635757",
"allAn": 5008,
"allAc": 2702,
"allAf": 0.539537,
"afrAf": 0.6052,
"amrAf": 0.3675,
"eurAf": 0.5357,
"easAf": 0.5368,
"sasAf": 0.5797,
"reciprocalOverlap": 0.07555
}
],
FieldTypeNotes
chromosomestring
begininteger
endinteger
variantTypestring
idstring
allAnintegerallele number for all populations. Non-zero integer.
allAcintegerallele count for all populations. Integer.
allAffloating pointallele frequency for all populations. Range: 0 - 1.0
afrAffloating pointallele frequency for the African super population. Range: 0 - 1.0
amrAffloating pointallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
eurAffloating pointallele frequency for the European super population. Range: 0 - 1.0
easAffloating pointallele frequency for the East Asian super population. Range: 0 - 1.0
sasAffloating pointallele frequency for the South Asian super population. Range: 0 - 1.0
reciprocalOverlapfloating pointrange: 0 - 1.
- - + + \ No newline at end of file diff --git a/3.22/data-sources/1000Genomes/index.html b/3.22/data-sources/1000Genomes/index.html index c844aa3f..d754c8ef 100644 --- a/3.22/data-sources/1000Genomes/index.html +++ b/3.22/data-sources/1000Genomes/index.html @@ -6,15 +6,15 @@ 1000 Genomes | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

1000 Genomes

Overview

The goal of the 1000 Genomes Project was to find most genetic variants with frequencies of at least 1% in the populations studied. It was the first project to sequence the genomes of a large number of people, to provide a comprehensive resource on human genetic variation. Data from the 1000 Genomes Project was quickly made available to the worldwide scientific community through freely accessible public databases.

Publication

Sudmant, P., Rausch, T., Gardner, E. et al. An integrated map of structural variation in 2,504 human genomes. Nature 526, 75–81 (2015). https://doi.org/10.1038/nature15394

Populations

Small Variants

VCF File Parsing

The original VCF files come with allele frequency fields (e.g. ALL_AF, AMR_AF) but we recompute them using allele counts and allele numbers in order to get 6 digit precision. The allele counts and allele numbers (e.g. AMR_AC, AMR_AN) are not expressed in the INFO field. Instead the genotypes need to be parsed to compute that information. Our team converted the original data to VCF entries with allele counts and allele numbers like the following.

#CHROM  POS ID  REF ALT QUAL    FILTER  INFO
1 15274 rs62636497 A G,T 100 PASS AC=1739,3210;AF=0.347244,0.640974;AN=5008;NS=2504;DP=23255;EAS_AF=0.4812,0.5188;AMR_AF=0.2752,0.7205;AFR_AF=0.323,0.6369;EUR_AF=0.2922,0.7078;SAS_AF=0.3497,0.6472;AA=g|||;VT=SNP;MULTI_ALLELIC;EAS_AN=1008;EAS_AC=485,523;EUR_AN=1006;EUR_AC=294,712;AFR_AN=1322;AFR_AC=427,842;AMR_AN=694;AMR_AC=191,500;SAS_AN=978;SAS_AC=342,633

The ancestral allele, if it exists, is the first value in the pipe separated AA fields (the Indel specific REF, ALT, IndelType fields are ignored).

We parse the VCF file and extract the following fields from INFO:

  • AA
  • AC
  • AN
  • EAS_AN
  • AMR_AN
  • AFR_AN
  • EUR_AN
  • SAS_AN
  • EAS_AC
  • AMR_AC
  • AFR_AC
  • EUR_AC
  • SAS_AC

Conflict Resolution

We have observed conflicting allele frequency information in the source. Take the following example:

#CHROM  POS ID  REF ALT QUAL    FILTER  INFO
1 20505705 rs35377696 C CTCTG,CTG,CTGTG 100 PASS AC=46,1513,152;AF=0.0091853,0.302117,0.0303514;
1 20505705 rs35377696 C CTG 100 PASS AC=4;AF=0.000798722;

That is, the variant 1-20505705-C-CTG has conflicting entries. To get an idea of how frequently we observe this, here is a table summarizing ChrX and all chromosomes. Note that almost all such entries are found in ChrX.

Chromosome# of alleles# of conflicting allelespercentage
chrX83480027330.33%
Total2141309827430.013%

Currently, we removed the allele frequency of the conflicting allele (i.e., insertion TG in the example) but keep allele frequencies of all other alleles in the VCF line.

Potential Alternate Solutions

  • Remove all alleles that are contained in the vcf lines which have conflicting allele. (Recommended by 1000 genome group Holly Zheng-Bradley, 7/29/2015)
  • Recalculate the allele frequency for the conflicting allele.
  • Pick the allele frequency that has the highest data support.

Download URL

GRCh37 GRCh38

JSON Output

"oneKg":{
"allAf":0.200879,
"afrAf":0.210287,
"amrAf":0.139769,
"easAf":0.275794,
"eurAf":0.181909,
"sasAf":0.173824,
"allAn":5008,
"afrAn":1322,
"amrAn":694,
"easAn":1008,
"eurAn":1006,
"sasAn":978,
"allAc":1006,
"afrAc":278,
"amrAc":97,
"easAc":278,
"eurAc":183,
"sasAc":170
}
FieldTypeNotes
allAffloatallele frequency for all populations. Range: 0 - 1.0
allAcintallele count for all populations. Integer.
allAnintallele number for all populations. Non-zero integer.
afrAffloatallele frequency for the African super population. Range: 0 - 1.0
afrAcintallele count for the African super population. Integer.
afrAnintallele number for the African super population. Non-zero integer.
amrAffloatallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
amrAcintallele count for the Ad Mixed American super population. Integer.
amrAnintallele number for the Ad Mixed American super population. Non-zero integer.
easAffloatallele frequency for the East Asian super population. Range: 0 - 1.0
easAcintallele count for the East Asian super population. Integer.
easAnintallele number for the East Asian super population. Non-zero integer.
eurAffloatallele frequency for the European super population. Range: 0 - 1.0
eurAcintallele count for the European super population. Integer.
eurAnintallele number for the European super population. Non-zero integer.
sasAffloatallele frequency for the South Asian super population. Range: 0 - 1.0
sasAcintallele count for the South Asian super population. Integer.
sasAnintallele number for the South Asian super population. Non-zero integer.

Structural Variants

VCF File Parsing

The VCF files contain entries like the following:

#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  HG00096 HG00097 HG00099 HG00100 HG00101 HG00102 HG00103
22 16050654 esv3647175;esv3647176;esv3647177;esv3647178 A <CN0>,<CN2>,<CN3>,<CN4> 100 PASS AC=9,87,599,20;AF=0.00179712,0.0173722,0.119609,0.00399361;AN=5008;CS=DUP_gs;END=16063474;NS=2504;SVTYPE=CNV;DP=22545;EAS_AF=0.001,0.0169,0.2361,0.0099;AMR_AF=0,0.0101,0.219,0.0072;AFR_AF=0.0061,0.0363,0.0053,0;EUR_AF=0,0.007,0.0944,0.003;SAS_AF=0,0.0082,0.1094,0.002;VT=SV GT 3|0 0|0 0|0 0|0 0|0 0|0 0|4

Please note that, CNVs are allele-specific. For example, HG00096 is effectively copy number 4, which would be a net gain on chr22.

1000 Genomes contains 5 types of structural variants:

  • CNV
  • DEL
  • DUP
  • INS
  • INV

Since data of 1000 genomes is provided in VCF format, we assume that the coordinates follow the vcf format, i.e., there is a padding base for symbolic alleles. So all the interval can be interpreted as [BEGIN+1, END]. Similarly, for all other variant types except insertion, END is far larger than BEGIN. The distribution of BEGIN and END for insertions is summarized below.

Insertion issues

  • END = BEGIN for 6/165
  • END = BEGIN+2 for 93/165
  • END = BEGIN+3 for 11/165
  • END = BEGIN+4 for 11/165
  • END – BEGIN range from 5 to 1156 for others.

Converting VCF svTypes to SO sequence alterations

The svType will be captured in our JSON file under the sequenceAlteration key. Here's the translation we'll use according to svType in 1000 Genomes.

svTypeAlternative Alleles contain <CN*>sequenceAlteration
ALUFALSEmobile_element_insertion
DUPTRUEcopy_number_gain
CNVTRUEcopy_number_gain (observed_gains >0 and observed_losses =0)
copy_number_loss (observed_gains = 0 and observed_losses > 0)
copy_number_variation (otherwise)
DELTRUEcopy_number_loss
LINE1FALSEmobile_element_insertion
SVAFALSEmobile_element_insertion
INVFALSEinversion
INSFALSEinsertion

Exceptions

We discard structural variants without END

#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  HG00096 HG00097 HG00099 HG00100 HG00101 HG00102 HG00103
21 9495848 esv3646347 A <INS:ME:LINE1> 100 PASS AC=1543;AF=0.308107;AN=5008;CS=L1_umary;MEINFO=LINE1,5669,6005,+;NS=2504;SVLEN=336;SVTYPE=LINE1;TSD=null;DP=20015;EAS_AF=0.3125;AMR_AF=0.2911;AFR_AF=0.3026;EUR_AF=0.2922;SAS_AF=0.3395;VT=SV GT 0|0 1|1 1|0 0|1 1|0 1|0 0|0

CNVs in chrY

  • No other types of structural variants exist in chrY
  • Since copy number is provided in genotype field, we directly parse the copy number from "CN" field.
  • For most CNVs in chrY, the reference copy number is 1, but the refence number for CNVs in segmental duplication sites is 2 (<CN2> in the 2nd example). All segmental duplication calls have identifiers starting with GS_SD_M2.
#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  HG00096 HG00101 HG00103 HG00105 HG00107 HG00108
Y 2888555 CNV_Y_2888555_3014661 T <CN2> 100 PASS AC=1;AF=0.000817661;AN=1223;END=3014661;NS=1233;SVTYPE=CNV;AMR_AF=0.0000;AFR_AF=0.0000;EUR_AF=0.0000;SAS_AF=0.0019;EAS_AF=0.0000;VT=SV GT:CN:CNL:CNP:CNQ:GP:GQ:PL 0:1:-1000,0,-58.45:-1000,0,-61.55:99:0,-61.55:99:0,585 0:1:-296.36,0,-16.6:-300.46,0,-19.7:99:0,-19.7:99:0,166 0:1:-1000,0,-39.44:-1000,0,-42.54:99:0,-42.54:99:0,394
Y 6128381 GS_SD_M2_Y_6128381_6230094_Y_9650284_9752225 C <CN1>,<CN3> 100 PASS AC=4,2;AF=0.00327065,0.00163532;AN=1223;END=6230094;NS=1233;SVTYPE=CNV;AMR_AF=0.0029,0.0029;AFR_AF=0.0016,0.0016;EUR_AF=0.0000,0.0000;SAS_AF=0.0038,0.0000;EAS_AF=0.0000,0.0000;VT=SV;EX_TARGET GT:CN:CNL:CNP:CNQ:GP:GQ 0:2:-1000,-138.78,0,-38.53:-1000,-141.27,0,-41.33:99:0,-141.27,-41.33:99 0:2:-1000,-53.32,0,-17.85:-1000,-55.81,0,-20.64:99:0,-55.81,-20.64:99 0:2:-1000,-71.83,0,-32.5:-1000,-74.32,0,-35.29:99:0,-74.32,-35.29:99 0:2:-1000,-60.96,0,-20.29:-1000,-63.45,0,-23.08:99:0,-63.45,-23.08:99 0:2:-1000,-77.6,0,-31.45:-1000,-80.09,0,-34.24:99:0,-80.09,-34.24:99

JSON Output

"oneKg":[
{
"chromosome":"1",
"begin":1595369,
"end":1612441,
"variantType": "copy_number_variation",
"id": "esv3635753;esv3635754;esv3635755;esv3635756;esv3635757",
"allAn": 5008,
"allAc": 2702,
"allAf": 0.539537,
"afrAf": 0.6052,
"amrAf": 0.3675,
"eurAf": 0.5357,
"easAf": 0.5368,
"sasAf": 0.5797,
"reciprocalOverlap": 0.07555
}
],
FieldTypeNotes
chromosomestring
begininteger
endinteger
variantTypestring
idstring
allAnintegerallele number for all populations. Non-zero integer.
allAcintegerallele count for all populations. Integer.
allAffloating pointallele frequency for all populations. Range: 0 - 1.0
afrAffloating pointallele frequency for the African super population. Range: 0 - 1.0
amrAffloating pointallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
eurAffloating pointallele frequency for the European super population. Range: 0 - 1.0
easAffloating pointallele frequency for the East Asian super population. Range: 0 - 1.0
sasAffloating pointallele frequency for the South Asian super population. Range: 0 - 1.0
reciprocalOverlapfloating pointrange: 0 - 1.
- - + + \ No newline at end of file diff --git a/3.22/data-sources/amino-acid-conservation-json/index.html b/3.22/data-sources/amino-acid-conservation-json/index.html index f851da43..10c2c869 100644 --- a/3.22/data-sources/amino-acid-conservation-json/index.html +++ b/3.22/data-sources/amino-acid-conservation-json/index.html @@ -6,13 +6,13 @@ amino-acid-conservation-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

amino-acid-conservation-json

"aminoAcidConservation": {
"scores": [0.34]
}
FieldTypeNotes
aminoAcidConservationobject
scoresobject array of doublespercent conserved with respect to human amino acid residue. Range: 0.01 - 1.00
- - + + \ No newline at end of file diff --git a/3.22/data-sources/amino-acid-conservation/index.html b/3.22/data-sources/amino-acid-conservation/index.html index 2ddbde5a..976c8838 100644 --- a/3.22/data-sources/amino-acid-conservation/index.html +++ b/3.22/data-sources/amino-acid-conservation/index.html @@ -6,14 +6,14 @@ Amino Acid Conservation | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Amino Acid Conservation

Overview

Amino acid conservation scores are obtained from multiple alignments of vertebrate exomes to the human ones. The score indicate the frequency with which a particular AA is observed in Humans.

Publication

Siepel A, Bejerano G, Pedersen JS, Hinrichs AS, Hou M, Rosenbloom K, Clawson H, Spieth J, Hillier LW, Richards S, et al. Evolutionarily conserved elements in vertebrate, insect, worm, and yeast genomes. Genome Res. 2005 Aug;15(8):1034-50. (http://www.genome.org/cgi/doi/10.1101/gr.3715005)

FASTA File

The exon alignments are provided in FASTA files as follows:

>ENST00000641515.2_hg38_1_2 3 0 0 chr1:65565-65573+
MKK
>ENST00000641515.2_panTro4_1_2 3 0 0 chrUn_GL393541:146907-146915+
MKK
>ENST00000641515.2_gorGor3_1_2 3 0 0
---
>ENST00000641515.2_ponAbe2_1_2 3 0 0 chr15:99141417-99141425-
MKK
>ENST00000641515.2_hg38_2_2 324 0 0 chr1:69037-70008+
VTAEAISWNESTSETNNSMVTEFIFLGLSDSQELQTFLFMLFFVFYGGIVFGNLLIVITVVSDSHLHSPMYFLLANLSLIDLSLSSVTAPKMITDFFSQRKVISFKGCLVQIFLLHFFGGSEMVILIAMGFDRYIAICKPLHYTTIMCGNACVGIMAVTWGIGFLHSVSQLAFAVHLLFCGPNEVDSFYCDLPRVIKLACTDTYRLDIMVIANSGVLTVCSFVLLIISYTIILMTIQHRPLDKSSKALSTLTAHITVVLLFFGPCVFIYAWPFPIKSLDKFLAVFYSVITPLLNPIIYTLRNKDMKTAIRQLRKWDAHSSVKFZ
>ENST00000641515.2_panTro4_2_2 324 0 0 chrUn_GL393541:151333-152303+

Parsing FASTA

For each Ensembl transcript, we will need to aggregate all the exons together for each of the 100 species. From there, we should get a full alignment that can be used to determine conservation. For example, for ENST00000641515.2 we have:

Human (hg38) MKKVTAEAISWNESTSETNNSMVTEFIFLGLSDSQELQTFLFMLFFVFYGGIVFGNLLIVITVVSDSHLHSPMYFLLANLSLIDLSLSSVTAPKMITDFFSQRKVISFKGCLVQIFLL
Chimp MKKVTAEAISWNESTSETNNSMVTEFIFLGLSDSQELQTFL-MLFFVFYGGIVFGNLLIVRIVVSDSHLHSPMYFLLANLSLIDLSLCSVTAPKMITDFFSQRKVISFKGCLVQIFLL
Gorilla ----------------------------------------------------------------------------------------------------------------------
Orangutan MKKVTAEAISWNESTSKTNNSVVTEFIFLGLSDSQELQTFLFMLFFVFYGGIVFGNLLIVIIVVSDSHLHSPMYFLLANLSLIDLSLSSVTAPKMITDFFSQRKVISFKGCLVQIFLL
Gibbon ----------------------------------------------------------------------------------------------------------------------
Rhesus MKKVTEAAISWNESTSETNNSIVTEFIFLGLSDSQELQIFLFVLFLVFYGGIVFGNLLIVITVVSDSHLHSPMYLLLANLSVVDLSLSSVTAPKMITDFFSQRKAISFKGCLVQIFLL
Macaque MKKVTEAAISWNESTSETNNSIVTEFIFLGLSDSQELQIFLFVLFLVFYGGIVFGNLLIVITVVSDSHLHSPMYLLLANLSVIDLSLSSVTAPKMITDFFSQRKAISFKGCLVQIFLL

If we look at position 6, we see that humans have an Alanine (A) residue. This residue is shared by Chimp and Orangutan. However, Rhesus and Macaque have a Glutamic acid (E) residue at that position. Moreover, Gorilla and Gibbon don't even have data for that transcript. For position 6, we would say that we have 43% conservation (3/7) since three organisms share the same residue as humans.

Assigning scores to Illumina Connected Annotations transcripts

The source FASTA file comes with Ensembl/UCSC transcript ids of the transcripts used for alignments. The Illumina Connected Annotations cache has RefSeq and Ensembl transcripts and our first attempt was to map the given Ensembl/UCSC ids to their equivalent RefSeq/Ensembl ids. This attempt was unsuccessful since UCSC Table Browser provided mapping without version numbers. So we proceeded as follows:

  • Take proteins which have a unique mapping (and hence one set of conservation scores). For ones that mapped to both ChrX and ChrY, we accepted the one from ChrX.
  • A Illumina Connected Annotations transcript having an exact peptide sequence match with a uniquely aligned protein is assigned the corresponding conservation scores.

Unfortunately this left us with a very small number of transcripts having conservation scores.

GRCh37

  • Source FASTA contained 41957 protein alignments.
  • 38165 proteins had unique scores.
  • 88 aligned proteins existed in Illumina Connected Annotations cache.
  • 118 transcripts had conservation scores.

GRCh38

  • Source FASTA contained 110024 protein alignments.
  • 88961 proteins had unique scores.
  • 11688 aligned proteins existed in Illumina Connected Annotations cache.
  • 12098 transcripts had conservation scores.

Download URL

GRCh37: http://hgdownload.soe.ucsc.edu/goldenPath/hg19/multiz100way/alignments/knownGene.exonAA.fa.gz

GRCh38: http://hgdownload.soe.ucsc.edu/goldenPath/hg38/multiz100way/alignments/knownGene.exonAA.fa.gz

JSON Output

Conservation scores are reported in the transcript section. One score is reported for each alt allele

"aminoAcidConservation": {
"scores": [0.34]
}
FieldTypeNotes
aminoAcidConservationobject
scoresobject array of doublespercent conserved with respect to human amino acid residue. Range: 0.01 - 1.00
- - + + \ No newline at end of file diff --git a/3.22/data-sources/cancer-hotspots/index.html b/3.22/data-sources/cancer-hotspots/index.html index 10a5be90..661c131a 100644 --- a/3.22/data-sources/cancer-hotspots/index.html +++ b/3.22/data-sources/cancer-hotspots/index.html @@ -6,14 +6,14 @@ Cancer Hotspots | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Cancer Hotspots

Overview

Cancer Hotspots, a resource for statistically significant mutations in cancer. It provides information about statistically significantly recurrent mutations identified in large scale cancer genomics data.

Publication

Chang MT, Bhattarai TS, Schram AM, Bielski CM, Donoghue MTA, Jonsson P, Chakravarty D, Phillips S, Kandoth C, Penson A, Gorelick A, Shamu T, Patel S, Harris C, Gao J, Sumer SO, Kundra R, Razavi P, Li BT, Reales DN, Socci ND, Jayakumaran G, Zehir A, Benayed R, Arcila ME, Chandarlapaty S, Ladanyi M, Schultz N, Baselga J, Berger MF, Rosen N, Solit DB, Hyman DM, Taylor BS. Accelerating Discovery of Functional Mutant Alleles in Cancer. Cancer Discov. 2018 Feb;8(2):174-183. doi: 10.1158/2159-8290.CD-17-0321. Epub 2017 Dec 15. PMID: 29247016; PMCID: PMC5809279.

Chang MT, Asthana S, Gao SP, Lee BH, Chapman JS, Kandoth C, Gao J, Socci ND, Solit DB, Olshen AB, Schultz N, Taylor BS. Identifying recurrent mutations in cancer reveals widespread lineage diversity and mutational specificity. Nat Biotechnol. 2016 Feb;34(2):155-63. doi: 10.1038/nbt.3391. Epub 2015 Nov 30. PMID: 26619011; PMCID: PMC4744099.

Data extraction

Illumina Connected Annotations currently parses SNV and indel tabs from hotspots_v2.xls file to extract the relevant content.

Example

SNV

Hugo_Symbol     Amino_Acid_Position     log10_pvalue    Mutation_Count  Reference_Amino_Acid    Total_Mutations_in_Gene Median_Allele_Freq_Rank Allele_Freq_Rank        Variant_Amino_Acid   Codon_Change     Genomic_Position        Detailed_Cancer_Types   Organ_Types     Tri-nucleotides Mutability      mu_protein      Total_Samples   Analysis_Type   qvalue  tm      qvalue_pancanIs_repeat        seq     length  align100        pad12entropy    pad24entropy    pad36entropy    TP      reason  n_MSK   n_Retro judgement       inNBT   inOncokb        ref     qvaluect     ct       Samples
NRAS 61 -1237.69143477067 422 Q:422 620 0.333333333333333 295|0.692307692307692:0.733333333333333:0.2:0.933333333333333:1:0.25:0.666666666666667:1:0.25:0.571428571428571:1:1:0.5:0.363636363636364:0.428571428571429:0.0833333333333333:1:1:1:1:0.5:1:0.125:0.363636363636364:0.173913043478261:0.25:1:0.8:0.153846153846154:0.857142857142857:0.5:0.5:0.5:1:0.272727272727273:0.214285714285714:1:0.5:1:1:0.2:0.333333333333333:0.6875:0.708333333333333:0.25:0.266666666666667:0.111111111111111:1:1:0.333333333333333:0.428571428571429:0.666666666666667:0.25:0.5:0.833333333333333:0.5:0.735294117647059:0.0476190476190476:0.1:0.133333333333333:0.230769230769231:0.25:1:0.5:0.294117647058824:0.217391304347826:0.46875:0.5:1:0.2:0.166666666666667:0.666666666666667:1:0.8:0.407407407407407:1:0.0212765957446809:0.285714285714286:0.0909090909090909:0.333333333333333:0.2:0.333333333333333:0.5:0.5:1:0.111111111111111:0.5:0.903846153846154:0.5:0.2:1:1:0.0909090909090909:0.4:0.428571428571429:0.0625:0.25:0.833333333333333:1:0.956521739130435:0.111111111111111:0.6:0.212765957446809:0.5:0.207547169811321:1:0.75:0.294117647058824:0.666666666666667:1:0.333333333333333:0.714285714285714:0.142857142857143:1:0.3:0.416666666666667:0.272727272727273:0.25:0.333333333333333:0.345454545454545:0.0952380952380952:0.166666666666667:0.111111111111111:0.454545454545455:0.0666666666666667:1:0.636363636363636:0.636363636363636:0.25:0.272727272727273:0.824324324324324:1:0.75:0.545454545454545:1:1:0.0769230769230769:0.363636363636364:0.290322580645161:0.333333333333333:0.179487179487179:1:0.0666666666666667:0.333333333333333:1:0.478260869565217:0.166666666666667:1:1:0.0276497695852535:0.0716845878136201:0.0263736263736264:0.933333333333333:1:0.5:1:1:0.8125:0.361788617886179:0.113761467889908:0.113761467889908:0.157894736842105:0.333333333333333:0.0555555555555556:0.0357142857142857:0.375:0.111111111111111:0.584415584415584:0.0350877192982456:0.751111111111111:0.761245674740484:0.164989939637827:0.196652719665272:0.135549872122762:0.172113289760349:0.0240963855421687:0.0620767494356659:0.142268041237113:0.147441457068517:0.147959183673469:0.038961038961039:0.686274509803922:0.0929054054054054:0.364787111622555:0.331306990881459:0.691449814126394:0.691449814126394:0.0769230769230769:0.347826086956522:0.117647058823529:0.148148148148148:0.05:0.290030211480363:0.680272108843537:0.188679245283019:0.0701754385964912:0.801526717557252:0.236842105263158:0.1953125:0.0539906103286385:0.015625:0.0390492359932088:0.00790513833992095:0.0597826086956522:0.136783733826248:0.362359550561798:0.0713719270420301:0.328621908127208:0.0657672849915683:0.320099255583127:0.075:0.433021806853583:0.524818401937046:0.524818401937046:0.259259259259259:0.483695652173913:0.0269360269360269:0.100486223662885:0.785507246376812:0.137870855148342:0.472340425531915:0.194331983805668:0.0830769230769231:0.418055555555556:0.546296296296296:0.247596153846154:0.52:0.39832285115304:0.601866251944012:0.234016887816647:0.214007782101167:0.153153153153153:0.137180700094607:0.0666666666666667:0.037037037037037:0.1:0.2:0.458333333333333:0.0588235294117647:0.111111111111111:0.333333333333333:0.181818181818182:0.473684210526316:0.5:0.2:0.136363636363636:0.0769230769230769:0.142857142857143:0.285714285714286:0.25:0.445714285714286:0.149377593360996:0.0227790432801822:0.182278481012658:0.540123456790123:0.021505376344086:0.541666666666667:0.00429184549356223:0.473684210526316:0.103508771929825:0.0930232558139535:0.391304347826087:0.072:0.0113636363636364:0.148837209302326:0.448051948051948:0.761038961038961:0.530373831775701:0.222857142857143:0.433862433862434:0.0810810810810811:0.0723327305605787:0.410714285714286:0.247910863509749:0.384615384615385:0.125:0.24:0.783582089552239:0.0646651270207852:0.445569620253165:0.754777070063694:0.165137614678899:0.10732538330494:0.0375:0.538461538461538:0.0981387478849408:0.029126213592233:0.0833333333333333:0.443514644351464:0.0917431192660551:0.03125:0.674418604651163:0.3125:0.375:0.314285714285714 R:204 cAa/cGa:203|Caa/Aaa:140|cAa/cTa:46|caA/caT:14|caA/caC:13|ggACaa/ggCAaa:2|cAa/cCa:2|Caa/Taa:1|CAa/AGa:1 1:115256529_252|1:115256530_143|1:115256528_27 skcm:787:186|thpa:486:43|mm:275:27|thpd:58:18|coadread:683:16|luad:2057:15|coad:712:13|mup:42:7|aml:198:6|blca:852:5|thap:33:5|read:149:5|rms:50:5|uec:339:5|nsgct:152:5|cll:283:4|ihch:104:4|lgsoc:17:3|sem:59:3|thhc:21:3|erms:8:3|lggnos:544:3|utuc:76:2|cup:135:2|thfo:5:2|sarcl:13:2|mfh:53:2|gbm:688:2|soc:468:2|stad:748:2|thym:125:2|es:229:1|npc:66:1|unk:146:1|panet:86:1|hnsc:643:1|armm:21:1|tmt:3:1|acrm:23:1|thyc:9:1|odg:36:1|paasc:8:1|hnmucm:11:1|blad:7:1|esca:556:1|mixed:3:1|chol:152:1|hcc:620:1|sarc:280:1|chrcc:88:1|aca:93:1 skin:974:187|thyroid:618:71|blood:890:37|bowel:1782:35|lung:2761:17|unk:357:11|softtissue:739:11|testis:217:9|bladder:958:8|cnsbrain:2270:6|ovaryfallopiantube:699:5|biliarytract:358:5|uterus:618:5|headandneck:988:3|thymus:162:3|esophagusstomach:1407:3|pancreas:1059:2|bone:297:1|liver:636:1|kidney:1304:1|adrenalgland:291:1 TTG|ACA|CTT|TCG|CCC|CCA 0.0120300464273379 0.0267810594223141 24592 "pancan,skin,thyroid,bowel,blood,lung,softtissue,testis,bladder,cnsbrain,biliarytract,ovaryfallopiantube,uterus,thymus,headandneck,esophagusstomach" 0 NRAS 61 0 FALSE NA 1 1.16795714944678 1.26187131041539 1.29838371117394 TRUE 165 257 RETAIN TRUE TRUE Q 0 skin skin:88|thyroid:54|blood:15|bowel:8|testis:5|biliarytract:4|bladder:4|lung:4|ovaryfallopiantube:4|softtissue:3|unk:3|uterus:3|cnsbrain:2|esophagusstomach:2|headandneck:2|bone:1|pancreas:1|thymus:1
NRAS 61 -1237.69143477067 422 Q:422 620 0.333333333333333 295|0.692307692307692:0.733333333333333:0.2:0.933333333333333:1:0.25:0.666666666666667:1:0.25:0.571428571428571:1:1:0.5:0.363636363636364:0.428571428571429:0.0833333333333333:1:1:1:1:0.5:1:0.125:0.363636363636364:0.173913043478261:0.25:1:0.8:0.153846153846154:0.857142857142857:0.5:0.5:0.5:1:0.272727272727273:0.214285714285714:1:0.5:1:1:0.2:0.333333333333333:0.6875:0.708333333333333:0.25:0.266666666666667:0.111111111111111:1:1:0.333333333333333:0.428571428571429:0.666666666666667:0.25:0.5:0.833333333333333:0.5:0.735294117647059:0.0476190476190476:0.1:0.133333333333333:0.230769230769231:0.25:1:0.5:0.294117647058824:0.217391304347826:0.46875:0.5:1:0.2:0.166666666666667:0.666666666666667:1:0.8:0.407407407407407:1:0.0212765957446809:0.285714285714286:0.0909090909090909:0.333333333333333:0.2:0.333333333333333:0.5:0.5:1:0.111111111111111:0.5:0.903846153846154:0.5:0.2:1:1:0.0909090909090909:0.4:0.428571428571429:0.0625:0.25:0.833333333333333:1:0.956521739130435:0.111111111111111:0.6:0.212765957446809:0.5:0.207547169811321:1:0.75:0.294117647058824:0.666666666666667:1:0.333333333333333:0.714285714285714:0.142857142857143:1:0.3:0.416666666666667:0.272727272727273:0.25:0.333333333333333:0.345454545454545:0.0952380952380952:0.166666666666667:0.111111111111111:0.454545454545455:0.0666666666666667:1:0.636363636363636:0.636363636363636:0.25:0.272727272727273:0.824324324324324:1:0.75:0.545454545454545:1:1:0.0769230769230769:0.363636363636364:0.290322580645161:0.333333333333333:0.179487179487179:1:0.0666666666666667:0.333333333333333:1:0.478260869565217:0.166666666666667:1:1:0.0276497695852535:0.0716845878136201:0.0263736263736264:0.933333333333333:1:0.5:1:1:0.8125:0.361788617886179:0.113761467889908:0.113761467889908:0.157894736842105:0.333333333333333:0.0555555555555556:0.0357142857142857:0.375:0.111111111111111:0.584415584415584:0.0350877192982456:0.751111111111111:0.761245674740484:0.164989939637827:0.196652719665272:0.135549872122762:0.172113289760349:0.0240963855421687:0.0620767494356659:0.142268041237113:0.147441457068517:0.147959183673469:0.038961038961039:0.686274509803922:0.0929054054054054:0.364787111622555:0.331306990881459:0.691449814126394:0.691449814126394:0.0769230769230769:0.347826086956522:0.117647058823529:0.148148148148148:0.05:0.290030211480363:0.680272108843537:0.188679245283019:0.0701754385964912:0.801526717557252:0.236842105263158:0.1953125:0.0539906103286385:0.015625:0.0390492359932088:0.00790513833992095:0.0597826086956522:0.136783733826248:0.362359550561798:0.0713719270420301:0.328621908127208:0.0657672849915683:0.320099255583127:0.075:0.433021806853583:0.524818401937046:0.524818401937046:0.259259259259259:0.483695652173913:0.0269360269360269:0.100486223662885:0.785507246376812:0.137870855148342:0.472340425531915:0.194331983805668:0.0830769230769231:0.418055555555556:0.546296296296296:0.247596153846154:0.52:0.39832285115304:0.601866251944012:0.234016887816647:0.214007782101167:0.153153153153153:0.137180700094607:0.0666666666666667:0.037037037037037:0.1:0.2:0.458333333333333:0.0588235294117647:0.111111111111111:0.333333333333333:0.181818181818182:0.473684210526316:0.5:0.2:0.136363636363636:0.0769230769230769:0.142857142857143:0.285714285714286:0.25:0.445714285714286:0.149377593360996:0.0227790432801822:0.182278481012658:0.540123456790123:0.021505376344086:0.541666666666667:0.00429184549356223:0.473684210526316:0.103508771929825:0.0930232558139535:0.391304347826087:0.072:0.0113636363636364:0.148837209302326:0.448051948051948:0.761038961038961:0.530373831775701:0.222857142857143:0.433862433862434:0.0810810810810811:0.0723327305605787:0.410714285714286:0.247910863509749:0.384615384615385:0.125:0.24:0.783582089552239:0.0646651270207852:0.445569620253165:0.754777070063694:0.165137614678899:0.10732538330494:0.0375:0.538461538461538:0.0981387478849408:0.029126213592233:0.0833333333333333:0.443514644351464:0.0917431192660551:0.03125:0.674418604651163:0.3125:0.375:0.314285714285714 K:142 cAa/cGa:203|Caa/Aaa:140|cAa/cTa:46|caA/caT:14|caA/caC:13|ggACaa/ggCAaa:2|cAa/cCa:2|Caa/Taa:1|CAa/AGa:1 1:115256529_252|1:115256530_143|1:115256528_27 skcm:787:186|thpa:486:43|mm:275:27|thpd:58:18|coadread:683:16|luad:2057:15|coad:712:13|mup:42:7|aml:198:6|blca:852:5|thap:33:5|read:149:5|rms:50:5|uec:339:5|nsgct:152:5|cll:283:4|ihch:104:4|lgsoc:17:3|sem:59:3|thhc:21:3|erms:8:3|lggnos:544:3|utuc:76:2|cup:135:2|thfo:5:2|sarcl:13:2|mfh:53:2|gbm:688:2|soc:468:2|stad:748:2|thym:125:2|es:229:1|npc:66:1|unk:146:1|panet:86:1|hnsc:643:1|armm:21:1|tmt:3:1|acrm:23:1|thyc:9:1|odg:36:1|paasc:8:1|hnmucm:11:1|blad:7:1|esca:556:1|mixed:3:1|chol:152:1|hcc:620:1|sarc:280:1|chrcc:88:1|aca:93:1 skin:974:187|thyroid:618:71|blood:890:37|bowel:1782:35|lung:2761:17|unk:357:11|softtissue:739:11|testis:217:9|bladder:958:8|cnsbrain:2270:6|ovaryfallopiantube:699:5|biliarytract:358:5|uterus:618:5|headandneck:988:3|thymus:162:3|esophagusstomach:1407:3|pancreas:1059:2|bone:297:1|liver:636:1|kidney:1304:1|adrenalgland:291:1 TTG|ACA|CTT|TCG|CCC|CCA 0.0120300464273379 0.0267810594223141 24592 "pancan,skin,thyroid,bowel,blood,lung,softtissue,testis,bladder,cnsbrain,biliarytract,ovaryfallopiantube,uterus,thymus,headandneck,esophagusstomach" 0 NRAS 61 0 FALSE NA 1 1.16795714944678 1.26187131041539 1.29838371117394 TRUE 165 257 RETAIN TRUE TRUE Q 0 skin skin:62|bowel:18|thyroid:17|blood:12|softtissue:6|lung:5|unk:5|bladder:3|cnsbrain:2|thymus:2|adrenalgland:1|biliarytract:1|esophagusstomach:1|headandneck:1|kidney:1|liver:1|ovaryfallopiantube:1|pancreas:1|testis:1|uterus:1
NRAS 61 -1237.69143477067 422 Q:422 620 0.333333333333333 295|0.692307692307692:0.733333333333333:0.2:0.933333333333333:1:0.25:0.666666666666667:1:0.25:0.571428571428571:1:1:0.5:0.363636363636364:0.428571428571429:0.0833333333333333:1:1:1:1:0.5:1:0.125:0.363636363636364:0.173913043478261:0.25:1:0.8:0.153846153846154:0.857142857142857:0.5:0.5:0.5:1:0.272727272727273:0.214285714285714:1:0.5:1:1:0.2:0.333333333333333:0.6875:0.708333333333333:0.25:0.266666666666667:0.111111111111111:1:1:0.333333333333333:0.428571428571429:0.666666666666667:0.25:0.5:0.833333333333333:0.5:0.735294117647059:0.0476190476190476:0.1:0.133333333333333:0.230769230769231:0.25:1:0.5:0.294117647058824:0.217391304347826:0.46875:0.5:1:0.2:0.166666666666667:0.666666666666667:1:0.8:0.407407407407407:1:0.0212765957446809:0.285714285714286:0.0909090909090909:0.333333333333333:0.2:0.333333333333333:0.5:0.5:1:0.111111111111111:0.5:0.903846153846154:0.5:0.2:1:1:0.0909090909090909:0.4:0.428571428571429:0.0625:0.25:0.833333333333333:1:0.956521739130435:0.111111111111111:0.6:0.212765957446809:0.5:0.207547169811321:1:0.75:0.294117647058824:0.666666666666667:1:0.333333333333333:0.714285714285714:0.142857142857143:1:0.3:0.416666666666667:0.272727272727273:0.25:0.333333333333333:0.345454545454545:0.0952380952380952:0.166666666666667:0.111111111111111:0.454545454545455:0.0666666666666667:1:0.636363636363636:0.636363636363636:0.25:0.272727272727273:0.824324324324324:1:0.75:0.545454545454545:1:1:0.0769230769230769:0.363636363636364:0.290322580645161:0.333333333333333:0.179487179487179:1:0.0666666666666667:0.333333333333333:1:0.478260869565217:0.166666666666667:1:1:0.0276497695852535:0.0716845878136201:0.0263736263736264:0.933333333333333:1:0.5:1:1:0.8125:0.361788617886179:0.113761467889908:0.113761467889908:0.157894736842105:0.333333333333333:0.0555555555555556:0.0357142857142857:0.375:0.111111111111111:0.584415584415584:0.0350877192982456:0.751111111111111:0.761245674740484:0.164989939637827:0.196652719665272:0.135549872122762:0.172113289760349:0.0240963855421687:0.0620767494356659:0.142268041237113:0.147441457068517:0.147959183673469:0.038961038961039:0.686274509803922:0.0929054054054054:0.364787111622555:0.331306990881459:0.691449814126394:0.691449814126394:0.0769230769230769:0.347826086956522:0.117647058823529:0.148148148148148:0.05:0.290030211480363:0.680272108843537:0.188679245283019:0.0701754385964912:0.801526717557252:0.236842105263158:0.1953125:0.0539906103286385:0.015625:0.0390492359932088:0.00790513833992095:0.0597826086956522:0.136783733826248:0.362359550561798:0.0713719270420301:0.328621908127208:0.0657672849915683:0.320099255583127:0.075:0.433021806853583:0.524818401937046:0.524818401937046:0.259259259259259:0.483695652173913:0.0269360269360269:0.100486223662885:0.785507246376812:0.137870855148342:0.472340425531915:0.194331983805668:0.0830769230769231:0.418055555555556:0.546296296296296:0.247596153846154:0.52:0.39832285115304:0.601866251944012:0.234016887816647:0.214007782101167:0.153153153153153:0.137180700094607:0.0666666666666667:0.037037037037037:0.1:0.2:0.458333333333333:0.0588235294117647:0.111111111111111:0.333333333333333:0.181818181818182:0.473684210526316:0.5:0.2:0.136363636363636:0.0769230769230769:0.142857142857143:0.285714285714286:0.25:0.445714285714286:0.149377593360996:0.0227790432801822:0.182278481012658:0.540123456790123:0.021505376344086:0.541666666666667:0.00429184549356223:0.473684210526316:0.103508771929825:0.0930232558139535:0.391304347826087:0.072:0.0113636363636364:0.148837209302326:0.448051948051948:0.761038961038961:0.530373831775701:0.222857142857143:0.433862433862434:0.0810810810810811:0.0723327305605787:0.410714285714286:0.247910863509749:0.384615384615385:0.125:0.24:0.783582089552239:0.0646651270207852:0.445569620253165:0.754777070063694:0.165137614678899:0.10732538330494:0.0375:0.538461538461538:0.0981387478849408:0.029126213592233:0.0833333333333333:0.443514644351464:0.0917431192660551:0.03125:0.674418604651163:0.3125:0.375:0.314285714285714 L:46 cAa/cGa:203|Caa/Aaa:140|cAa/cTa:46|caA/caT:14|caA/caC:13|ggACaa/ggCAaa:2|cAa/cCa:2|Caa/Taa:1|CAa/AGa:1 1:115256529_252|1:115256530_143|1:115256528_27 skcm:787:186|thpa:486:43|mm:275:27|thpd:58:18|coadread:683:16|luad:2057:15|coad:712:13|mup:42:7|aml:198:6|blca:852:5|thap:33:5|read:149:5|rms:50:5|uec:339:5|nsgct:152:5|cll:283:4|ihch:104:4|lgsoc:17:3|sem:59:3|thhc:21:3|erms:8:3|lggnos:544:3|utuc:76:2|cup:135:2|thfo:5:2|sarcl:13:2|mfh:53:2|gbm:688:2|soc:468:2|stad:748:2|thym:125:2|es:229:1|npc:66:1|unk:146:1|panet:86:1|hnsc:643:1|armm:21:1|tmt:3:1|acrm:23:1|thyc:9:1|odg:36:1|paasc:8:1|hnmucm:11:1|blad:7:1|esca:556:1|mixed:3:1|chol:152:1|hcc:620:1|sarc:280:1|chrcc:88:1|aca:93:1 skin:974:187|thyroid:618:71|blood:890:37|bowel:1782:35|lung:2761:17|unk:357:11|softtissue:739:11|testis:217:9|bladder:958:8|cnsbrain:2270:6|ovaryfallopiantube:699:5|biliarytract:358:5|uterus:618:5|headandneck:988:3|thymus:162:3|esophagusstomach:1407:3|pancreas:1059:2|bone:297:1|liver:636:1|kidney:1304:1|adrenalgland:291:1 TTG|ACA|CTT|TCG|CCC|CCA 0.0120300464273379 0.0267810594223141 24592 "pancan,skin,thyroid,bowel,blood,lung,softtissue,testis,bladder,cnsbrain,biliarytract,ovaryfallopiantube,uterus,thymus,headandneck,esophagusstomach" 0 NRAS 61 0 FALSE NA 1 1.16795714944678 1.26187131041539 1.29838371117394 TRUE 165 257 RETAIN TRUE TRUE Q 0 skin skin:24|bowel:7|lung:6|blood:2|cnsbrain:2|unk:2|bladder:1|softtissue:1|uterus:1
NRAS 61 -1237.69143477067 422 Q:422 620 0.333333333333333 295|0.692307692307692:0.733333333333333:0.2:0.933333333333333:1:0.25:0.666666666666667:1:0.25:0.571428571428571:1:1:0.5:0.363636363636364:0.428571428571429:0.0833333333333333:1:1:1:1:0.5:1:0.125:0.363636363636364:0.173913043478261:0.25:1:0.8:0.153846153846154:0.857142857142857:0.5:0.5:0.5:1:0.272727272727273:0.214285714285714:1:0.5:1:1:0.2:0.333333333333333:0.6875:0.708333333333333:0.25:0.266666666666667:0.111111111111111:1:1:0.333333333333333:0.428571428571429:0.666666666666667:0.25:0.5:0.833333333333333:0.5:0.735294117647059:0.0476190476190476:0.1:0.133333333333333:0.230769230769231:0.25:1:0.5:0.294117647058824:0.217391304347826:0.46875:0.5:1:0.2:0.166666666666667:0.666666666666667:1:0.8:0.407407407407407:1:0.0212765957446809:0.285714285714286:0.0909090909090909:0.333333333333333:0.2:0.333333333333333:0.5:0.5:1:0.111111111111111:0.5:0.903846153846154:0.5:0.2:1:1:0.0909090909090909:0.4:0.428571428571429:0.0625:0.25:0.833333333333333:1:0.956521739130435:0.111111111111111:0.6:0.212765957446809:0.5:0.207547169811321:1:0.75:0.294117647058824:0.666666666666667:1:0.333333333333333:0.714285714285714:0.142857142857143:1:0.3:0.416666666666667:0.272727272727273:0.25:0.333333333333333:0.345454545454545:0.0952380952380952:0.166666666666667:0.111111111111111:0.454545454545455:0.0666666666666667:1:0.636363636363636:0.636363636363636:0.25:0.272727272727273:0.824324324324324:1:0.75:0.545454545454545:1:1:0.0769230769230769:0.363636363636364:0.290322580645161:0.333333333333333:0.179487179487179:1:0.0666666666666667:0.333333333333333:1:0.478260869565217:0.166666666666667:1:1:0.0276497695852535:0.0716845878136201:0.0263736263736264:0.933333333333333:1:0.5:1:1:0.8125:0.361788617886179:0.113761467889908:0.113761467889908:0.157894736842105:0.333333333333333:0.0555555555555556:0.0357142857142857:0.375:0.111111111111111:0.584415584415584:0.0350877192982456:0.751111111111111:0.761245674740484:0.164989939637827:0.196652719665272:0.135549872122762:0.172113289760349:0.0240963855421687:0.0620767494356659:0.142268041237113:0.147441457068517:0.147959183673469:0.038961038961039:0.686274509803922:0.0929054054054054:0.364787111622555:0.331306990881459:0.691449814126394:0.691449814126394:0.0769230769230769:0.347826086956522:0.117647058823529:0.148148148148148:0.05:0.290030211480363:0.680272108843537:0.188679245283019:0.0701754385964912:0.801526717557252:0.236842105263158:0.1953125:0.0539906103286385:0.015625:0.0390492359932088:0.00790513833992095:0.0597826086956522:0.136783733826248:0.362359550561798:0.0713719270420301:0.328621908127208:0.0657672849915683:0.320099255583127:0.075:0.433021806853583:0.524818401937046:0.524818401937046:0.259259259259259:0.483695652173913:0.0269360269360269:0.100486223662885:0.785507246376812:0.137870855148342:0.472340425531915:0.194331983805668:0.0830769230769231:0.418055555555556:0.546296296296296:0.247596153846154:0.52:0.39832285115304:0.601866251944012:0.234016887816647:0.214007782101167:0.153153153153153:0.137180700094607:0.0666666666666667:0.037037037037037:0.1:0.2:0.458333333333333:0.0588235294117647:0.111111111111111:0.333333333333333:0.181818181818182:0.473684210526316:0.5:0.2:0.136363636363636:0.0769230769230769:0.142857142857143:0.285714285714286:0.25:0.445714285714286:0.149377593360996:0.0227790432801822:0.182278481012658:0.540123456790123:0.021505376344086:0.541666666666667:0.00429184549356223:0.473684210526316:0.103508771929825:0.0930232558139535:0.391304347826087:0.072:0.0113636363636364:0.148837209302326:0.448051948051948:0.761038961038961:0.530373831775701:0.222857142857143:0.433862433862434:0.0810810810810811:0.0723327305605787:0.410714285714286:0.247910863509749:0.384615384615385:0.125:0.24:0.783582089552239:0.0646651270207852:0.445569620253165:0.754777070063694:0.165137614678899:0.10732538330494:0.0375:0.538461538461538:0.0981387478849408:0.029126213592233:0.0833333333333333:0.443514644351464:0.0917431192660551:0.03125:0.674418604651163:0.3125:0.375:0.314285714285714 H:27 cAa/cGa:203|Caa/Aaa:140|cAa/cTa:46|caA/caT:14|caA/caC:13|ggACaa/ggCAaa:2|cAa/cCa:2|Caa/Taa:1|CAa/AGa:1 1:115256529_252|1:115256530_143|1:115256528_27 skcm:787:186|thpa:486:43|mm:275:27|thpd:58:18|coadread:683:16|luad:2057:15|coad:712:13|mup:42:7|aml:198:6|blca:852:5|thap:33:5|read:149:5|rms:50:5|uec:339:5|nsgct:152:5|cll:283:4|ihch:104:4|lgsoc:17:3|sem:59:3|thhc:21:3|erms:8:3|lggnos:544:3|utuc:76:2|cup:135:2|thfo:5:2|sarcl:13:2|mfh:53:2|gbm:688:2|soc:468:2|stad:748:2|thym:125:2|es:229:1|npc:66:1|unk:146:1|panet:86:1|hnsc:643:1|armm:21:1|tmt:3:1|acrm:23:1|thyc:9:1|odg:36:1|paasc:8:1|hnmucm:11:1|blad:7:1|esca:556:1|mixed:3:1|chol:152:1|hcc:620:1|sarc:280:1|chrcc:88:1|aca:93:1 skin:974:187|thyroid:618:71|blood:890:37|bowel:1782:35|lung:2761:17|unk:357:11|softtissue:739:11|testis:217:9|bladder:958:8|cnsbrain:2270:6|ovaryfallopiantube:699:5|biliarytract:358:5|uterus:618:5|headandneck:988:3|thymus:162:3|esophagusstomach:1407:3|pancreas:1059:2|bone:297:1|liver:636:1|kidney:1304:1|adrenalgland:291:1 TTG|ACA|CTT|TCG|CCC|CCA 0.0120300464273379 0.0267810594223141 24592 "pancan,skin,thyroid,bowel,blood,lung,softtissue,testis,bladder,cnsbrain,biliarytract,ovaryfallopiantube,uterus,thymus,headandneck,esophagusstomach" 0 NRAS 61 0 FALSE NA 1 1.16795714944678 1.26187131041539 1.29838371117394 TRUE 165 257 RETAIN TRUE TRUE Q 0 skin skin:12|blood:7|bowel:2|lung:2|testis:2|softtissue:1|unk:1

Indel

Hugo_Symbol     Amino_Acid_Position     log10_pvalue    Mutation_Count  Reference_Amino_Acid    Total_Mutations_in_Gene Median_Allele_Freq_Rank Allele_Freq_Rank        SNP_ID  Variant_Amino_Acid    Codon_Change    Genomic_Position        Detailed_Cancer_Types   Organ_Types     Tri-nucleotides Mutability      mu_protein      ccf     Total_Samples   indel_size      qvalue  tm   Is_repeat        seq     length  align100        pad12entropy    pad24entropy    pad36entropy    TP      reason  n_MSK   n_Retro judgement       inNBT   inOncokb        Samples
SMARCA4 546 -7.75235638169585 5 QK:5 101 NA NA :NA K546del:5 cAGAag/cag:5 19:11106926_5 lgg:536:4|dlbcl:246:1 cnsbrain:2283:4|lymph:366:1 NA 0.0573226243518208 0.0473351872460284 NA 24592 1 0.000230672905611517 SMARCA4 546 FALSE NA NA 1 0.91489630957268 1.2950060272429 1.33965330506364 FALSE LOCAL_ENTROPY 1 4 RETAIN FALSE FALSE cnsbrain:4|lymph:1
CDKN2A 27-42 -6.82111516846557 12 VRALLEA:4|LEAGALP:3|ALPN:1|EV:1|GA:1|PNAPN:1|RALLEA:1 219 NA NA :NA V28_E33del:4 gTGCGGGCGCTGCTGGAGGcg/gcg:4|cTGGAGGCGGGGGCGCTGCcc/ccc:3|GGGGCG/-:1|gCGCTGCCCAac/gac:1|gAGGtg/gtg:1|CGGGCGCTGCTGGAGGCG/-:1|ccCAACGCACCGAAt/cct:1 9:21974727_4|9:21974715_3|9:21974745_1|9:21974725_1|9:21974719_1|9:21974712_1|9:21974702_1 luad:2071:3|esca:556:2|blca:852:1|skcm:192:1|icemu:1:1|paad:932:1|mel:595:1|stad:748:1|hnsc:650:1 esophagusstomach:1413:3|lung:2767:3|skin:974:2|bladder:955:1|cervix:234:1|pancreas:1059:1|headandneck:988:1 NA 0.0573226243518208 0.0473351872460284 NA 24592 15 8.77193090544841e-05 CDKN2A 27-42 FALSE NA NA 1 0.857780912379927 1.13008762297022 1.1577633500238 FALSE LOCAL_ENTROPY 6 6 RETAIN FALSE FALSE cervix:1|esophagusstomach:1|lung:1|pancreas:1
CDKN2A 27-42 -6.82111516846557 12 VRALLEA:4|LEAGALP:3|ALPN:1|EV:1|GA:1|PNAPN:1|RALLEA:1 219 NA NA :NA L32_L37del:3 gTGCGGGCGCTGCTGGAGGcg/gcg:4|cTGGAGGCGGGGGCGCTGCcc/ccc:3|GGGGCG/-:1|gCGCTGCCCAac/gac:1|gAGGtg/gtg:1|CGGGCGCTGCTGGAGGCG/-:1|ccCAACGCACCGAAt/cct:1 9:21974727_4|9:21974715_3|9:21974745_1|9:21974725_1|9:21974719_1|9:21974712_1|9:21974702_1 luad:2071:3|esca:556:2|blca:852:1|skcm:192:1|icemu:1:1|paad:932:1|mel:595:1|stad:748:1|hnsc:650:1 esophagusstomach:1413:3|lung:2767:3|skin:974:2|bladder:955:1|cervix:234:1|pancreas:1059:1|headandneck:988:1 NA 0.0573226243518208 0.0473351872460284 NA 24592 15 8.77193090544841e-05 CDKN2A 27-42 FALSE NA NA 1 0.857780912379927 1.13008762297022 1.1577633500238 FALSE LOCAL_ENTROPY 6 6 RETAIN FALSE FALSE skin:2|esophagusstomach:1
CDKN2A 27-42 -6.82111516846557 12 VRALLEA:4|LEAGALP:3|ALPN:1|EV:1|GA:1|PNAPN:1|RALLEA:1 219 NA NA :NA A36_N39delinsD:1 gTGCGGGCGCTGCTGGAGGcg/gcg:4|cTGGAGGCGGGGGCGCTGCcc/ccc:3|GGGGCG/-:1|gCGCTGCCCAac/gac:1|gAGGtg/gtg:1|CGGGCGCTGCTGGAGGCG/-:1|ccCAACGCACCGAAt/cct:1 9:21974727_4|9:21974715_3|9:21974745_1|9:21974725_1|9:21974719_1|9:21974712_1|9:21974702_1 luad:2071:3|esca:556:2|blca:852:1|skcm:192:1|icemu:1:1|paad:932:1|mel:595:1|stad:748:1|hnsc:650:1 esophagusstomach:1413:3|lung:2767:3|skin:974:2|bladder:955:1|cervix:234:1|pancreas:1059:1|headandneck:988:1 NA 0.0573226243518208 0.0473351872460284 NA 24592 15 8.77193090544841e-05 CDKN2A 27-42 FALSE NA NA 0.857780912379927 1.13008762297022 1.1577633500238 FALSE LOCAL_ENTROPY 6 6 RETAIN FALSE FALSE lung:1

Parsing

From the file, we're mainly interested in the following columns:

  • Hugo_Symbol
  • Amino_Acid_Position
  • Mutation_Count
  • Reference_Amino_Acid
  • Variant_Amino_Acid
  • qvalue

We map the gene symbol onto the canonical transcripts (RefSeq & Ensembl) for that gene. For SNVs, we obtain position, ref and alt amino acid from source file and generate substitution notation. For indels, we get protein change notation from Reference_Amino_Acid column. Then we match each entry using these notations.

caution

We currently skip all variants labeled as splice from the source

JSON Output

The data source will be captured under the cancerHotspots key in the transcript section.

{
"transcript":"NM_002524.5",
"source":"RefSeq",
"bioType":"mRNA",
"aminoAcids":"Q/K",
"proteinPos":"61",
"geneId":"4893",
"hgnc":"NRAS",
"hgvsc":"NM_002524.5:c.181C>A",
"hgvsp":"NP_002515.1:p.(Gln61Lys)",
"isCanonical":true,
"proteinId":"NP_002515.1",
"cancerHotspots":{
"residue":"Q61",
"numSamples":422,
"numAltAminoAcidSamples":142,
"qValue":0
}
}
FieldTypeNotes
residuestring
numSamplesinthow many samples are associated with a variant at the same amino acid position
numAltAminoAcidSamplesinthow many samples are associated with a variant with the same position and alternate amino acid position
qValuedouble
- - + + \ No newline at end of file diff --git a/3.22/data-sources/clingen-dosage-json/index.html b/3.22/data-sources/clingen-dosage-json/index.html index d585bfd1..33124e14 100644 --- a/3.22/data-sources/clingen-dosage-json/index.html +++ b/3.22/data-sources/clingen-dosage-json/index.html @@ -6,13 +6,13 @@ clingen-dosage-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

clingen-dosage-json

"clingenDosageSensitivityMap": [{
"chromosome": "15",
"begin": 30900686,
"end": 32153204,
"haploinsufficiency": "sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype",
"triplosensitivity": "little evidence suggesting dosage sensitivity is associated with clinical phenotype",
"reciprocalOverlap": 0.00147,
"annotationOverlap": 0.33994
},
{
"chromosome": "15",
"begin": 31727418,
"end": 32153204,
"haploinsufficiency": "sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype",
"triplosensitivity": "dosage sensitivity unlikely",
"reciprocalOverlap": 0.00147,
"annotationOverlap": 1
}]
FieldTypeNotes
clingenDosageSensitivityMapobject array
chromosomestringEnsembl-style chromosome names
begininteger1-based position
endinteger1-based position
haploinsufficiencystringsee possible values below
triplosensitivitystring(same as haploinsufficiency) 
reciprocalOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).
annotationOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).

haploinsufficiency and triplosensitivity

  • no evidence to suggest that dosage sensitivity is associated with clinical phenotype
  • little evidence suggesting dosage sensitivity is associated with clinical phenotype
  • emerging evidence suggesting dosage sensitivity is associated with clinical phenotype
  • sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype
  • gene associated with autosomal recessive phenotype
  • dosage sensitivity unlikely
- - + + \ No newline at end of file diff --git a/3.22/data-sources/clingen-gene-validity-json/index.html b/3.22/data-sources/clingen-gene-validity-json/index.html index 833be5fa..95e4dc84 100644 --- a/3.22/data-sources/clingen-gene-validity-json/index.html +++ b/3.22/data-sources/clingen-gene-validity-json/index.html @@ -6,13 +6,13 @@ clingen-gene-validity-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

clingen-gene-validity-json

"clingenGeneValidity":[
{
"diseaseId":"MONDO_0007893",
"disease":"Noonan syndrome with multiple lentigines",
"classification":"no reported evidence",
"classificationDate":"2018-06-07"
},
{
"diseaseId":"MONDO_0015280",
"disease":"cardiofaciocutaneous syndrome",
"classification":"no reported evidence",
"classificationDate":"2018-06-07"
}
]
FieldTypeNotes
clingenGeneValidityobject
diseaseIdstringMonarch Disease Ontology ID (MONDO)
diseasestringdisease label
classificationstringsee below for possible values
classificationDatestringyyyy-MM-dd

classification

  • no reported evidence
  • disputed
  • limited
  • moderate
  • definitive
  • strong
  • refuted
  • no known disease relationship
- - + + \ No newline at end of file diff --git a/3.22/data-sources/clingen-json/index.html b/3.22/data-sources/clingen-json/index.html index df8f7bb0..ff1067d2 100644 --- a/3.22/data-sources/clingen-json/index.html +++ b/3.22/data-sources/clingen-json/index.html @@ -6,13 +6,13 @@ clingen-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

clingen-json

"clingen":[
{
"chromosome":"17",
"begin":525,
"end":14667519,
"variantType":"copy_number_gain",
"id":"nsv996083",
"clinicalInterpretation":"pathogenic",
"observedGains":1,
"validated":true,
"phenotypes":[
"Intrauterine growth retardation"
],
"phenotypeIds":[
"HP:0001511",
"MedGen:C1853481"
],
"reciprocalOverlap":0.00131
},
{
"chromosome":"17",
"begin":45835,
"end":7600330,
"variantType":"copy_number_loss",
"id":"nsv869419",
"clinicalInterpretation":"pathogenic",
"observedLosses":1,
"validated":true,
"phenotypes":[
"Developmental delay AND/OR other significant developmental or morphological phenotypes"
],
"reciprocalOverlap":0.00254
}
]
FieldTypeNotes
clingenobject array
chromosomestringEnsembl-style chromosome names
begininteger1-based position
endinteger1-based position
variantTypestringAny of the sequence alterations defined here.
idstringIdentifier from the data source. Alternatively a VID
clinicalInterpretationstringsee possible values below
observedGainsintegerRange: 0 - (231 - 1). Only used if copy_number_variation, copy_number_loss, or copy_number_gain.
observedLossesintegerRange: 0 - (231 - 1). Only used if copy_number_variation, copy_number_loss, or copy_number_gain.
validatedboolean
phenotypesstring arrayDescription of the phenotype.
phenotypeIdsstring arrayDescription of the phenotype IDs.
reciprocalOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).

clinicalInterpretation

  • benign
  • curated benign
  • curated pathogenic
  • likely benign
  • likely pathogenic
  • path gain
  • path loss
  • pathogenic
  • uncertain
- - + + \ No newline at end of file diff --git a/3.22/data-sources/clingen/index.html b/3.22/data-sources/clingen/index.html index d6e37476..9da8a5fb 100644 --- a/3.22/data-sources/clingen/index.html +++ b/3.22/data-sources/clingen/index.html @@ -6,13 +6,13 @@ ClinGen | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

ClinGen

Overview

ClinGen is a National Institutes of Health (NIH)-funded resource dedicated to building a central resource that defines the clinical relevance of genes and variants for use in precision medicine and research.

Publication

Heidi L. Rehm, Ph.D., Jonathan S. Berg, M.D., Ph.D., Lisa D. Brooks, Ph.D., Carlos D. Bustamante, Ph.D., James P. Evans, M.D., Ph.D., Melissa J. Landrum, Ph.D., David H. Ledbetter, Ph.D., Donna R. Maglott, Ph.D., Christa Lese Martin, Ph.D., Robert L. Nussbaum, M.D., Sharon E. Plon, M.D., Ph.D., Erin M. Ramos, Ph.D., Stephen T. Sherry, Ph.D., and Michael S. Watson, Ph.D., for ClinGen. ClinGen The Clinical Genome Resource. N Engl J Med 2015; 372:2235-2242 June 4, 2015 DOI: 10.1056/NEJMsr1406261.

ISCA Regions

TSV Extraction

ClinGen contains only copy number variation variants, since the coordinates in ClinGen original file follow the same rule as BED format, the coordinates had to be adjusted to [BEGIN+1, END].

#bin    chrom   chromStart      chromEnd        name    score   strand  thickStart      thickEnd        attrCount       attrTags        attrVals
nsv530705 1 564405 8597804 0 1 copy_number_loss pathogenic False Developmental delay AND/OR other significant developmental or morphological phenotypes
nsv530706 1 564424 3262790 0 1 copy_number_loss pathogenic False Abnormal facial shape,Abnormality of cardiac morphology,Global developmental delay,Muscular hypotonia HP:0001252,HP:0001263,HP:0001627,HP:0001999,MedGen:CN001147,MedGen:CN001157,MedGen:CN001482,MedGen:CN001810
nsv530707 1 564424 7068738 0 1 copy_number_loss pathogenic False Abnormality of cardiac morphology,Cleft upper lip,Failure to thrive,Global developmental delay,Intrauterine growth retardation,Microcephaly,Short stature HP:0000204,HP:0000252,HP:0001263,HP:0001508,HP:0001511,HP:0001627,HP:0004322,MedGen:C0349588,MedGen:C1845868,MedGen:C1853481,MedGen:C2364119,MedGen:CN000197,MedGen:CN001157,MedGen:CN001482
nsv533512 1 564435 649748 0 1 copy_number_loss benign False Developmental delay AND/OR other significant developmental or morphological phenotypes
nsv931338 1 714078 4958499 0 1 copy_number_loss pathogenic False Developmental delay AND/OR other significant developmental or morphological phenotypes
nsv530300 1 728138 5066371 1 0 copy_number_gain pathogenic False Abnormality of cardiac morphology,Cleft palate,Global developmental delay HP:0000175,HP:0001263,HP:0001627,MedGen:C2240378,MedGen:CN001157,MedGen:CN001482

Status levels

  • benign
  • curated benign
  • curated pathogenic
  • likely benign
  • likely pathogenic
  • path gain
  • path loss
  • pathogenic
  • uncertain

Parsing

We parse the ClinGen tsv file and extract the following:

  • chrom
  • chromStart (note this a 0-based coordinate)
  • chromEnd
  • attrTags
  • attrVals

attrTags and attrVals are comma separated lists. attrTags contains the field keys and attrVals contains the field values. We will parse the following keys from the two fields:

  • parent (this will be used as the ID in our JSON output)
  • clinical_int
  • validated
  • phenotype (this should be a string array)
  • phenotype_id (this should be a string array)

Observed losses and observed gains will be calculated from entries that share a common parent ID.

  • variants with a common parent ID and same coordinates are grouped
    • calculated observed losses, observed gains for each group
    • Clinical significance and validation status are collapsed using the priority strategy described below
  • Variants with the same parent ID can have different coordinates (mapped to hg38)
    • nsv491508 : chr14:105583663-106881350 and chr14:105605043-106766076 (only one example)
    • we kept both variants

Conflict Resolution

Clinical significance priority

When there are a mixture of variants belonging to the same parent ID, we will choose the most pathogenic clinical significance from the available values. i.e. if 3 samples were deemed pathogenic and 2 samples were likely pathogenic, we would list the variant as pathogenic.

Priority (high to low)

  • Priority
  • Pathogenic
  • Likely pathogenic
  • Benign
  • Likely benign
  • Uncertain significance

Validation Priority

When there are a mixture of variants belonging to same parent ID, we will set the validation status to true if any of the variants were validated.

Download URL

https://cirm.ucsc.edu/cgi-bin/hgTrackUi?db=hg19&g=iscaComposite

JSON Output

"clingen":[
{
"chromosome":"17",
"begin":525,
"end":14667519,
"variantType":"copy_number_gain",
"id":"nsv996083",
"clinicalInterpretation":"pathogenic",
"observedGains":1,
"validated":true,
"phenotypes":[
"Intrauterine growth retardation"
],
"phenotypeIds":[
"HP:0001511",
"MedGen:C1853481"
],
"reciprocalOverlap":0.00131
},
{
"chromosome":"17",
"begin":45835,
"end":7600330,
"variantType":"copy_number_loss",
"id":"nsv869419",
"clinicalInterpretation":"pathogenic",
"observedLosses":1,
"validated":true,
"phenotypes":[
"Developmental delay AND/OR other significant developmental or morphological phenotypes"
],
"reciprocalOverlap":0.00254
}
]
FieldTypeNotes
clingenobject array
chromosomestringEnsembl-style chromosome names
begininteger1-based position
endinteger1-based position
variantTypestringAny of the sequence alterations defined here.
idstringIdentifier from the data source. Alternatively a VID
clinicalInterpretationstringsee possible values below
observedGainsintegerRange: 0 - (231 - 1). Only used if copy_number_variation, copy_number_loss, or copy_number_gain.
observedLossesintegerRange: 0 - (231 - 1). Only used if copy_number_variation, copy_number_loss, or copy_number_gain.
validatedboolean
phenotypesstring arrayDescription of the phenotype.
phenotypeIdsstring arrayDescription of the phenotype IDs.
reciprocalOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).

clinicalInterpretation

  • benign
  • curated benign
  • curated pathogenic
  • likely benign
  • likely pathogenic
  • path gain
  • path loss
  • pathogenic
  • uncertain

Dosage Sensitivity Map

The Clinical Genome Resource (ClinGen) consortium is curating genes and regions of the genome to assess whether there is evidence to support that these genes/regions are dosage sensitive and should be targeted on a cytogenomic array. Illumina Connected Annotations reports these annotations for overlapping SVs.

Publication

Riggs ER, Nelson T, Merz A, Ackley T, Bunke B, Collins CD, Collinson MN, Fan YS, Goodenberger ML, Golden DM, Haglund-Hazy L, Krgovic D, Lamb AN, Lewis Z, Li G, Liu Y, Meck J, Neufeld-Kaiser W, Runke CK, Sanmann JN, Stavropoulos DJ, Strong E, Su M, Tayeh MK, Kokalj Vokac N, Thorland EC, Andersen E, Martin CL. Copy number variant discrepancy resolution using the ClinGen dosage sensitivity map results in updated clinical interpretations in ClinVar. Hum Mutat. 2018 Nov;39(11):1650-1659. doi: 10.1002/humu.23610. PMID: 30095202; PMCID: PMC7374944.

TSV Source files

Regions

#ClinGen Region Curation Results
#07 May,2019
#Genomic Locations are reported on GRCh38 (hg38): GCF_000001405.36
#https://www.ncbi.nlm.nih.gov/projects/dbvar/clingen
#to create link: https://www.ncbi.nlm.nih.gov/projects/dbvar/clingen/clingen_region.cgi?id=key
#ISCA ID ISCA Region Name cytoBand Genomic Location Haploinsufficiency Score Haploinsufficiency Description Haploinsufficiency PMID1 Haploinsufficiency PMID2 Haploinsufficiency PMID3 Triplosensitivity Score Triplosensitivity Description Triplosensitivity PMID1 Triplosensitivity PMID2 Triplosensitivity PMID3 Date Last Evaluated Loss phenotype OMIM ID Triplosensitive phenotype OMIM ID
ISCA-46299 Xp11.22 region (includes HUWE1) Xp11.22 tbd 0 No evidence available 3 Sufficient evidence for dosage pathogenicity 22840365 20655035 26692240 2018-11-19
ISCA-46295 15q13.3 recurrent region (D-CHRNA7 to BP5) (includes CHRNA7 and OTUD7A) 15q13.3 chr15:31727418-32153204 3 Sufficient evidence for dosage pathogenicity 19898479 20236110 22775350 40 Dosage sensitivity unlikely 26968334 22420048 2018-05-10
ISCA-46291 7q11.23 recurrent distal region (includes HIP1, YWHAG) 7q11.23 chr7:75528718-76433859 2 Some evidence for dosage pathogenicity 21109226 16971481 1 Little evidence for dosage pathogenicity 21109226 27867344 2018-12-31
ISCA-46290 Xp11.22p11.23 recurrent region (includes SHROOM4) Xp11.22-p11.23 chrX: 48447780-52444264 0 No evidence available 3 Sufficient evidence for dosage pathogenicity 19716111 21418194 25425167 2017-12-14 300801

Genes

#ClinGen Gene Curation Results
#24 May,2019
#Genomic Locations are reported on GRCh37 (hg19): GCF_000001405.13
#https://www.ncbi.nlm.nih.gov/projects/dbvar/clingen
#to create link: https://www.ncbi.nlm.nih.gov/projects/dbvar/clingen/clingen_gene.cgi?sym=Gene Symbol
#Gene Symbol Gene ID cytoBand Genomic Location Haploinsufficiency Score Haploinsufficiency Description Haploinsufficiency PMID1 Haploinsufficiency PMID2 Haploinsufficiency PMID3 Triplosensitivity Score Triplosensitivity Description Triplosensitivity PMID1 Triplosensitivity PMID2 Triplosensitivity PMID3 Date Last Evaluated Loss phenotype OMIM ID Triplosensitive phenotype OMIM ID
A4GALT 53947 22q13.2 chr22:43088121-43117307 30 Gene associated with autosomal recessive phenotype 0 No evidence available 2014-12-11 111400
AAGAB 79719 15q23 chr15:67493013-67547536 3 Sufficient evidence for dosage pathogenicity 23064416 23000146 0 No evidence available 2013-02-28 148600

Dosage Rating System

RatingPossible Clinical Interpretation
0No evidence to suggest that dosage sensitivity is associated with clinical phenotype
1Little evidence suggesting dosage sensitivity is associated with clinical phenotype
2Emerging evidence suggesting dosage sensitivity is associated with clinical phenotype
3Sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype
30Gene associated with autosomal recessive phenotype
40Dosage sensitivity unlikely

Reference: https://www.ncbi.nlm.nih.gov/projects/dbvar/clingen/help.shtml

Download URL

ftp://ftp.clinicalgenome.org/

JSON Output

"clingenDosageSensitivityMap": [{
"chromosome": "15",
"begin": 30900686,
"end": 32153204,
"haploinsufficiency": "sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype",
"triplosensitivity": "little evidence suggesting dosage sensitivity is associated with clinical phenotype",
"reciprocalOverlap": 0.00147,
"annotationOverlap": 0.33994
},
{
"chromosome": "15",
"begin": 31727418,
"end": 32153204,
"haploinsufficiency": "sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype",
"triplosensitivity": "dosage sensitivity unlikely",
"reciprocalOverlap": 0.00147,
"annotationOverlap": 1
}]
FieldTypeNotes
clingenDosageSensitivityMapobject array
chromosomestringEnsembl-style chromosome names
begininteger1-based position
endinteger1-based position
haploinsufficiencystringsee possible values below
triplosensitivitystring(same as haploinsufficiency) 
reciprocalOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).
annotationOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).

haploinsufficiency and triplosensitivity

  • no evidence to suggest that dosage sensitivity is associated with clinical phenotype
  • little evidence suggesting dosage sensitivity is associated with clinical phenotype
  • emerging evidence suggesting dosage sensitivity is associated with clinical phenotype
  • sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype
  • gene associated with autosomal recessive phenotype
  • dosage sensitivity unlikely

Building the supplementary files

The gene dosage sensitivity .nga for Illumina Connected Annotations can be built using the SAUtils command's DosageSensitivity subcommand. The required data file is ClinGen_gene_curation_list_{ASSEMBLY}.tsv (url provided above) and its associated .version file.

NAME=ClinGen Dosage Sensitivity Map
VERSION=20211201
DATE=2021-12-01
DESCRIPTION=Dosage sensitivity map from ClinGen (dbVar)

Here is a sample run:

dotnet SAUtils.dll DosageSensitivity
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll dosagesensitivity [options]
Creates a gene annotation database from dbVar data

OPTIONS:
--tsv, -t <VALUE> input tsv file
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version

dotnet SAUtils.dll DosageSensitivity --out SupplementaryDatabase/64/GRCh37 --tsv ClinGen_gene_curation_list_GRCh37.tsv
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------


Time: 00:00:00.1

For building the .nsi files, we use the SAUtils command's DosageMapRegions subcommand. The required data file is ClinGen_region_curation_list_{ASSEMBLY}.tsv (url provided above) and its associated .version file.

NAME=ClinGen Dosage Sensitivity Map
VERSION=20211201
DATE=2021-12-01
DESCRIPTION=Dosage sensitivity map from ClinGen (dbVar)

Here is a sample run:

dotnet SAUtils.dll DosageMapRegions
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll dosagemapregions [options]
Creates an interval annotation database from dbVar data

OPTIONS:
--tsv, -t <VALUE> input tsv file
--ref, -r <filename> input reference filename
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version

dotnet SAUtils.dll DosageMapRegions --out SupplementaryDatabase/64/GRCh37 --ref References/7/Homo_sapiens.GRCh37.Nirvana.dat --tsv ClinGen_region_curation_list_GRCh37.tsv
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

Writing 505 intervals to database...

Time: 00:00:00.1

Gene-Disease Validity

The ClinGen Gene-Disease Clinical Validity curation process involves evaluating the strength of evidence supporting or refuting a claim that variation in a particular gene causes a particular disease. Illumina Connected Annotations reports these annotations for genes in the genes section of the JSON.

Publication

Strande NT, Riggs ER, Buchanan AH, et al. Evaluating the Clinical Validity of Gene-Disease Associations: An Evidence-Based Framework Developed by the Clinical Genome Resource. Am J Hum Genet. 2017;100(6):895-906. doi:10.1016/j.ajhg.2017.04.015

Source TSV

The source data comes in a CSV file that we convert to a TSV.

CLINGEN GENE VALIDITY CURATIONS
FILE CREATED: 2019-05-28
WEBPAGE: https://search.clinicalgenome.org/kb/gene-validity
+++++++++++,++++++++++++++,+++++++++++++,++++++++++++++++++,+++++++++,++++++++++++++,+++++++++++++,+++++++++++++++++++
GENE SYMBOL,GENE ID (HGNC),DISEASE LABEL,DISEASE ID (MONDO),SOP,CLASSIFICATION,ONLINE REPORT,CLASSIFICATION DATE
+++++++++++,++++++++++++++,+++++++++++++,++++++++++++++++++,+++++++++,++++++++++++++,+++++++++++++,+++++++++++++++++++
A2ML1,HGNC:23336,Noonan syndrome with multiple lentigines,MONDO_0007893,SOP5,No Reported Evidence,https://search.clinicalgenome.org/kb/gene-validity/59b87033-dd91-4f1e-aec1-c9b1f5124b16--2018-06-07T14:37:47,2018-06-07T14:37:47.175Z
A2ML1,HGNC:23336,cardiofaciocutaneous syndrome,MONDO_0015280,SOP5,No Reported Evidence,https://search.clinicalgenome.org/kb/gene-validity/fc3c41d8-8497-489b-a350-c9e30016bc6a--2018-06-07T14:31:03,2018-06-07T14:31:03.696Z
A2ML1,HGNC:23336,Costello syndrome,MONDO_0009026,SOP5,No Reported Evidence,https://search.clinicalgenome.org/kb/gene-validity/ea72ba8d-cf62-44bc-86be-da64e3848eba--2018-06-07T14:34:05,2018-06-07T14:34:05.324Z

Download URL

https://search.clinicalgenome.org/kb/downloads#section_gene-disease-validity

Conflict Resolution

Multiple Classifications

Here is an example of multiple classifications.

$ grep MONDO_0010192 ClinGen-Gene-Disease-Summary-2019-12-02.csv  | grep EDNRB
EDNRB,HGNC:3180,Waardenburg syndrome type 4A,MONDO_0010192,SOP6,Moderate,https://search.clinicalgenome.org/kb/gene-validity/d7abbd45-7915-437b-849b-dea876bfc2f5--2018-05-08T04:00:00,2018-05-08T04:00:00.000Z
EDNRB,HGNC:3180,Waardenburg syndrome type 4A,MONDO_0010192,SOP6,Limited,https://search.clinicalgenome.org/kb/gene-validity/73ee9727-60c1-40fd-830f-08c2b513d2ee--2018-05-08T04:00:00,2018-05-08T04:00:00.000Z

In such cases, we select the more severe classification.

Multiple Dates

$ grep MONDO_0016419 ClinGen-Gene-Disease-Summary-2019-12-02.csv  | grep MUTYH
MUTYH,HGNC:7527,hereditary breast carcinoma,MONDO_0016419,SOP4,No Reported Evidence,https://search.clinicalgenome.org/kb/gene-validity/9904,2017-05-24T00:00:00
MUTYH,HGNC:7527,hereditary breast carcinoma,MONDO_0016419,SOP4,No Reported Evidence,https://search.clinicalgenome.org/kb/gene-validity/9902,2017-05-25T00:00:00

If the classifications are the same, we should select the latest classification date.

JSON Output

"clingenGeneValidity":[
{
"diseaseId":"MONDO_0007893",
"disease":"Noonan syndrome with multiple lentigines",
"classification":"no reported evidence",
"classificationDate":"2018-06-07"
},
{
"diseaseId":"MONDO_0015280",
"disease":"cardiofaciocutaneous syndrome",
"classification":"no reported evidence",
"classificationDate":"2018-06-07"
}
]
FieldTypeNotes
clingenGeneValidityobject
diseaseIdstringMonarch Disease Ontology ID (MONDO)
diseasestringdisease label
classificationstringsee below for possible values
classificationDatestringyyyy-MM-dd

classification

  • no reported evidence
  • disputed
  • limited
  • moderate
  • definitive
  • strong
  • refuted
  • no known disease relationship

Building the supplementary files

The gene disease validity .nga for Illumina Connected Annotations can be built using the SAUtils command's DiseaseValidity subcommand. The only required data file is Clingen-Gene-Disease-Summary-2021-12-01.tsv (url provided above) and its associated .version file.

NAME=ClinGen disease validity curations
VERSION=20211201
DATE=2021-12-01
DESCRIPTION=Disease validity curations from ClinGen (dbVar)

Here is a sample run:

 dotnet SAUtils.dll DiseaseValidity
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll diseasevalidity [options]
Creates a gene annotation database from ClinGen gene validity data

OPTIONS:
--csv, -i <VALUE> ClinGen gene validity file path
--cache, -c <directory>
input cache directory
--ref, -r <filename> input reference filename
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version

dotnet SAUtils.dll DiseaseValidity --tsv Clingen-Gene-Disease-Summary-2021-12-01.tsv \\
--uga Cache --out SupplementaryDatabase
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

Number of geneIds missing from the cache:0 (0%)

Time: 00:00:00.2
- - + + \ No newline at end of file diff --git a/3.22/data-sources/clinvar-json/index.html b/3.22/data-sources/clinvar-json/index.html index ed09fd87..494cab89 100644 --- a/3.22/data-sources/clinvar-json/index.html +++ b/3.22/data-sources/clinvar-json/index.html @@ -6,13 +6,13 @@ clinvar-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

clinvar-json

small variants:

"clinvar":[
{
"id":"VCV000036581.3",
"reviewStatus":"reviewed by expert panel",
"significance":[
"benign"
],
"refAllele":"G",
"altAllele":"A",
"lastUpdatedDate":"2020-03-01",
"isAlleleSpecific":true
},
{
"id":"RCV000030258.4",
"variationId":"VCV000036581.3",
"reviewStatus":"reviewed by expert panel",
"alleleOrigins":[
"germline"
],
"refAllele":"G",
"altAllele":"A",
"phenotypes":[
"Lynch syndrome"
],
"medGenIds":[
"C1333990"
],
"omimIds":[
"120435"
],
"significance":[
"benign"
],
"lastUpdatedDate":"2017-05-01",
"isAlleleSpecific":true
}
]

large variants:

"clinvar":[
{
"chromosome":"1",
"begin":629025,
"end":8537745,
"variantType":"copy_number_loss",
"id":"RCV000051993.4",
"variationId":"VCV000058242.1",
"reviewStatus":"criteria provided, single submitter",
"alleleOrigins":[
"not provided"
],
"phenotypes":[
"See cases"
],
"significance":[
"pathogenic"
],
"lastUpdatedDate":"2022-04-21",
"pubMedIds":[
"21844811"
]
},
{
"id":"VCV000058242.1",
"reviewStatus":"criteria provided, single submitter",
"significance":[
"pathogenic"
],
"lastUpdatedDate":"2022-04-21"
},
......
]
FieldTypeNotes
idstringClinVar ID
variationIdstringClinVar VCV ID
variantTypestringvariant type
reviewStatusstringsee possible values below
alleleOriginsstring arraysee possible values below
refAllelestring
altAllelestring
phenotypesstring array
medGenIdsstring arrayMedGen IDs
omimIdsstring arrayOMIM IDs
orphanetIdsstring arrayOrphanet IDs
significancestring arraysee possible values below
lastUpdatedDatestringyyyy-MM-dd
pubMedIdsstring arrayPubMed IDs
isAlleleSpecificbooltrue when the current variant alternate allele matches the ClinVar alternate allele

reviewStatus:

  • no assertion provided
  • no assertion criteria provided
  • criteria provided, single submitter
  • practice guideline
  • classified by multiple submitters
  • criteria provided, conflicting interpretations
  • criteria provided, multiple submitters, no conflicts
  • no interpretation for the single variant

alleleOrigins:

  • unknown
  • other
  • germline
  • somatic
  • inherited
  • paternal
  • maternal
  • de-novo
  • biparental
  • uniparental
  • not-tested
  • tested-inconclusive

significance:

  • uncertain significance
  • not provided
  • benign
  • likely benign
  • likely pathogenic
  • pathogenic
  • drug response
  • histocompatibility
  • association
  • risk factor
  • protective
  • affects
  • conflicting data from submitters
  • other
  • no interpretation for the single variant
  • conflicting interpretations of pathogenicity
- - + + \ No newline at end of file diff --git a/3.22/data-sources/clinvar/index.html b/3.22/data-sources/clinvar/index.html index 3c2284ef..e6d00210 100644 --- a/3.22/data-sources/clinvar/index.html +++ b/3.22/data-sources/clinvar/index.html @@ -6,14 +6,14 @@ ClinVar | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

ClinVar

Overview

ClinVar is a freely accessible, public archive of reports of the relationships among human variations and phenotypes, with supporting evidence. ClinVar thus facilitates access to and communication about the relationships asserted between human variation and observed health status, and the history of that interpretation.

Publication

Melissa J Landrum, Jennifer M Lee, Mark Benson, Garth R Brown, Chen Chao, Shanmuga Chitipiralla, Baoshan Gu, Jennifer Hart, Douglas Hoffman, Wonhee Jang, Karen Karapetyan, Kenneth Katz, Chunlei Liu, Zenith Maddipatla, Adriana Malheiro, Kurt McDaniel, Michael Ovetsky, George Riley, George Zhou, J Bradley Holmes, Brandi L Kattman, Donna R Maglott, ClinVar: improving access to variant interpretations and supporting evidence, Nucleic Acids Research, 46, Issue D1, 4 January 2018, Pages D1062–D1067, https://doi.org/10.1093/nar/gkx1153

RCV File

Example

Here's a full RCV entry.

Parsing

In the following section, we discuss which field of the XML was used to extract information that is presented in the JSON output.

ID

<ClinVarSet>
<ReferenceClinVarAssertion>
<ClinVarAccession Acc="RCV000000001" Version="2">
</ClinVarSet>

The Acc and Version fields are merged to form the ID (RCV000000001.2)

LastUpdatedDate

<ClinVarSet>
<ReferenceClinVarAssertion DateCreated="2012-08-13" DateLastUpdated="2016-02-17" ID="57604" >
</ClinVarSet>

Significance

<ClinVarSet>
<ReferenceClinVarAssertion>
<ClinicalSignificance DateLastEvaluated="1996-04-01">
<ReviewStatus>no assertion criteria provided</ReviewStatus>
<Description>Pathogenic</Description>
</ClinicalSignificance>
</ClinVarSet>

ReviewStatus

<ClinVarSet>
<ReferenceClinVarAssertion>
<ClinicalSignificance DateLastEvaluated="1996-04-01">
<ReviewStatus>no assertion criteria provided</ReviewStatus>
<Description>Pathogenic</Description>
</ClinicalSignificance>
</ClinVarSet>

Phenotypes

<ReferenceClinVarAssertion>
<TraitSet Type="Disease" ID="62">
<Trait Type="Disease">
<Name>
<ElementValue Type="Preferred">Joubert syndrome 9</ElementValue>
</Name>
</Trait>
</TraitSet>
</ReferenceClinVarAssertion>

We only use the field with Type="Preferred". Multiple phenotypes may be reported

Location, Variant Type and Variant Id

<ReferenceClinVarAssertion>
<GenotypeSet Type="CompoundHeterozygote" ID="424709">
<MeasureSet Type="Variant" ID="81">
<Measure Type="single nucleotide variant" ID="15120">
<SequenceLocation Assembly="GRCh38" AssemblyAccessionVersion="GCF_000001405.38"
AssemblyStatus="current" Chr="10" Accession="NC_000010.11" start="89222510"
stop="89222510" display_start="89222510" display_stop="89222510" variantLength="1"
positionVCF="89222510" referenceAlleleVCF="C" alternateAlleleVCF="T"/>
<SequenceLocation Assembly="GRCh37" AssemblyAccessionVersion="GCF_000001405.25"
AssemblyStatus="previous" Chr="10" Accession="NC_000010.10" start="90982267"
stop="90982267" display_start="90982267" display_stop="90982267" variantLength="1"
positionVCF="90982267" referenceAlleleVCF="C" alternateAlleleVCF="T"/>
</Measure>
</MeasureSet>
</GenotypeSet>
</ReferenceClinVarAssertion>
  • The variant position is extracted from the fields for their respective assemblies.
  • Updated records contain positionVCF, referenceAlleleVCF and alternateAlleleVCF fields and when present, we use them to create the variant.
  • For older records, since "start' and "stop" fields are not always available, we use the "display_start" and "display_end" fields.
  • If a required allele is not available, we extract it from the reference sequence.
  • Only variants having a dbSNP id are extracted.
  • Note that a ClinVar accession may have multiple variants associated with it (possible in different locations)
  • VariantId is extracted from the MeasureSet attributes.
  • VariantType is extracted from the Measure attributes.
    unsupported variant types

    We currently don't support the following variant types:

    • Microsatellite
    • protein only
    • fusion
    • Complex
    • Variation
    • Translocation

MedGen, OMIM, Orphanet IDs

<ReferenceClinVarAssertion>
<TraitSet Type="Disease" ID="175">
<Trait ID="3036" Type="Disease">
<XRef ID="C0086651" DB="MedGen"/>
<XRef ID="309297" DB="Orphanet"/>
<XRef ID="582" DB="Orphanet"/>
<XRef Type="MIM" ID="253000" DB="OMIM"/>
</Trait>
</TraitSet>
</ReferenceClinVarAssertion>

AlleleOrigins

<ClinVarAssertion>
<Origin>germline</Origin>
</ClinVarAssertion>

We only extract all Allele Origins from Submissions (SCV) entries.

PubMedIds

<ClinVarAssertion>
<ClinicalSignificance DateLastEvaluated="1996-04-01">
<Citation Type="general">
<ID Source="PubMed">12114475</ID>
</Citation>
</ClinicalSignificance>
<AttributeSet>
<Attribute Type="AssertionMethod">LMM Criteria</Attribute>
<Citation>
<ID Source="PubMed">24033266</ID>
</Citation>
</AttributeSet>
<ObservedIn>
<ObservedData ID="9727445">
<Citation Type="general">
<ID Source="PubMed">9113933</ID>
</Citation>
</ObservedData>
</ObservedIn>
<Citation Type="general">
<ID Source="PubMed">23757202</ID>
</Citation>
</ClinVarAssertion>

We only extract all Pubmed Ids from Submissions (SCV) entries.

Parsing Significance

Extracting significance(s) may involve parsing multiple fields. Take the following snippets into consideration.

<ClinicalSignificance DateLastEvaluated="1996-04-01">
<ReviewStatus>no assertion criteria provided</ReviewStatus>
<Description>Pathogenic</Description>
</ClinicalSignificance>

<ClinicalSignificance DateLastEvaluated="2016-10-13">
<ReviewStatus>criteria provided, multiple submitters, no conflicts</ReviewStatus>
<Description>Pathogenic/Likely pathogenic</Description>
</ClinicalSignificance>

<ClinicalSignificance DateLastEvaluated="2012-06-07">
<ReviewStatus>no assertion criteria provided</ReviewStatus>
<Description>Conflicting interpretations of pathogenicity</Description>
<Explanation DataSource="ClinVar" Type="public">Pathogenic(1);Uncertain significance(1)</Explanation>
</ClinicalSignificance>

Given the evidence, we converted the significance field into an array of strings which may be parsed out of the Descriptions or Explanation fields.

Varying Delimiters

The delimiters in each field may vary. Currently, the delimiters for Description are , and /. The delimiters for Explanation are ; and /.

VCV File

Example

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ClinVarVariationRelease xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ftp.ncbi.nlm.nih.gov/pub/clinvar/xsd_public/clinvar_variation/variation_archive_1.4.xsd" ReleaseDate="2019-12-31">
<VariationArchive VariationID="431749" VariationName="GRCh37/hg19 1p36.31(chr1:6051187-6158763)" VariationType="copy number gain" DateCreated="2017-08-12" DateLastUpdated="2019-09-10" Accession="VCV000431749" Version="1" RecordType="included" NumberOfSubmissions="0" NumberOfSubmitters="0">
<RecordStatus>current</RecordStatus>
<Species>Homo sapiens</Species>
<IncludedRecord>
<SimpleAllele AlleleID="425239" VariationID="431749">
<GeneList>
<Gene Symbol="KCNAB2" FullName="potassium voltage-gated channel subfamily A regulatory beta subunit 2" GeneID="8514" HGNC_ID="HGNC:6229" Source="calculated" RelationshipType="genes overlapped by variant">
<Location>
<CytogeneticLocation>1p36.31</CytogeneticLocation>
<SequenceLocation Assembly="GRCh38" AssemblyAccessionVersion="GCF_000001405.38" AssemblyStatus="current" Chr="1" Accession="NC_000001.11" start="5992639" stop="6101186" display_start="5992639" display_stop="6101186" Strand="+"/>
<SequenceLocation Assembly="GRCh37" AssemblyAccessionVersion="GCF_000001405.25" AssemblyStatus="previous" Chr="1" Accession="NC_000001.10" start="6052357" stop="6161252" display_start="6052357" display_stop="6161252" Strand="+"/>
</Location>
<OMIM>601142</OMIM>
</Gene>
<Gene Symbol="NPHP4" FullName="nephrocystin 4" GeneID="261734" HGNC_ID="HGNC:19104" Source="calculated" RelationshipType="genes overlapped by variant">
<Location>
<CytogeneticLocation>1p36.31</CytogeneticLocation>
<SequenceLocation Assembly="GRCh38" AssemblyAccessionVersion="GCF_000001405.38" AssemblyStatus="current" Chr="1" Accession="NC_000001.11" start="5862810" stop="5992425" display_start="5862810" display_stop="5992425" Strand="-"/>
<SequenceLocation Assembly="GRCh37" AssemblyAccessionVersion="GCF_000001405.25" AssemblyStatus="previous" Chr="1" Accession="NC_000001.10" start="5922869" stop="6052532" display_start="5922869" display_stop="6052532" Strand="-"/>
</Location>
<OMIM>607215</OMIM>
</Gene>
</GeneList>
<Name>GRCh37/hg19 1p36.31(chr1:6051187-6158763)</Name>
<VariantType>copy number gain</VariantType>
<Location>
<CytogeneticLocation>1p36.31</CytogeneticLocation>
<SequenceLocation Assembly="GRCh37" AssemblyAccessionVersion="GCF_000001405.25" forDisplay="true" AssemblyStatus="previous" Chr="1" Accession="NC_000001.10" start="6051187" stop="6158763" display_start="6051187" display_stop="6158763"/> </Location>
<Interpretations>
<Interpretation NumberOfSubmissions="0" NumberOfSubmitters="0" Type="Clinical significance">
<Description>no interpretation for the single variant</Description>
</Interpretation>
</Interpretations>
<XRefList>
<XRef Type="Interpreted" ID="431733" DB="ClinVar"/>
</XRefList>
</SimpleAllele>
<ReviewStatus>no interpretation for the single variant</ReviewStatus>
<Interpretations>
<Interpretation NumberOfSubmissions="0" NumberOfSubmitters="0" Type="Clinical significance">
<Description>no interpretation for the single variant</Description>
</Interpretation>
</Interpretations>
<SubmittedInterpretationList>
<SCV Title="SUB1895145" Accession="SCV000296057" Version="1"/>
</SubmittedInterpretationList>
<InterpretedVariationList>
<InterpretedVariation VariationID="431733" Accession="VCV000431733" Version="1"/>
</InterpretedVariationList>
</IncludedRecord>
</VariationArchive>
</ClinVarVariationRelease>

Parsing

In the following section, we discuss which field of the XML was used to extract information that is presented in the JSON output.

id

<VariationArchive VariationID="431749" VariationName="GRCh37/hg19 1p36.31(chr1:6051187-6158763)" VariationType="copy number gain" DateCreated="2017-08-12" DateLastUpdated="2019-09-10" Accession="VCV000431749" Version="1" RecordType="included" NumberOfSubmissions="0" NumberOfSubmitters="0">

The Acc and Version fields are merged to form the ID (RCV000000001.2)

significance

<ClinVarVariationRelease>
<VariationArchive>
<IncludedRecord>
<SimpleAllele>
<Interpretations>
<Interpretation NumberOfSubmissions="0" NumberOfSubmitters="0" Type="Clinical significance">
<Description>no interpretation for the single variant</Description>
</Interpretation>
</Interpretations>
</SimpleAllele>
</IncludedRecord>
</VariationArchive>
</ClinVarVariationRelease>

May have multiple significances listed.

reviewStatus

<ClinVarVariationRelease>
<VariationArchive>
<IncludedRecord>
<ReviewStatus>no interpretation for the single variant</ReviewStatus>
</IncludedRecord>
</VariationArchive>
</ClinVarVariationRelease>

Known Issues

Known Issues
  • The XML file contains ~1k more entries (out of 162K) than the VCF file
  • The XML file does not have a field indicating that a record is associated with the reference base - something that was present in VCF
  • The XML file contains entries (e.g. RCV000016645 version=1) which have IUPAC ambiguous bases ("R", "Y", "H", etc.) as their alternate allele

Download URLs

ftp://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/ClinVarFullRelease_00-latest.xml.gz

https://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/clinvar_variation/ClinVarVariationRelease_00-latest.xml.gz

JSON Output

small variants:

"clinvar":[
{
"id":"VCV000036581.3",
"reviewStatus":"reviewed by expert panel",
"significance":[
"benign"
],
"refAllele":"G",
"altAllele":"A",
"lastUpdatedDate":"2020-03-01",
"isAlleleSpecific":true
},
{
"id":"RCV000030258.4",
"variationId":"VCV000036581.3",
"reviewStatus":"reviewed by expert panel",
"alleleOrigins":[
"germline"
],
"refAllele":"G",
"altAllele":"A",
"phenotypes":[
"Lynch syndrome"
],
"medGenIds":[
"C1333990"
],
"omimIds":[
"120435"
],
"significance":[
"benign"
],
"lastUpdatedDate":"2017-05-01",
"isAlleleSpecific":true
}
]

large variants:

"clinvar":[
{
"chromosome":"1",
"begin":629025,
"end":8537745,
"variantType":"copy_number_loss",
"id":"RCV000051993.4",
"variationId":"VCV000058242.1",
"reviewStatus":"criteria provided, single submitter",
"alleleOrigins":[
"not provided"
],
"phenotypes":[
"See cases"
],
"significance":[
"pathogenic"
],
"lastUpdatedDate":"2022-04-21",
"pubMedIds":[
"21844811"
]
},
{
"id":"VCV000058242.1",
"reviewStatus":"criteria provided, single submitter",
"significance":[
"pathogenic"
],
"lastUpdatedDate":"2022-04-21"
},
......
]
FieldTypeNotes
idstringClinVar ID
variationIdstringClinVar VCV ID
variantTypestringvariant type
reviewStatusstringsee possible values below
alleleOriginsstring arraysee possible values below
refAllelestring
altAllelestring
phenotypesstring array
medGenIdsstring arrayMedGen IDs
omimIdsstring arrayOMIM IDs
orphanetIdsstring arrayOrphanet IDs
significancestring arraysee possible values below
lastUpdatedDatestringyyyy-MM-dd
pubMedIdsstring arrayPubMed IDs
isAlleleSpecificbooltrue when the current variant alternate allele matches the ClinVar alternate allele

reviewStatus:

  • no assertion provided
  • no assertion criteria provided
  • criteria provided, single submitter
  • practice guideline
  • classified by multiple submitters
  • criteria provided, conflicting interpretations
  • criteria provided, multiple submitters, no conflicts
  • no interpretation for the single variant

alleleOrigins:

  • unknown
  • other
  • germline
  • somatic
  • inherited
  • paternal
  • maternal
  • de-novo
  • biparental
  • uniparental
  • not-tested
  • tested-inconclusive

significance:

  • uncertain significance
  • not provided
  • benign
  • likely benign
  • likely pathogenic
  • pathogenic
  • drug response
  • histocompatibility
  • association
  • risk factor
  • protective
  • affects
  • conflicting data from submitters
  • other
  • no interpretation for the single variant
  • conflicting interpretations of pathogenicity

Building the supplementary files

The ClinVar .nsa and .nsi for Illumina Connected Annotations can be built using the SAUtils command's clinvar subcommand.

Source data files

Two input .xml files and a .version file are required in order to build the .nsa and .nsi file. You should have the following files:

ClinVarFullRelease_00-latest.xml.gz     ClinVarVariationRelease_00-latest.xml.gz
ClinVarFullRelease_00-latest.xml.gz.version

The version file is a text file with the follwoing format.

NAME=ClinVar
VERSION=20220505
DATE=2022-05-05
DESCRIPTION=A freely accessible, public archive of reports of the relationships among human variations and phenotypes, with supporting evidence

The help menu for the utility is as follows:

dotnet SAUtils.dll clinvar
---------------------------------------------------------------------------
SAUtils (c) 2022 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.18.1
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll clinvar [options]
Creates a supplementary database with ClinVar annotations

OPTIONS:
--ref, -r <VALUE> compressed reference sequence file
--rcv, -i <VALUE> ClinVar Full release XML file
--vcv, -c <VALUE> ClinVar Variation release XML file
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version

dotnet SAUtils.dll clinvar

Here is a sample execution:

dotnet SAUtils.dll clinvar \\
--ref ~/development/References/7/Homo_sapiens.GRCh38.Nirvana.dat --rcv ClinVarFullRelease_00-latest.xml.gz \\
--vcv ClinVarVariationRelease_00-latest.xml.gz --out ~/development/SupplementaryDatabase/63/GRCh38
---------------------------------------------------------------------------
SAUtils (c) 2022 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.18.1
---------------------------------------------------------------------------

Found 1535677 VCV records
Unknown vcv id:225946 found in RCV000211201.2
Unknown vcv id:225946 found in RCV000211253.2
Unknown vcv id:225946 found in RCV000211375.2
Unknown vcv id:976117 found in RCV001253316.1
Unknown vcv id:1321016 found in RCV001776995.2
3 unknown VCVs found in RCVs.
225946,976117,1321016
0 unknown VCVs found in RCVs.
Chromosome 1 completed in 00:00:15.1
Chromosome 2 completed in 00:00:20.0
Chromosome 3 completed in 00:00:09.7
Chromosome 4 completed in 00:00:05.9
Chromosome 5 completed in 00:00:09.8
Chromosome 6 completed in 00:00:08.3
Chromosome 7 completed in 00:00:08.7
Chromosome 8 completed in 00:00:06.2
Chromosome 9 completed in 00:00:08.6
Chromosome 10 completed in 00:00:07.0
Chromosome 11 completed in 00:00:11.7
Chromosome 12 completed in 00:00:08.0
Chromosome 13 completed in 00:00:06.3
Chromosome 14 completed in 00:00:06.0
Chromosome 15 completed in 00:00:06.6
Chromosome 16 completed in 00:00:10.8
Chromosome 17 completed in 00:00:13.8
Chromosome 18 completed in 00:00:02.9
Chromosome 19 completed in 00:00:08.7
Chromosome 20 completed in 00:00:03.6
Chromosome 21 completed in 00:00:02.4
Chromosome 22 completed in 00:00:03.6
Chromosome MT completed in 00:00:00.2
Chromosome X completed in 00:00:07.5
Chromosome Y completed in 00:00:00.0
Maximum bp shifted for any variant:2
Writing 37097 intervals to database...

Time: 00:13:26.9

- - + + \ No newline at end of file diff --git a/3.22/data-sources/cosmic-cancer-gene-census/index.html b/3.22/data-sources/cosmic-cancer-gene-census/index.html index 3d10000a..bb1f730b 100644 --- a/3.22/data-sources/cosmic-cancer-gene-census/index.html +++ b/3.22/data-sources/cosmic-cancer-gene-census/index.html @@ -6,13 +6,13 @@ cosmic-cancer-gene-census | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

cosmic-cancer-gene-census

   {
"name": "PRDM16",
"hgncId": 14000,
"ncbiGeneId": "63976",
"ensemblGeneId": "ENSG00000142611",
"cosmic": {
"roleInCancer": [
"oncogene",
"fusion"
]
}
}
FieldTypeNotes
roleInCancerstring arrayPossible roles in caner
- - + + \ No newline at end of file diff --git a/3.22/data-sources/cosmic-gene-fusion-json/index.html b/3.22/data-sources/cosmic-gene-fusion-json/index.html index 74743840..a2da4f52 100644 --- a/3.22/data-sources/cosmic-gene-fusion-json/index.html +++ b/3.22/data-sources/cosmic-gene-fusion-json/index.html @@ -6,13 +6,13 @@ cosmic-gene-fusion-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

cosmic-gene-fusion-json

   "cosmicGeneFusions":[
{
"id":"COSF881",
"numSamples":6,
"geneSymbols":[
"MYB",
"NFIB"
],
"hgvsr":"ENST00000341911.5(MYB):r.1_2368::ENST00000397581.2(NFIB):r.2592_3318",
"histologies":[
{
"name":"adenoid cystic carcinoma",
"numSamples":6
}
],
"sites":[
{
"name":"salivary gland (submandibular)",
"numSamples":1
},
{
"name":"salivary gland (parotid)",
"numSamples":1
},
{
"name":"salivary gland (nasal cavity)",
"numSamples":1
},
{
"name":"breast",
"numSamples":3
}
],
"pubMedIds":[
19841262
]
}
]
FieldTypeNotes
idstringCOSMIC fusion ID
numSamplesint
geneSymbolsstring array5' gene & 3' gene
hgvsrstringHGVS RNA translocation fusion notation
histologiescount arrayphenotypic descriptions
sitescount arraytissue types
pubMedIdsint arrayPubMed IDs

Count

FieldTypeNotes
namestringdescription
numSamplesint
- - + + \ No newline at end of file diff --git a/3.22/data-sources/cosmic-json/index.html b/3.22/data-sources/cosmic-json/index.html index df00282e..9628bb8f 100644 --- a/3.22/data-sources/cosmic-json/index.html +++ b/3.22/data-sources/cosmic-json/index.html @@ -6,13 +6,13 @@ cosmic-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

cosmic-json

{
"id":"COSV58272668",
"numSamples":8,
"refAllele":"-",
"altAllele":"CCT",
"histologies":[
{
"name":"carcinoma (serous carcinoma)",
"numSamples":2
},
{
"name":"meningioma (fibroblastic)",
"numSamples":1
},
{
"name":"carcinoma",
"numSamples":1
},
{
"name":"carcinoma (squamous cell carcinoma)",
"numSamples":1
},
{
"name":"meningioma (transitional)",
"numSamples":1
},
{
"name":"carcinoma (adenocarcinoma)",
"numSamples":1
},
{
"name":"other (neoplasm)",
"numSamples":1
}
],
"sites":[
{
"name":"ovary",
"numSamples":2
},
{
"name":"meninges",
"numSamples":2
},
{
"name":"thyroid",
"numSamples":2
},
{
"name":"cervix",
"numSamples":1
},
{
"name":"large intestine (colon)",
"numSamples":1
}
],
"pubMedIds":[
25738363,
27548314
],
"confirmedSomatic":true,
"drugResistance":true, /* not in this particular COSMIC variant */
"isAlleleSpecific":true
}
FieldTypeNotes
idstringCOSMIC Genomic Mutation ID
numSamplesint
refAllelestring
altAllelestring
histologiescount arrayphenotypic descriptions
sitescount arraytissue types
pubMedIdsint arrayPubMed IDs
confirmedSomaticbooltrue when the variant is a confirmed somatic variant
drugResistancebooltrue when the variant has been associated with drug resistance

Count

FieldTypeNotes
namestringdescription
numSamplesint
- - + + \ No newline at end of file diff --git a/3.22/data-sources/cosmic/index.html b/3.22/data-sources/cosmic/index.html index df398c83..acba28d3 100644 --- a/3.22/data-sources/cosmic/index.html +++ b/3.22/data-sources/cosmic/index.html @@ -6,8 +6,8 @@ COSMIC | IlluminaConnectedAnnotations - - + +
@@ -22,7 +22,7 @@ pair when it is released in the database. Currently COSMIC includes information on fusions involved in solid tumours and leukaemias.

TSV extraction

Example

SAMPLE_ID SAMPLE_NAME PRIMARY_SITE  SITE_SUBTYPE_1  SITE_SUBTYPE_2  SITE_SUBTYPE_3  PRIMARY_HISTOLOGY HISTOLOGY_SUBTYPE_1 HISTOLOGY_SUBTYPE_2 HISTOLOGY_SUBTYPE_3 FUSION_ID TRANSLOCATION_NAME  5'_CHROMOSOME 5'_STRAND 5'_GENE_ID  5'_GENE_NAME  5'_LAST_OBSERVED_EXON 5'_GENOME_START_FROM  5'_GENOME_START_TO  5'_GENOME_STOP_FROM 5'_GENOME_STOP_TO 3'_CHROMOSOME 3'_STRAND 3'_GENE_ID  3'_GENE_NAME  3'_FIRST_OBSERVED_EXON  3'_GENOME_START_FROM  3'_GENOME_START_TO  3'_GENOME_STOP_FROM 3'_GENOME_STOP_TO FUSION_TYPE PUBMED_PMID
749711 HCC1187 breast NS NS NS carcinoma ductal_carcinoma NS NS 665 ENST00000360863.10(RGS22):r.1_3555::ENST00000369518.1(SYCP1):r.2100_3452 8 - 197199 RGS22 22 99981937 99981937 100106116 100106116 1 + 212470 SYCP1_ENST00000369518 24 114944339 114944339 114995367 114995367 Inferred Breakpoint 20033038

Parsing

From the TSV file, we're mainly interested in the following columns:

info

For all the histologies and sites, we replace all the underlines with spaces. salivary_gland would become salivary gland.

Parsing

To create the gene fusion entries in Illumina Connected Annotations, we perform the following on each row in the TSV file:

Aggregating Histologies & Sites

Aggregating Histologies & Sites was previously described in the small variants section.

Known Issues

Known Issues

There are some issues with the HGVS RNA notation:

  • For coding transcripts, HGVS numbering should use CDS coordinates. Right now COSMIC is using cDNA coordinates for all their fusions.

Download URL

GRCh37

GRCh38

JSON Output

   "cosmicGeneFusions":[
{
"id":"COSF881",
"numSamples":6,
"geneSymbols":[
"MYB",
"NFIB"
],
"hgvsr":"ENST00000341911.5(MYB):r.1_2368::ENST00000397581.2(NFIB):r.2592_3318",
"histologies":[
{
"name":"adenoid cystic carcinoma",
"numSamples":6
}
],
"sites":[
{
"name":"salivary gland (submandibular)",
"numSamples":1
},
{
"name":"salivary gland (parotid)",
"numSamples":1
},
{
"name":"salivary gland (nasal cavity)",
"numSamples":1
},
{
"name":"breast",
"numSamples":3
}
],
"pubMedIds":[
19841262
]
}
]
FieldTypeNotes
idstringCOSMIC fusion ID
numSamplesint
geneSymbolsstring array5' gene & 3' gene
hgvsrstringHGVS RNA translocation fusion notation
histologiescount arrayphenotypic descriptions
sitescount arraytissue types
pubMedIdsint arrayPubMed IDs

Count

FieldTypeNotes
namestringdescription
numSamplesint

Cancer Gene Census

TSV Extraction

Example

GENE_NAME       CELL_TYPE       PUBMED_PMID     HALLMARK        IMPACT  DESCRIPTION     CELL_LINE
PRDM16 18496560 role in cancer oncogene oncogene
PRDM16 16015645 role in cancer fusion fusion

Parsing

To extract information about TSGs and oncogenes, the data based on the "role in cancer" attribute is filtered. For tumor suppressor genes, rows with the value "TSG" and for oncogenes, rows with the value "oncogene" are filtered. Some genes have both "TSG/oncogene" as their role, which indicates that they can act as both.

Columns

Only following columns are needed to gather required roles in cancer:

Possible Roles in Cancer

While parsing, only following roles in cancer are found:

Parsing Stats

The file contained following number of instances for each role type

Role in cancerTotal Instances
fusion149
TSG195
oncogene181
Total525

Known Issues

None

Download URL

JSON output

   {
"name": "PRDM16",
"hgncId": 14000,
"ncbiGeneId": "63976",
"ensemblGeneId": "ENSG00000142611",
"cosmic": {
"roleInCancer": [
"oncogene",
"fusion"
]
}
}
FieldTypeNotes
roleInCancerstring arrayPossible roles in caner
- - + + \ No newline at end of file diff --git a/3.22/data-sources/dann-json/index.html b/3.22/data-sources/dann-json/index.html index 34e4728f..c7df1673 100644 --- a/3.22/data-sources/dann-json/index.html +++ b/3.22/data-sources/dann-json/index.html @@ -6,13 +6,13 @@ dann-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

dann-json

"dannScore": 0.27
FieldTypeNotes
dannScorefloatRange: 0 - 1.0
- - + + \ No newline at end of file diff --git a/3.22/data-sources/dann/index.html b/3.22/data-sources/dann/index.html index e45338fe..c428657e 100644 --- a/3.22/data-sources/dann/index.html +++ b/3.22/data-sources/dann/index.html @@ -6,8 +6,8 @@ DANN | IlluminaConnectedAnnotations - - + +
@@ -15,7 +15,7 @@ CADD is an algorithm designed to annotate both coding and non-coding variants, and has been shown to outperform other annotation algorithms. DANN improves on CADD (which uses Support Vector Machines (SVMs)) by capturing non-linear relationships by using a deep neural network instead of SVMs. DANN achieves about a 19% relative reduction in the error rate and about a 14% relative increase in the area under the curve (AUC) metric over CADD’s SVM methodology.

Publication

Quang, Daniel, Yifei Chen, and Xiaohui Xie. DANN: a deep learning approach for annotating the pathogenicity of genetic variants. Bioinformatics 31.5 761-763 (2015). https://doi.org/10.1093/bioinformatics/btu703

TSV File

Example

chr     grch37_pos  ref     alt     DANN
1 10001 T A 0.16461391399220135
1 10001 T C 0.4396994049749739
1 10001 T G 0.38108629377072734
1 10002 A C 0.36182020272810128
1 10002 A G 0.44413258111779291
1 10002 A T 0.16812846819989813

Parsing

From the CSV file, we are interested in all columns:

GRCh38 liftover

The data is not available for GRCh38 on DANN website. We performed a liftover from GRCh37 to GRCh38 using crossmap.

Known Issues

None

Download URL

https://cbcl.ics.uci.edu/public_data/DANN/

JSON Output

"dannScore": 0.27
FieldTypeNotes
dannScorefloatRange: 0 - 1.0
- - + + \ No newline at end of file diff --git a/3.22/data-sources/dbsnp-json/index.html b/3.22/data-sources/dbsnp-json/index.html index f2193070..bfa71a76 100644 --- a/3.22/data-sources/dbsnp-json/index.html +++ b/3.22/data-sources/dbsnp-json/index.html @@ -6,13 +6,13 @@ dbsnp-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

dbsnp-json

"dbsnp":[
"rs1042821"
]
FieldTypeNotes
dbsnpstring arraydbSNP rsIDs
- - + + \ No newline at end of file diff --git a/3.22/data-sources/dbsnp/index.html b/3.22/data-sources/dbsnp/index.html index 20de72b0..91407284 100644 --- a/3.22/data-sources/dbsnp/index.html +++ b/3.22/data-sources/dbsnp/index.html @@ -6,13 +6,13 @@ dbSNP | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

dbSNP

Overview

dbSNP contains human single nucleotide variations, microsatellites, and small-scale insertions and deletions along with publication, population frequency, molecular consequence, and genomic and RefSeq mapping information for both common variations and clinical mutations.

Publication

Sherry, S.T., Ward, M. and Sirotkin, K. (1999) dbSNP—Database for Single Nucleotide Polymorphisms and Other Classes of Minor Genetic Variation. Genome Res., 9, 677–679.

VCF File

Example

#CHROM  POS ID  REF ALT QUAL    FILTER  INFO
1 10177 rs367896724 A AC . . RS=367896724;RSPOS=10177;dbSNPBuildID=138; \
SSR=0;SAO=0;VP=0x050000020005130026000200;GENEINFO=DDX11L1:100287102;WGT=1; \
VC=DIV;R5;ASP;G5A;G5;KGPhase3;CAF=0.5747,0.4253;COMMON=1; \
TOPMED=0.76728147298674821,0.23271852701325178

Parsing

From the VCF file, we're mainly interested in the following:

  • rsID from the ID field
  • CAF from the INFO field

Global allele extraction

The global major and minor alleles are extracted based on the frequency of the alleles provided in the CAF field. The global minor allele frequency is the second highest value of the CAF comma delimited field (ignoring '.' values).

Tie Breaking: Global Major Allele

If there are two candidates for global major and the reference allele is one of them, we prefer the reference allele.

Tie Breaking: Global Minor Allele

If there are two candidates for global minor and the reference allele is one of them, we prefer the other allele. If the reference allele is not involved, they are chosen arbitrarily.

Equal Allele Frequency Example (2 alleles)

chr1    100 A   C   CAF=0.5,0.5

We will select A to be the global major allele and C to be the global minor allele.

Equal Allele Frequency Example (3 alleles)

chr1    100 A   C,T CAF=0.33,0.33,0.33

We will select A to be the global major allele and either C or T is chosen (arbitrarily) to be the global minor allele.

Equal Allele Frequency in Alternate Alleles

chr1    100 A   C,T CAF=0.2,0.4,0.4

We will select C or T to be arbitrarily assigned to be the global major or global minor allele.

Equal Allele Frequency Between Reference & Alternate Allele

chr1    100 A   C,T CAF=0.2,0.2,0.6

We will select T to be the global major allele and C to be the global minor allele.

Known Issues

Known Issues

If there are multiple entries with different CAF values for the same allele, we use the first CAF value.

Download URL

https://ftp.ncbi.nih.gov/snp/organisms/

JSON Output

"dbsnp":[
"rs1042821"
]
FieldTypeNotes
dbsnpstring arraydbSNP rsIDs
- - + + \ No newline at end of file diff --git a/3.22/data-sources/decipher-json/index.html b/3.22/data-sources/decipher-json/index.html index 10ae5ab9..98702015 100644 --- a/3.22/data-sources/decipher-json/index.html +++ b/3.22/data-sources/decipher-json/index.html @@ -6,13 +6,13 @@ decipher-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

decipher-json

"decipher":[
{
"chromosome":"1",
"begin":13516,
"end":91073,
"numDeletions":27,
"deletionFrequency":0.675,
"numDuplications":27,
"duplicationFrequency":0.675,
"sampleSize":40,
"reciprocalOverlap": 0.27555,
"annotationOverlap": 0.5901
}
],
FieldTypeNotes
chromosomeintEnsembl-style chromosome names
beginint1-based position
endint1-based position
numDeletionsint# of observed deletions
deletionFrequencyfloatdeletion frequency
numDuplicationsint# of observed duplications
duplicationFrequencyfloatduplication frequency
sampleSizeinttotal # of samples
reciprocalOverlapfloatRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap
annotationOverlapfloatRange: 0 - 1. E.g. 0.57 would indicate a 57% annotation overlap
- - + + \ No newline at end of file diff --git a/3.22/data-sources/decipher/index.html b/3.22/data-sources/decipher/index.html index 700e2a3b..8056c82e 100644 --- a/3.22/data-sources/decipher/index.html +++ b/3.22/data-sources/decipher/index.html @@ -6,14 +6,14 @@ DECIPHER | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

DECIPHER

Overview

DECIPHER (DatabasE of genomiC varIation and Phenotype in Humans using Ensembl Resources) is an interactive web-based database which incorporates a suite of tools designed to aid the interpretation of genomic variants.

DECIPHER enhances clinical diagnosis by retrieving information from a variety of bioinformatics resources relevant to the variant found in the patient. The patient's variant is displayed in the context of both normal variation and pathogenic variation reported at that locus thereby facilitating interpretation.

Publication

DECIPHER: Database of Chromosomal Imbalance and Phenotype in Humans using Ensembl Resources. Firth, H.V. et al., 2009. Am.J.Hum.Genet 84, 524-533 (DOI: dx.doi.org/10/1016/j.ajhg.2009.03.010)

TSV Extraction

#population_cnv_id  chr start   end deletion_observations   deletion_frequency  deletion_standard_error duplication_observations    duplication_frequency   duplication_standard_error  observations    frequency   standard_error  type    sample_size study
1 1 10529 177368 0 0 1 3 0.075 0.555277708 3 0.075 0.555277708 1 40 42M calls
2 1 13516 91073 0 0 1 27 0.675 0.109713431 27 0.675 0.109713431 1 40 42M calls
3 1 18888 35451 0 0 1 2 0.002366864 0.706269473 2 0.002366864 0.706269473 1 845 DDD

Parsing

We parse the DECIPHER tsv file and extract the following columns:

  • chr
  • start
  • end
  • deletion_observations
  • deletion_frequency
  • duplication_observations
  • duplication_frequency
  • sample_size

Download URL

https://www.deciphergenomics.org/files/downloads/population_cnv_grch38.txt.gz https://www.deciphergenomics.org/files/downloads/population_cnv_grch37.txt.gz

JSON output

"decipher":[
{
"chromosome":"1",
"begin":13516,
"end":91073,
"numDeletions":27,
"deletionFrequency":0.675,
"numDuplications":27,
"duplicationFrequency":0.675,
"sampleSize":40,
"reciprocalOverlap": 0.27555,
"annotationOverlap": 0.5901
}
],
FieldTypeNotes
chromosomeintEnsembl-style chromosome names
beginint1-based position
endint1-based position
numDeletionsint# of observed deletions
deletionFrequencyfloatdeletion frequency
numDuplicationsint# of observed duplications
duplicationFrequencyfloatduplication frequency
sampleSizeinttotal # of samples
reciprocalOverlapfloatRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap
annotationOverlapfloatRange: 0 - 1. E.g. 0.57 would indicate a 57% annotation overlap
- - + + \ No newline at end of file diff --git a/3.22/data-sources/fusioncatcher-json/index.html b/3.22/data-sources/fusioncatcher-json/index.html index 02304a6e..a9fa449a 100644 --- a/3.22/data-sources/fusioncatcher-json/index.html +++ b/3.22/data-sources/fusioncatcher-json/index.html @@ -6,13 +6,13 @@ fusioncatcher-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

fusioncatcher-json

   "fusionCatcher":[
{
"genes":{
"first":{
"hgnc":"ETV6",
"isOncogene":true
},
"second":{
"hgnc":"RUNX1"
},
"isParalogPair":true,
"isPseudogenePair":true,
"isReadthrough":true
},
"germlineSources":[
"1000 Genomes Project"
],
"somaticSources":[
"COSMIC",
"TCGA oesophageal carcinomas"
]
}
]
FieldTypeNotes
genesgenes object5' gene & 3' gene
germlineSourcesstring arraymatches in known germline data sources
somaticSourcesstring arraymatches in known somatic data sources

genes

FieldTypeNotes
firstgene object5' gene
secondgene object3' gene
isParalogPairbooltrue when both genes are paralogs for each other
isPseudogenePairbooltrue when both genes are pseudogenes for each other
isReadthroughbooltrue when this fusion gene is a readthrough event (both are on the same strand and there are no genes between them)

gene

FieldTypeNotes
hgncstringgene symbol. e.g. MSH6
isOncogenebooltrue when this gene is an oncogene
- - + + \ No newline at end of file diff --git a/3.22/data-sources/fusioncatcher/index.html b/3.22/data-sources/fusioncatcher/index.html index 6fa8825d..ad86fd2a 100644 --- a/3.22/data-sources/fusioncatcher/index.html +++ b/3.22/data-sources/fusioncatcher/index.html @@ -6,13 +6,13 @@ FusionCatcher | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

FusionCatcher

Overview

FusionCatcher is a well-known tool that searches for somatic novel/known fusion genes, translocations, and/or chimeras in RNA-seq data. While FusionCatcher itself is not part of Illumina Connected Annotations, we have included a subset of their genomic databases in Illumina Connected Annotations.

Publication

Daniel Nicorici, Mihaela Şatalan, Henrik Edgren, Sara Kangaspeska, Astrid Murumägi, Olli Kallioniemi, Sami Virtanen, Olavi Kilkku. (2014) FusionCatcher – a tool for finding somatic fusion genes in paired-end RNA-sequencing data. bioRxiv 011650

Supported Data Sources

Oncogenes

The following data sources are aggregated and used to populate the isOncogene field in the gene JSON object:

DescriptionReferenceDataFusionCatcher filename
Bushmanbushmanlab.orgcancer_genes.txt
ONGENEJGGbioinfo-minzhao.orgoncogenes_more.txt
UniProt tumor genesNARuniprot.orgtumor_genes.txt

Germline

Illumina Connected Annotations labelReferenceDataFusionCatcher filename
1000 Genomes ProjectPLOS ONE1000genomes.txt
Healthy (strong support)banned.txt
Illumina Body Map 2.0EBIbodymap2.txt
CACGGenomicscacg.txt
ConjoinGPLOS ONEconjoing.txt
Healthy prefrontal cortexBMC Medical GenomicsNCBI GEOcortex.txt
Duplicated Genes DatabasePLOS ONEgenouest.orgdgd.txt
GTEx healthy tissuesgtexportal.orggtex.txt
Healthyhealthy.txt
Human Protein AtlasMCPEBIhpa.txt
Babiceanu non-cancer tissuesNARNARnon-cancer_tissues.txt
non-tumor cell linesnon-tumor_cells.txt
TumorFusions normalNARNARtcga-normal.txt

Somatic

Illumina Connected Annotations labelReferenceDataFusionCatcher filename
Alaei-Mahabadi 18 cancersPNAS18cancers.txt
DepMap CCLEdepmap.orgccle.txt
CCLE KlijnNature BiotechnologyNature Biotechnologyccle2.txt
CCLE VellichirammalMolecular Therapy Nucleic Acidsccle3.txt
Cancer Genome ProjectCOSMICcgp.txt
ChimerKB 4.0NARkobic.re.krchimerdb4kb.txt
ChimerPub 4.0NARkobic.re.krchimerdb4pub.txt
ChimerSeq 4.0NARkobic.re.krchimerdb4seq.txt
COSMICNARCOSMICcosmic.txt
Bao gliomasGenome Researchgliomas.txt
Knownknown.txt
Mitelman DBISB-CGCGoogle Cloudmitelman.txt
TCGA oesophageal carcinomasNatureoesophagus.txt
Bailey pancreatic cancersNatureNaturepancreases.txt
PCAWGCellICGCpcawg.txt
Robinson prostate cancersCellCellprostate_cancer.txt
TCGAcancer.govtcga.txt
TumorFusions tumorNARNARtcga-cancer.txt
TCGA GaoCellCelltcga2.txt
TCGA VellichirammalMolecular Therapy Nucleic Acidstcga3.txt
TICdbBMC Genomicsunav.eduticdb.txt

Gene Pair TSV File

Most of the data files in FusionCatcher are two-column TSV files containing the Ensembl gene IDs that are paired together.

Example

Here are the first few lines of the 1000genomes.txt file:

ENSG00000006210 ENSG00000102962
ENSG00000006652 ENSG00000181016
ENSG00000014138 ENSG00000149798
ENSG00000026297 ENSG00000071242
ENSG00000035499 ENSG00000155959
ENSG00000055211 ENSG00000131013
ENSG00000055332 ENSG00000179915
ENSG00000062485 ENSG00000257727
ENSG00000065978 ENSG00000166501
ENSG00000066044 ENSG00000104980

Parsing

In Illumina Connected Annotations, we will only import a gene pair if both Ensembl gene IDs are recognized from either our GRCh37 or GRCh38 cache files.

Gene TSV File

Some of the data files are single-column files containing Ensembl gene IDs. This is commonly used in the data files representing oncogene data sources.

Example

Here are the first few lines of the oncogenes_more.txt file:

ENSG00000000938
ENSG00000003402
ENSG00000005469
ENSG00000005884
ENSG00000006128
ENSG00000006453
ENSG00000006468
ENSG00000007350
ENSG00000008294
ENSG00000008952

Parsing

Known Issues

Known Issues

FusionCatcher also uses creates custom Ensembl genes (e.g. ENSG09000000002) to handle missing Ensembl genes. Illumina Connected Annotations will ignore these entries since we only include the gene IDs that are currently recognized by Illumina Connected Annotations.

I suspect that these were originally RefSeq genes and if so, we can support those directly in Illumina Connected Annotations in the future.

Download URL

https://sourceforge.net/projects/fusioncatcher/files/data

JSON Output

   "fusionCatcher":[
{
"genes":{
"first":{
"hgnc":"ETV6",
"isOncogene":true
},
"second":{
"hgnc":"RUNX1"
},
"isParalogPair":true,
"isPseudogenePair":true,
"isReadthrough":true
},
"germlineSources":[
"1000 Genomes Project"
],
"somaticSources":[
"COSMIC",
"TCGA oesophageal carcinomas"
]
}
]
FieldTypeNotes
genesgenes object5' gene & 3' gene
germlineSourcesstring arraymatches in known germline data sources
somaticSourcesstring arraymatches in known somatic data sources

genes

FieldTypeNotes
firstgene object5' gene
secondgene object3' gene
isParalogPairbooltrue when both genes are paralogs for each other
isPseudogenePairbooltrue when both genes are pseudogenes for each other
isReadthroughbooltrue when this fusion gene is a readthrough event (both are on the same strand and there are no genes between them)

gene

FieldTypeNotes
hgncstringgene symbol. e.g. MSH6
isOncogenebooltrue when this gene is an oncogene
- - + + \ No newline at end of file diff --git a/3.22/data-sources/gerp-json/index.html b/3.22/data-sources/gerp-json/index.html index c3b1133f..d79b9077 100644 --- a/3.22/data-sources/gerp-json/index.html +++ b/3.22/data-sources/gerp-json/index.html @@ -6,13 +6,13 @@ gerp-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

gerp-json

"gerpScore": 1.27
FieldTypeNotes
gerpScorefloatRange: -∞ to +∞
- - + + \ No newline at end of file diff --git a/3.22/data-sources/gerp/index.html b/3.22/data-sources/gerp/index.html index 48ad285a..11b7fd76 100644 --- a/3.22/data-sources/gerp/index.html +++ b/3.22/data-sources/gerp/index.html @@ -6,15 +6,15 @@ GERP | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

GERP

Overview

GERP identifies constrained elements in multiple alignments by quantifying substitution deficits. These deficits represent substitutions that would have occurred if the element were neutral DNA, but did not occur because the element has been under functional constraint (Rejected Substitutions). Illumina Connected Annotations uses GERP++ which is based on a significantly faster and more statistically robust maximum likelihood estimation procedure to compute expected rates of evolution.

Publication

Davydov, Eugene V., et al. "Identifying a high fraction of the human genome to be under selective constraint using GERP++." PLoS computational biology 6.12 e1001025 (2010). https://doi.org/10.1371/journal.pcbi.1001025

Source Files

Example GRCh37

GRCh37 file is a TSV format

chr     position    GERP
1 12177 0.83
1 12178 -0.206
1 12179 -0.492
1 12180 -1.66
1 12181 0.83
1 12182 0.83
1 12183 -0.417
1 12184 0.83

Example GRCh38

GRCh38 file is a lift-over BED format

chr     pos_start   pos_end     GERP
1 12646 12647 0.298
1 12647 12648 2.63
1 12648 12649 1.87
1 12649 12650 0.252
1 12650 12651 -2.06
1 12651 12652 2.61
1 12652 12653 3.97

Parsing

From the CSV file, we are interested in columns:

  • chr
  • position
  • GERP

Known Issues

None

Download URL

GRCh37

http://mendel.stanford.edu/SidowLab/downloads/gerp/index.html

GRCh38

The data is not available for GRCh38 on GERP++ website, and was obtained from https://personal.broadinstitute.org/konradk/loftee_data/GRCh38/

JSON Output

"gerpScore": 1.27
FieldTypeNotes
gerpScorefloatRange: -∞ to +∞
- - + + \ No newline at end of file diff --git a/3.22/data-sources/gme-json/index.html b/3.22/data-sources/gme-json/index.html index cde3fec4..ff680d3c 100644 --- a/3.22/data-sources/gme-json/index.html +++ b/3.22/data-sources/gme-json/index.html @@ -6,13 +6,13 @@ gme-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

gme-json

"gmeVariome":{
"allAc":10,
"allAn":202,
"allAf":0.049504,
"failedFilter":true
}
FieldTypeNotes
allAcintGME allele count
allAnintGME allele number
allAffloatGME allele frequency
failedFilterboolTrue if this variant failed any filters
- - + + \ No newline at end of file diff --git a/3.22/data-sources/gme/index.html b/3.22/data-sources/gme/index.html index 583a15f4..81bb00bb 100644 --- a/3.22/data-sources/gme/index.html +++ b/3.22/data-sources/gme/index.html @@ -6,13 +6,13 @@ GME Variome | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

GME Variome

Overview

The Greater Middle East (GME) Variome Project is aimed at generating a coding base reference for the countries found in the Greater Middle East. Illumina Connected Annotations presents variant frequencies for the Greater Middle Eastern population.

Publication

Scott, E. M., Halees, A., Itan, Y., Spencer, E. G., He, Y., Azab, M. A., Gabriel, S. B., Belkadi, A., Boisson, B., Abel, L., Clark, A. G., Greater Middle East Variome Consortium, Alkuraya, F. S., Casanova, J. L., & Gleeson, J. G. (2016). Characterization of Greater Middle Eastern genetic variation for enhanced disease gene discovery. Nature genetics, 48(9), 1071–1076. https://doi.org/10.1038/ng.3592

TSV Extraction

chrom   pos     ref     alt     AA      filter  FunctionGVS     geneFunction    Gene    GeneID  SIFT_pred       GERP++  AF      GME_GC  GME_AC  GME_AF  NWA     NEA     AP      Israel  SD      TP      CA      FunctionGVS_new Priority        Polyphen2_HVAR_pred     LRT_pred        MutationTaster_pred     rsid    OMIM_MIM        OMIM_Disease    AA_AC   EA_AC   rsid_link       position_link
1 69134 A G A VQSRTrancheSNP99.90to100.00 nonsynonymous_SNV exonic OR4F5 79501 T 2.31 96:0:5 10,192 0.04950495049504951 4:0:0 59:0:2 12:0:0 0:0:0 6:0:0 9:0:2 13:0:2 nonsynonymous_SNV MODERATE B N N none - - none none - http://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&org=human&position=chr1%3A69134-69133
1 69270 A G A PASS synonymous_SNV exonic OR4F5 79501 . . 93:38:240 518,224 0.6981132075471698 5:5:11 63:30:86 12:5:28 1:0:2 2:2:18 7:3:46 7:2:52 synonymous_SNV LOW . . . rs201219564 - - none none http://www.ncbi.nlm.nih.gov/projects/SNP/snp_ref.cgi?searchType=adhoc_search&type=rs&rs=rs201219564 http://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&org=human&position=chr1%3A69270-69269
1 69428 T G T PASS nonsynonymous_SNV exonic OR4F5 79501 D 0.891 676:44:15 74,1396 0.050340136054421766 43:0:2 313:16:10 88:7:3 6:0:0 44:8:0 102:9:0 102:4:2 nonsynonymous_SNV MODERATE D N N rs140739101 - - 14,3808 313,6535 http://www.ncbi.nlm.nih.gov/projects/SNP/snp_ref.cgi?searchType=adhoc_search&type=rs&rs=rs140739101 http://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&org=human&position=chr1%3A69428-69427

Parsing

We parse the GME tsv file and extract the following columns:

  • chrom
  • pos
  • ref
  • alt
  • filter
  • GME_AC
  • GME_AF

GRCh37 liftover

The data is not available for GRCh38 on GME website. We performed a liftover from GRCh37 to GRCh38 using CrossMap.

Download URL

http://igm.ucsd.edu/gme/download.shtml

JSON output

"gmeVariome":{
"allAc":10,
"allAn":202,
"allAf":0.049504,
"failedFilter":true
}
FieldTypeNotes
allAcintGME allele count
allAnintGME allele number
allAffloatGME allele frequency
failedFilterboolTrue if this variant failed any filters
- - + + \ No newline at end of file diff --git a/3.22/data-sources/gnomad-lof-json/index.html b/3.22/data-sources/gnomad-lof-json/index.html index d5012c62..7300b4a0 100644 --- a/3.22/data-sources/gnomad-lof-json/index.html +++ b/3.22/data-sources/gnomad-lof-json/index.html @@ -6,13 +6,13 @@ gnomad-lof-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

gnomad-lof-json

"gnomAD":{ 
"pLi":1.00e0,
"pNull":8.94e-40,
"pRec":1.84e-16,
"synZ":-8.44e-2,
"misZ":5.96e-1,
"loeuf":1.13e0
}
FieldTypeNotes
pLifloatprobability of being intolerant of a single loss-of-function variant (like haploinsufficient genes, observed ~ 0.1*expected)
pNullfloatprobability of being completely tolerant of loss of function variation (observed = expected)
pRecfloatprobability of being intolerant of two loss of function variants (like recessive genes, observed ~ 0.5*expected)
synZfloatcorrected synonymous Z score
misZfloatcorrected missense Z score
loeuffloatloss of function observed/expected upper bound fraction (LOEUF)
- - + + \ No newline at end of file diff --git a/3.22/data-sources/gnomad-small-variants-json/index.html b/3.22/data-sources/gnomad-small-variants-json/index.html index e86ebac0..24a04549 100644 --- a/3.22/data-sources/gnomad-small-variants-json/index.html +++ b/3.22/data-sources/gnomad-small-variants-json/index.html @@ -6,13 +6,13 @@ gnomad-small-variants-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

gnomad-small-variants-json

"gnomad":{ 
"coverage":20,
"allAf":0.190317,
"maleAf":0.193,
"femaleAf": 0.1935,
"afrAf":0.222876,
"amrAf":0.121394,
"easAf":0.239802,
"finAf":0.136833,
"nfeAf":0.181282,
"asjAf":0.258278,
"othAf":0.186094,
"allAn":30796,
"maleAn":15096,
"femaleAn":15700
"afrAn":8664,
"amrAn":832,
"easAn":1618,
"finAn":3486,
"nfeAn":14916,
"asjAn":302,
"othAn":978,
"allAc":5861,
"maleAc":2930,
"femaleAc": 2931,
"afrAc":1931,
"amrAc":101,
"easAc":388,
"finAc":477,
"nfeAc":2704,
"asjAc":78,
"othAc":182,
"allHc":561,
"afrHc":208,
"amrHc":6,
"easHc":42,
"finHc":31,
"nfeHc":242,
"asjHc":13,
"othHc":19,
"maleHc":280,
"femaleHc":281,
"controlsAllAf":0.190317,
"controlsAllAn":30796,
"controlsAllAc":5861,
"lowComplexityRegion":true,
"failedFilter":true
}
FieldTypeNotes
coverageintaverage coverage (non-negative integer values)
allAffloatallele frequency for all populations. Range: 0 - 1.0
maleAffloatallele frequency for male population. Range: 0 - 1.0
femaleAffloatallele frequency for female population. Range: 0 - 1.0
controlsAllAffloatallele frequency for the controls subset. Range: 0 - 1.0
allAcintallele count for all populations. Integer.
maleAcintallele count for male population. Integer.
femaleAcintallele count for female population. Integer.
controlsAllAcintallele count for the controls subset. Integer.
allAnintallele number for all populations. Non-zero integer.
maleAnintallele number for male population. Non-zero integer.
femaleAnintallele number for female population. Non-zero integer.
controlsAllAnintallele number for the controls subset. Non-zero integer.
allHcintcount of homozygous individuals for all populations. Non-negative integer.
maleHcintcount of homozygous individuals for male population. Non-negative integer.
femaleHcintcount of homozygous individuals for female population. Non-negative integer.
afrAffloatallele frequency for the African / African American population. Range: 0 - 1.0
afrAcintallele count for the African / African American population. Integer.
afrAnintallele number for the African / African American population. Non-zero integer.
afrHcintcount of homozygous individuals for African / African American population. Non-negative integer.
amrAffloatallele frequency for the Latino population. Range: 0 - 1.0
amrAcintallele count for the Latino population. Integer.
amrAnintallele number for the Latino population. Non-zero integer.
amrHcintcount of homozygous individuals for Latino population. Non-negative integer.
easAffloatallele frequency for the East Asian population. Range: 0 - 1.0
easAcintallele count for the East Asian population. Integer.
easAnintallele number for the East Asian population. Non-zero integer.
easHcintcount of homozygous individuals for East Asian population. Non-negative integer.
finAffloatallele frequency for the Finnish population. Range: 0 - 1.0
finAcintallele count for the Finnish population. Integer.
finAnintallele number for the Finnish population. Non-zero integer.
finHcintcount of homozygous individuals for Finnish population. Non-negative integer
nfeAffloatallele frequency for the Non-Finnish European population. Range: 0 - 1.0
nfeAcintallele count for the Non-Finnish European population. Integer.
nfeAnintallele number for the Non-Finnish European population. Non-zero integer.
nfeHcintcount of homozygous individuals for Non-Finnish European population. Non-negative integer
othAffloatallele frequency for the Other population. Range: 0 - 1.0
othAcintallele count for the Other population. Integer.
othAnintallele number for the Other population. Non-zero integer.
othHcintcount of homozygous individuals for Other population. Non-negative integer
asjAffloatallele frequency for the Ashkenazi Jewish population. Range: 0 - 1.0
asjAcintallele count for the Ashkenazi Jewish population Integer.
asjAnintallele number for the Ashkenazi Jewish population. Non-zero integer.
asjHcintcount of homozygous individuals for the Ashkenazi Jewish population. Non-negative integer
sasAffloatallele frequency for the South Asian population. Range: 0 - 1.0
sasAcintallele count for the South Asian population Integer.
sasAnintallele number for the South Asian population. Non-zero integer.
sasHcintcount of homozygous individuals for the South Asian population. Non-negative integer.
failedFilterboolTrue if this variant failed any filters (Note: we do not list the failed filters)
lowComplexityRegionboolTrue if this variant is located in a low complexity region.
- - + + \ No newline at end of file diff --git a/3.22/data-sources/gnomad-structural-variants-data_description/index.html b/3.22/data-sources/gnomad-structural-variants-data_description/index.html index 38058231..d0e4d5e3 100644 --- a/3.22/data-sources/gnomad-structural-variants-data_description/index.html +++ b/3.22/data-sources/gnomad-structural-variants-data_description/index.html @@ -6,14 +6,14 @@ gnomad-structural-variants-data_description | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

gnomad-structural-variants-data_description

Bed Example

The bed file was obtained from original source for GRCh37

#chrom  start   end name    svtype  ALGORITHMS  BOTHSIDES_SUPPORT   CHR2    CPX_INTERVALS   CPX_TYPE    END2    ENDEVIDENCE HIGH_SR_BACKGROUND  PCRPLUS_DEPLETED    PESR_GT_OVERDISPERSION  POS2    PROTEIN_CODING__COPY_GAIN   PROTEIN_CODING__DUP_LOF PROTEIN_CODING__DUP_PARTIAL PROTEIN_CODING__INTERGENIC  PROTEIN_CODING__INTRONIC    PROTEIN_CODING__INV_SPAN    PROTEIN_CODING__LOF PROTEIN_CODING__MSV_EXON_OVR    PROTEIN_CODING__NEAREST_TSS PROTEIN_CODING__PROMOTER    PROTEIN_CODING__UTR SOURCE  STRANDS SVLEN   SVTYPE  UNRESOLVED_TYPE UNSTABLE_AF_PCRPLUS VARIABLE_ACROSS_BATCHES AN  AC  AF  N_BI_GENOS  N_HOMREF    N_HET   N_HOMALT    FREQ_HOMREF FREQ_HET    FREQ_HOMALT MALE_AN MALE_AC MALE_AF MALE_N_BI_GENOS MALE_N_HOMREF   MALE_N_HET  MALE_N_HOMALT   MALE_FREQ_HOMREF    MALE_FREQ_HET   MALE_FREQ_HOMALT    MALE_N_HEMIREF  MALE_N_HEMIALT  MALE_FREQ_HEMIREF   MALE_FREQ_HEMIALT   PAR FEMALE_AN   FEMALE_AC   FEMALE_AF   FEMALE_N_BI_GENOS   FEMALE_N_HOMREF FEMALE_N_HET    FEMALE_N_HOMALT FEMALE_FREQ_HOMREF  FEMALE_FREQ_HET FEMALE_FREQ_HOMALT  POPMAX_AF   AFR_AN  AFR_AC  AFR_AF  AFR_N_BI_GENOS  AFR_N_HOMREF    AFR_N_HET   AFR_N_HOMALT    AFR_FREQ_HOMREF AFR_FREQ_HEAFR_FREQ_HOMALT  AFR_MALE_AN AFR_MALE_AC AFR_MALE_AF AFR_MALE_N_BI_GENOS AFR_MALE_N_HOMREF   AFR_MALE_N_HET  AFR_MALE_N_HOMALT   AFR_MALE_FREQ_HOMREF    AFR_MALE_FREQ_HET   AFR_MALE_FREQ_HOMALT    AFR_MALE_N_HEMIREF  AFR_MALE_N_HEMIALT  AFR_MALE_FREQ_HEMIREF   AFR_MALE_FREQ_HEMIALT   AFR_FEMALE_AN   AFR_FEMALE_AC   AFR_FEMALE_AF   AFR_FEMALE_N_BI_GENOS   AFR_FEMALE_N_HOMREF AFR_FEMALE_N_HET    AFR_FEMALE_N_HOMALT AFR_FEMALE_FREQ_HOMREF  AFR_FEMALE_FREQ_HET AFR_FEMALE_FREQ_HOMALT  AMR_AN  AMR_AC  AMR_AF  AMR_N_BI_GENOS  AMR_N_HOMREF    AMR_N_HET   AMR_N_HOMALT    AMR_FREQ_HOMREF AMR_FREQ_HET    AMR_FREQ_HOMALT AMR_MALE_AN AMR_MALE_AC AMR_MALE_AF AMR_MALE_N_BI_GENOS AMR_MALE_N_HOMREF   AMR_MALE_N_HET  AMR_MALE_N_HOMALT   AMR_MALE_FREQ_HOMREF    AMR_MALE_FREQ_HET   AMR_MALE_FREQ_HOMALT    AMR_MALE_N_HEMIREF  AMR_MALE_N_HEMIALT  AMR_MALE_FREQ_HEMIREF   AMR_MALE_FREQ_HEMIALT   AMR_FEMALE_AN   AMR_FEMALE_AC   AMR_FEMALE_AF   AMR_FEMALE_N_BI_GENOS   AMR_FEMALE_N_HOMREF AMR_FEMALE_N_HET    AMR_FEMALE_N_HOMALT AMR_FEMALE_FREQ_HOMREF  AMR_FEMALE_FREQ_HET AMR_FEMALE_FREQ_HOMALT  EAS_AN  EAS_AC  EAS_AF  EAS_N_BI_GENOS  EAS_N_HOMREF    EAS_N_HET   EAS_N_HOMALT    EAS_FREQ_HOMREF EAS_FREQ_HET    EAS_FREQ_HOMALT EAS_MALE_AN EAS_MALE_AC EAS_MALE_AF EAS_MALE_N_BI_GENOS EAS_MALE_N_HOMREF   EAS_MALE_N_HET  EAS_MALE_N_HOMALT   EAS_MALE_FREQ_HOMREF    EAS_MALE_FREQ_HET   EAS_MALE_FREQ_HOMALT    EAS_MALE_N_HEMIREF  EAS_MALE_N_HEMIALT  EAS_MALE_FREQ_HEMIREF   EAS_MALE_FREQ_HEMIALT   EAS_FEMALE_AN   EAS_FEMALE_AC   EAS_FEMALE_AF   EAS_FEMALE_N_BI_GENOS   EAS_FEMALE_N_HOMREF EAS_FEMALE_N_HET    EAS_FEMALE_N_HOMALT EAS_FEMALE_FREQ_HOMREF  EAS_FEMALE_FREQ_HET EAS_FEMALE_FREQ_HOMALT  EUR_AN  EUR_AC  EUR_AF  EUR_N_BI_GENOS  EUR_N_HOMREF    EUR_N_HET   EUR_N_HOMALT    EUR_FREQ_HOMREF EUR_FREQ_HET    EUR_FREQ_HOMALT EUR_MALE_AN EUR_MALE_AC EUR_MALE_AF EUR_MALE_N_BI_GENOS EUR_MALE_N_HOMREF   EUR_MALE_N_HET  EUR_MALE_N_HOMALT   EUR_MALE_FREQ_HOMREF    EUR_MALE_FREQ_HET   EUR_MALE_FREQ_HOMALT    EUR_MALE_N_HEMIREF  EUR_MALE_N_HEMIALT  EUR_MALE_FREQ_HEMIREF   EUR_MALE_FREQ_HEMIALT   EUR_FEMALE_AN   EUR_FEMALE_AC   EUR_FEMALE_AF   EUR_FEMALE_N_BI_GENOS   EUR_FEMALE_N_HOMREF EUR_FEMALE_N_HET    EUR_FEMALE_N_HOMALT EUR_FEMALE_FREQ_HOMREF  EUR_FEMALE_FREQ_HET EUR_FEMALE_FREQ_HOMALT  OTH_AN  OTH_AC  OTH_AF  OTH_N_BI_GENOS  OTH_N_HOMREF    OTH_N_HET   OTH_N_HOMALT    OTH_FREQ_HOMREF OTH_FREQ_HET    OTH_FREQ_HOMALT OTH_MALE_AN OTH_MALE_AC OTH_MALE_AF OTH_MALE_N_BI_GENOS OTH_MALE_N_HOMREF   OTH_MALE_N_HET  OTH_MALE_N_HOMALT   OTH_MALE_FREQ_HOMREF    OTH_MALE_FREQ_HET   OTH_MALE_FREQ_HOMALT    OTH_MALE_N_HEMIREF  OTH_MALE_N_HEMIALT  OTH_MALE_FREQ_HEMIREF   OTH_MALE_FREQ_HEMIALT   OTH_FEMALE_AN   OTH_FEMALE_AC   OTH_FEMALE_AF   OTH_FEMALE_N_BI_GENOS   OTH_FEMALE_N_HOMREF OTH_FEMALE_N_HET    OTH_FEMALE_N_HOMALT OTH_FEMALE_FREQ_HOMREF  OTH_FEMALE_FREQ_HET OTH_FEMALE_FREQ_HOMALT  FILTER
1 10641 10642 gnomAD-SV_v2.1_BND_1_1 BND manta False 15 NA NA 10643 10643 PE,SR False False True 10642 NA NA NA False NA NA NA NA NA NA NA NA NA -1 BND SINGLE_ENDER_-- False False 21366 145 0.006785999983549118 10683 10543 135 5 0.9868950247764587 0.012636899948120117 0.00046803298755548894 10866 69 0.00634999992325902 5433 5366 65 2 0.987667977809906 0.011963900178670883 0.000368120992789045 NA NA NA NA False 10454 76 0.007269999943673615227 5154 70 3 0.9860339760780334 0.013392000459134579 0.0005739430198445916 0.015956999734044075 93972 0.007660999894142151 4699 4629 68 2 0.9851030111312866 0.014471200294792652 0.0004256220126990229 5154 33 0.006403000093996525 2577 2544 33 0 0.9871940016746521 0.012805599719285965 0.0NA NA NA NA 4232 39 0.009216000325977802 2116 2079 35 2 0.9825140237808228 0.01654059998691082 0.0009451800142414868 1910 7 0.003664999967440963 955 949 5 1 0.9937170147895813 0.00523559981957078 0.001047119963914156 950 4 0.004211000166833401 475 472 2 1 0.9936839938163757 0.00421052984893322 0.0021052600350230932 NA NA NA NA 952 3 0.0031510000117123127 476473 3 0 0.9936969876289368 0.006302520167082548 0.0 2296 31 0.013501999899744987 1148 11131 0 0.9729970097541809 0.02700350061058998 0.0 1312 13 0.009909000247716904 656 643 13 0.9801830053329468 0.01981710083782673 0.0 NA NA NA NA 976 18 0.018442999571561813 488470 18 0 0.9631149768829346 0.03688519820570946 0.0 7574 32 0.004224999807775021 3787 37528 2 0.9920780062675476 0.007393720094114542 0.0005281229969114065 3374 17 0.005038999952375889 1681671 15 1 0.9905160069465637 0.008891520090401173 0.000592768017668277 NA NA NA NA 41815 0.003587000072002411 2091 2077 13 1 0.9933050274848938 0.006217120215296745 0.00047823999193497188 3 0.015956999734044075 94 91 3 0 0.968084990978241 0.03191490098834038 0.0 76 0.026316000148653984 38 36 2 0 0.9473680257797241 0.05263160169124603 0.0 NA NA NA NA 112 1 0.008929000236093998 56 55 1 0 0.982142984867096 0.017857100814580917 0.0UNRESOLVED

TSV Example

The tsv was obtained from lifted over dataset created by dbVar for GRCh38

#variant_call_accession variant_call_id variant_call_type   experiment_id   sample_id   sampleset_id    assembly    chrcontig   outer_start start   inner_start inner_stop  stop    outer_stop  insertion_length    variant_region_acc  variant_region_id   copy_number description validation  zygosity    origin  phenotype   hgvs_name   placement_method    placement_rank  placements_per_assembly remap_alignment remap_best_within_cluster   remap_coverage  remap_diff_chr  remap_failure_code  allele_count    allele_frequency    allele_number
nssv15777856 gnomAD-SV_v2.1_CNV_10_564_alt_1 copy number variation 1 1 GRCh38.p12 10 736806 738184 nsv4039284 10__782746___784124______GRCh37.p13_copy_number_variation 0 Remapped BestAvailable Single First Pass 0 1 AC=21,AFR_AC=10,AMR_AC=9,EAS_AC=0,EUR_AC=2,OTH_AC=0AF=0.038889,AFR_AF=0.044643,AMR_AF=0.03913,EAS_AF=0,EUR_AF=0.023256,OTH_AF=0 AN=540,AFR_AN=224,AMR_AN=230,EAS_AN=0,EUR_AN=86,OTH_AN=0

Structural Variant Type Mapping

The source files represented the structural variants with keys using various naming conventions. In the Illumina Connected Annotations JSON output, these keys will be mapped according to the following.

Illumina Connected Annotations JSON SV Type KeyGRCh37 Source SV Type KeyGRCh38 Source SV Type Key
copy_number_variationcopy number variation
deletionDEL, CN=0deletion
duplicationDUPduplication
insertionINSinsertion
inversionINVinversion
mobile_element_insertionINS:MEmobile element insertion
mobile_element_insertionINS:ME:ALUalu insertion
mobile_element_insertionINS:ME:LINE1line1 insertion
mobile_element_insertionINS:ME:SVAsva insertion
structural alterationsequence alteration
complex_structural_alterationCPX
- - + + \ No newline at end of file diff --git a/3.22/data-sources/gnomad-structural-variants-json/index.html b/3.22/data-sources/gnomad-structural-variants-json/index.html index 9602b0ba..d2e1873b 100644 --- a/3.22/data-sources/gnomad-structural-variants-json/index.html +++ b/3.22/data-sources/gnomad-structural-variants-json/index.html @@ -6,13 +6,13 @@ gnomad-structural-variants-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

gnomad-structural-variants-json

"gnomAD-preview": [
{
"chromosome": "1",
"begin": 40001,
"end": 47200,
"variantId": "gnomAD-SV_v2.1_DUP_1_1",
"variantType": "duplication",
"failedFilter": true,
"allAf": 0.068963,
"afrAf": 0.135694,
"amrAf": 0.022876,
"easAf": 0.01101,
"eurAf": 0.007846,
"othAf": 0.017544,
"femaleAf": 0.065288,
"maleAf": 0.07255,
"allAc": 943,
"afrAc": 866,
"amrAc": 21,
"easAc": 17,
"eurAc": 37,
"othAc": 2,
"femaleAc": 442,
"maleAc": 499,
"allAn": 13674,
"afrAn": 6382,
"amrAn": 918,
"easAn": 1544,
"eurAn": 4716,
"othAn": 114,
"femaleAn": 6770,
"maleAn": 6878,
"allHc": 91,
"afrHc": 90,
"amrHc": 1,
"easHc": 0,
"eurHc": 0,
"othHc": 55,
"femaleHc": 44,
"maleHc": 47,
"reciprocalOverlap": 0.01839,
"annotationOverlap": 0.16667
}
]

FieldTypeNotes
chromosomestringchromosome number
beginintegerposition interval start
endintegerposition internal end
variantTypestringstructural variant type
variantIdstringgnomAD ID
allAffloating pointallele frequency for all populations. Range: 0 - 1.0
afrAffloating pointallele frequency for the African super population. Range: 0 - 1.0
amrAffloating pointallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
easAffloating pointallele frequency for the East Asian super population. Range: 0 - 1.0
eurAffloating pointallele frequency for the European super population. Range: 0 - 1.0
othAffloating pointallele frequency for all other populations. Range: 0 - 1.0
femaleAffloating pointallele frequency for female population. Range: 0 - 1.0
maleAffloating pointallele frequency for male population. Range: 0 - 1.0
allAcintegerallele count for all populations.
afrAcintegerallele count for the African super population.
amrAcintegerallele count for the Ad Mixed American super population.
easAcintegerallele count for the East Asian super population.
eurAcintegerallele count for the European super population.
othAcintegerallele count for all other populations.
maleAcintegerallele count for male population.
femaleAcintegerallele count for female population.
allAnintegerallele number for all populations.
afrAnintegerallele number for the African super population.
amrAnintegerallele number for the Ad Mixed American super population.
easAnintegerallele number for the East Asian super population.
eurAnintegerallele number for the European super population.
othAnintegerallele number for all other populations.
femaleAnintegerallele number for female population.
maleAnintegerallele number for male population.
allHcintegercount of homozygous individuals for all populations.
afrHcintegercount of homozygous individuals for the African / African American population.
amrHcintegercount of homozygous individuals for the Latino population.
easHcintegercount of homozygous individuals for the East Asian population.
eurAcintegercount of homozygous individuals for the European super population.
othHcintegercount of homozygous individuals for all other populations.
maleHcintegercount of homozygous individuals for male population.
femaleHcintegercount of homozygous individuals for female population.
failedFilterbooleanTrue if this variant failed any filters (Note: we do not list the failed filters)
reciprocalOverlapfloating pointReciprocal overlap. Range: 0 - 1.0
annotationOverlapfloating pointReciprocal overlap. Range: 0 - 1.0

Note: Following fields are not available in GRCh38 because the source file does not contain this information:

Field
femaleAf
maleAf
maleAc
femaleAc
femaleAn
maleAn
allHc
afrHc
amrHc
easHc
eurAc
othHc
maleHc
femaleHc
failedFilter
- - + + \ No newline at end of file diff --git a/3.22/data-sources/gnomad/index.html b/3.22/data-sources/gnomad/index.html index 800d4809..f042b2a5 100644 --- a/3.22/data-sources/gnomad/index.html +++ b/3.22/data-sources/gnomad/index.html @@ -6,8 +6,8 @@ gnomAD | IlluminaConnectedAnnotations - - + +
@@ -16,7 +16,7 @@ Currently, the annotations do not include translocation breakends. Future updates will include a better way of annotating the structural variants.

Source Files

Bed Example

The bed file was obtained from original source for GRCh37

#chrom  start   end name    svtype  ALGORITHMS  BOTHSIDES_SUPPORT   CHR2    CPX_INTERVALS   CPX_TYPE    END2    ENDEVIDENCE HIGH_SR_BACKGROUND  PCRPLUS_DEPLETED    PESR_GT_OVERDISPERSION  POS2    PROTEIN_CODING__COPY_GAIN   PROTEIN_CODING__DUP_LOF PROTEIN_CODING__DUP_PARTIAL PROTEIN_CODING__INTERGENIC  PROTEIN_CODING__INTRONIC    PROTEIN_CODING__INV_SPAN    PROTEIN_CODING__LOF PROTEIN_CODING__MSV_EXON_OVR    PROTEIN_CODING__NEAREST_TSS PROTEIN_CODING__PROMOTER    PROTEIN_CODING__UTR SOURCE  STRANDS SVLEN   SVTYPE  UNRESOLVED_TYPE UNSTABLE_AF_PCRPLUS VARIABLE_ACROSS_BATCHES AN  AC  AF  N_BI_GENOS  N_HOMREF    N_HET   N_HOMALT    FREQ_HOMREF FREQ_HET    FREQ_HOMALT MALE_AN MALE_AC MALE_AF MALE_N_BI_GENOS MALE_N_HOMREF   MALE_N_HET  MALE_N_HOMALT   MALE_FREQ_HOMREF    MALE_FREQ_HET   MALE_FREQ_HOMALT    MALE_N_HEMIREF  MALE_N_HEMIALT  MALE_FREQ_HEMIREF   MALE_FREQ_HEMIALT   PAR FEMALE_AN   FEMALE_AC   FEMALE_AF   FEMALE_N_BI_GENOS   FEMALE_N_HOMREF FEMALE_N_HET    FEMALE_N_HOMALT FEMALE_FREQ_HOMREF  FEMALE_FREQ_HET FEMALE_FREQ_HOMALT  POPMAX_AF   AFR_AN  AFR_AC  AFR_AF  AFR_N_BI_GENOS  AFR_N_HOMREF    AFR_N_HET   AFR_N_HOMALT    AFR_FREQ_HOMREF AFR_FREQ_HEAFR_FREQ_HOMALT  AFR_MALE_AN AFR_MALE_AC AFR_MALE_AF AFR_MALE_N_BI_GENOS AFR_MALE_N_HOMREF   AFR_MALE_N_HET  AFR_MALE_N_HOMALT   AFR_MALE_FREQ_HOMREF    AFR_MALE_FREQ_HET   AFR_MALE_FREQ_HOMALT    AFR_MALE_N_HEMIREF  AFR_MALE_N_HEMIALT  AFR_MALE_FREQ_HEMIREF   AFR_MALE_FREQ_HEMIALT   AFR_FEMALE_AN   AFR_FEMALE_AC   AFR_FEMALE_AF   AFR_FEMALE_N_BI_GENOS   AFR_FEMALE_N_HOMREF AFR_FEMALE_N_HET    AFR_FEMALE_N_HOMALT AFR_FEMALE_FREQ_HOMREF  AFR_FEMALE_FREQ_HET AFR_FEMALE_FREQ_HOMALT  AMR_AN  AMR_AC  AMR_AF  AMR_N_BI_GENOS  AMR_N_HOMREF    AMR_N_HET   AMR_N_HOMALT    AMR_FREQ_HOMREF AMR_FREQ_HET    AMR_FREQ_HOMALT AMR_MALE_AN AMR_MALE_AC AMR_MALE_AF AMR_MALE_N_BI_GENOS AMR_MALE_N_HOMREF   AMR_MALE_N_HET  AMR_MALE_N_HOMALT   AMR_MALE_FREQ_HOMREF    AMR_MALE_FREQ_HET   AMR_MALE_FREQ_HOMALT    AMR_MALE_N_HEMIREF  AMR_MALE_N_HEMIALT  AMR_MALE_FREQ_HEMIREF   AMR_MALE_FREQ_HEMIALT   AMR_FEMALE_AN   AMR_FEMALE_AC   AMR_FEMALE_AF   AMR_FEMALE_N_BI_GENOS   AMR_FEMALE_N_HOMREF AMR_FEMALE_N_HET    AMR_FEMALE_N_HOMALT AMR_FEMALE_FREQ_HOMREF  AMR_FEMALE_FREQ_HET AMR_FEMALE_FREQ_HOMALT  EAS_AN  EAS_AC  EAS_AF  EAS_N_BI_GENOS  EAS_N_HOMREF    EAS_N_HET   EAS_N_HOMALT    EAS_FREQ_HOMREF EAS_FREQ_HET    EAS_FREQ_HOMALT EAS_MALE_AN EAS_MALE_AC EAS_MALE_AF EAS_MALE_N_BI_GENOS EAS_MALE_N_HOMREF   EAS_MALE_N_HET  EAS_MALE_N_HOMALT   EAS_MALE_FREQ_HOMREF    EAS_MALE_FREQ_HET   EAS_MALE_FREQ_HOMALT    EAS_MALE_N_HEMIREF  EAS_MALE_N_HEMIALT  EAS_MALE_FREQ_HEMIREF   EAS_MALE_FREQ_HEMIALT   EAS_FEMALE_AN   EAS_FEMALE_AC   EAS_FEMALE_AF   EAS_FEMALE_N_BI_GENOS   EAS_FEMALE_N_HOMREF EAS_FEMALE_N_HET    EAS_FEMALE_N_HOMALT EAS_FEMALE_FREQ_HOMREF  EAS_FEMALE_FREQ_HET EAS_FEMALE_FREQ_HOMALT  EUR_AN  EUR_AC  EUR_AF  EUR_N_BI_GENOS  EUR_N_HOMREF    EUR_N_HET   EUR_N_HOMALT    EUR_FREQ_HOMREF EUR_FREQ_HET    EUR_FREQ_HOMALT EUR_MALE_AN EUR_MALE_AC EUR_MALE_AF EUR_MALE_N_BI_GENOS EUR_MALE_N_HOMREF   EUR_MALE_N_HET  EUR_MALE_N_HOMALT   EUR_MALE_FREQ_HOMREF    EUR_MALE_FREQ_HET   EUR_MALE_FREQ_HOMALT    EUR_MALE_N_HEMIREF  EUR_MALE_N_HEMIALT  EUR_MALE_FREQ_HEMIREF   EUR_MALE_FREQ_HEMIALT   EUR_FEMALE_AN   EUR_FEMALE_AC   EUR_FEMALE_AF   EUR_FEMALE_N_BI_GENOS   EUR_FEMALE_N_HOMREF EUR_FEMALE_N_HET    EUR_FEMALE_N_HOMALT EUR_FEMALE_FREQ_HOMREF  EUR_FEMALE_FREQ_HET EUR_FEMALE_FREQ_HOMALT  OTH_AN  OTH_AC  OTH_AF  OTH_N_BI_GENOS  OTH_N_HOMREF    OTH_N_HET   OTH_N_HOMALT    OTH_FREQ_HOMREF OTH_FREQ_HET    OTH_FREQ_HOMALT OTH_MALE_AN OTH_MALE_AC OTH_MALE_AF OTH_MALE_N_BI_GENOS OTH_MALE_N_HOMREF   OTH_MALE_N_HET  OTH_MALE_N_HOMALT   OTH_MALE_FREQ_HOMREF    OTH_MALE_FREQ_HET   OTH_MALE_FREQ_HOMALT    OTH_MALE_N_HEMIREF  OTH_MALE_N_HEMIALT  OTH_MALE_FREQ_HEMIREF   OTH_MALE_FREQ_HEMIALT   OTH_FEMALE_AN   OTH_FEMALE_AC   OTH_FEMALE_AF   OTH_FEMALE_N_BI_GENOS   OTH_FEMALE_N_HOMREF OTH_FEMALE_N_HET    OTH_FEMALE_N_HOMALT OTH_FEMALE_FREQ_HOMREF  OTH_FEMALE_FREQ_HET OTH_FEMALE_FREQ_HOMALT  FILTER
1 10641 10642 gnomAD-SV_v2.1_BND_1_1 BND manta False 15 NA NA 10643 10643 PE,SR False False True 10642 NA NA NA False NA NA NA NA NA NA NA NA NA -1 BND SINGLE_ENDER_-- False False 21366 145 0.006785999983549118 10683 10543 135 5 0.9868950247764587 0.012636899948120117 0.00046803298755548894 10866 69 0.00634999992325902 5433 5366 65 2 0.987667977809906 0.011963900178670883 0.000368120992789045 NA NA NA NA False 10454 76 0.007269999943673615227 5154 70 3 0.9860339760780334 0.013392000459134579 0.0005739430198445916 0.015956999734044075 93972 0.007660999894142151 4699 4629 68 2 0.9851030111312866 0.014471200294792652 0.0004256220126990229 5154 33 0.006403000093996525 2577 2544 33 0 0.9871940016746521 0.012805599719285965 0.0NA NA NA NA 4232 39 0.009216000325977802 2116 2079 35 2 0.9825140237808228 0.01654059998691082 0.0009451800142414868 1910 7 0.003664999967440963 955 949 5 1 0.9937170147895813 0.00523559981957078 0.001047119963914156 950 4 0.004211000166833401 475 472 2 1 0.9936839938163757 0.00421052984893322 0.0021052600350230932 NA NA NA NA 952 3 0.0031510000117123127 476473 3 0 0.9936969876289368 0.006302520167082548 0.0 2296 31 0.013501999899744987 1148 11131 0 0.9729970097541809 0.02700350061058998 0.0 1312 13 0.009909000247716904 656 643 13 0.9801830053329468 0.01981710083782673 0.0 NA NA NA NA 976 18 0.018442999571561813 488470 18 0 0.9631149768829346 0.03688519820570946 0.0 7574 32 0.004224999807775021 3787 37528 2 0.9920780062675476 0.007393720094114542 0.0005281229969114065 3374 17 0.005038999952375889 1681671 15 1 0.9905160069465637 0.008891520090401173 0.000592768017668277 NA NA NA NA 41815 0.003587000072002411 2091 2077 13 1 0.9933050274848938 0.006217120215296745 0.00047823999193497188 3 0.015956999734044075 94 91 3 0 0.968084990978241 0.03191490098834038 0.0 76 0.026316000148653984 38 36 2 0 0.9473680257797241 0.05263160169124603 0.0 NA NA NA NA 112 1 0.008929000236093998 56 55 1 0 0.982142984867096 0.017857100814580917 0.0UNRESOLVED

TSV Example

The tsv was obtained from lifted over dataset created by dbVar for GRCh38

#variant_call_accession variant_call_id variant_call_type   experiment_id   sample_id   sampleset_id    assembly    chrcontig   outer_start start   inner_start inner_stop  stop    outer_stop  insertion_length    variant_region_acc  variant_region_id   copy_number description validation  zygosity    origin  phenotype   hgvs_name   placement_method    placement_rank  placements_per_assembly remap_alignment remap_best_within_cluster   remap_coverage  remap_diff_chr  remap_failure_code  allele_count    allele_frequency    allele_number
nssv15777856 gnomAD-SV_v2.1_CNV_10_564_alt_1 copy number variation 1 1 GRCh38.p12 10 736806 738184 nsv4039284 10__782746___784124______GRCh37.p13_copy_number_variation 0 Remapped BestAvailable Single First Pass 0 1 AC=21,AFR_AC=10,AMR_AC=9,EAS_AC=0,EUR_AC=2,OTH_AC=0AF=0.038889,AFR_AF=0.044643,AMR_AF=0.03913,EAS_AF=0,EUR_AF=0.023256,OTH_AF=0 AN=540,AFR_AN=224,AMR_AN=230,EAS_AN=0,EUR_AN=86,OTH_AN=0

Structural Variant Type Mapping

The source files represented the structural variants with keys using various naming conventions. In the Illumina Connected Annotations JSON output, these keys will be mapped according to the following.

Illumina Connected Annotations JSON SV Type KeyGRCh37 Source SV Type KeyGRCh38 Source SV Type Key
copy_number_variationcopy number variation
deletionDEL, CN=0deletion
duplicationDUPduplication
insertionINSinsertion
inversionINVinversion
mobile_element_insertionINS:MEmobile element insertion
mobile_element_insertionINS:ME:ALUalu insertion
mobile_element_insertionINS:ME:LINE1line1 insertion
mobile_element_insertionINS:ME:SVAsva insertion
structural alterationsequence alteration
complex_structural_alterationCPX

Download URLs

GRCh37

The GRCh37 file was downloaded from the original source. Following table gives some essential data metrics:

https://storage.googleapis.com/gcp-public-data--gnomad/papers/2019-sv/gnomad_v2.1_sv.sites.bed.gz

GRCh38

Note: The data was unavailable from gnomAD 2.1 original source, however the lifted over structural variant dataset was created by dbVar and was obtained from them https://www.ncbi.nlm.nih.gov/sites/dbvarapp/studies/nstd166/.

Download URL

https://ftp.ncbi.nlm.nih.gov/pub/dbVar/data/Homo_sapiens/by_study/tsv/nstd166.GRCh38.variant_call.tsv.gz

JSON output

"gnomAD-preview": [
{
"chromosome": "1",
"begin": 40001,
"end": 47200,
"variantId": "gnomAD-SV_v2.1_DUP_1_1",
"variantType": "duplication",
"failedFilter": true,
"allAf": 0.068963,
"afrAf": 0.135694,
"amrAf": 0.022876,
"easAf": 0.01101,
"eurAf": 0.007846,
"othAf": 0.017544,
"femaleAf": 0.065288,
"maleAf": 0.07255,
"allAc": 943,
"afrAc": 866,
"amrAc": 21,
"easAc": 17,
"eurAc": 37,
"othAc": 2,
"femaleAc": 442,
"maleAc": 499,
"allAn": 13674,
"afrAn": 6382,
"amrAn": 918,
"easAn": 1544,
"eurAn": 4716,
"othAn": 114,
"femaleAn": 6770,
"maleAn": 6878,
"allHc": 91,
"afrHc": 90,
"amrHc": 1,
"easHc": 0,
"eurHc": 0,
"othHc": 55,
"femaleHc": 44,
"maleHc": 47,
"reciprocalOverlap": 0.01839,
"annotationOverlap": 0.16667
}
]

FieldTypeNotes
chromosomestringchromosome number
beginintegerposition interval start
endintegerposition internal end
variantTypestringstructural variant type
variantIdstringgnomAD ID
allAffloating pointallele frequency for all populations. Range: 0 - 1.0
afrAffloating pointallele frequency for the African super population. Range: 0 - 1.0
amrAffloating pointallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
easAffloating pointallele frequency for the East Asian super population. Range: 0 - 1.0
eurAffloating pointallele frequency for the European super population. Range: 0 - 1.0
othAffloating pointallele frequency for all other populations. Range: 0 - 1.0
femaleAffloating pointallele frequency for female population. Range: 0 - 1.0
maleAffloating pointallele frequency for male population. Range: 0 - 1.0
allAcintegerallele count for all populations.
afrAcintegerallele count for the African super population.
amrAcintegerallele count for the Ad Mixed American super population.
easAcintegerallele count for the East Asian super population.
eurAcintegerallele count for the European super population.
othAcintegerallele count for all other populations.
maleAcintegerallele count for male population.
femaleAcintegerallele count for female population.
allAnintegerallele number for all populations.
afrAnintegerallele number for the African super population.
amrAnintegerallele number for the Ad Mixed American super population.
easAnintegerallele number for the East Asian super population.
eurAnintegerallele number for the European super population.
othAnintegerallele number for all other populations.
femaleAnintegerallele number for female population.
maleAnintegerallele number for male population.
allHcintegercount of homozygous individuals for all populations.
afrHcintegercount of homozygous individuals for the African / African American population.
amrHcintegercount of homozygous individuals for the Latino population.
easHcintegercount of homozygous individuals for the East Asian population.
eurAcintegercount of homozygous individuals for the European super population.
othHcintegercount of homozygous individuals for all other populations.
maleHcintegercount of homozygous individuals for male population.
femaleHcintegercount of homozygous individuals for female population.
failedFilterbooleanTrue if this variant failed any filters (Note: we do not list the failed filters)
reciprocalOverlapfloating pointReciprocal overlap. Range: 0 - 1.0
annotationOverlapfloating pointReciprocal overlap. Range: 0 - 1.0

Note: Following fields are not available in GRCh38 because the source file does not contain this information:

Field
femaleAf
maleAf
maleAc
femaleAc
femaleAn
maleAn
allHc
afrHc
amrHc
easHc
eurAc
othHc
maleHc
femaleHc
failedFilter
- - + + \ No newline at end of file diff --git a/3.22/data-sources/mito-heteroplasmy/index.html b/3.22/data-sources/mito-heteroplasmy/index.html index c7c30025..2485b092 100644 --- a/3.22/data-sources/mito-heteroplasmy/index.html +++ b/3.22/data-sources/mito-heteroplasmy/index.html @@ -6,13 +6,13 @@ Mitochondrial Heteroplasmy | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Mitochondrial Heteroplasmy

Overview

Mitochondrial Heteroplasmy is an aggregate population data set that characterizes the amount of heteroplasmy observed for each variant. The latest version of this data set is based on re-processed 1000 Genomes Project data using the Illumina DRAGEN pipeline.

JSON File

Example

{
"T:C":{
"ad":[
1,
1,
1,
1,
1,
1
],
"allele_type":"alt",
"vrf":[
0.002369668246445498,
0.0024937655860349127,
0.0016129032258064516,
0.0025188916876574307,
0.0022935779816513763,
0.002008032128514056
],
"vrf_stats":{
"kurtosis":38.889891511122556,
"max":0.0025188916876574307,
"mean":5.4052190471990743e-05,
"min":0.0,
"nobs":246,
"skewness":6.346664692283075,
"stdev":0.0003461416264750575,
"variance":1.1981402557879823e-07
}
}
}

Parsing

From the JSON file, we're mainly interested in the following keys:

  • variant (i.e. T:C)
  • ad
  • vrf
  • nobs (number of observations)
Adjusting for null observations

The nobs value indicates how many observations were made. Ideally this would have been represented in the ad and vrf arrays, but it's left as an exercise for the reader.

Binning VRF Data

The vrf (variant read frequency) array in the JSON object above is paired with with the ad array (allele depths) shown above.

The data in the JSON object has a crazy number of significant digits. This means that as the number of samples increase, this array will grow. To make this more future-proof, Illumina Connected Annotations bins everything according to 0.1% increments.

With the binned data, we end up having 775 distinct vrf values in the entire JSON file. This also means that the variant with the largest number of VRFs would originally have 246 entries, but due to binning this will decrease to 143.

Pre-processing the Data

The JSON file is converted into a small TSV file that is embedded in Illumina Connected Annotations. Here is an example of the TSV file:

#CHROM  POS REF ALT VRF_BINS    VRF_COUNTS
chrM 1 G . 0.981,0.987,0.988,0.989,0.99,0.991,0.992,0.993,0.994,0.995,0.996,0.997,0.998,0.999 1,2,2,4,7,8,11,19,43,60,48,64,499,1736
chrM 2 A . 0.981,0.987,0.988,0.989,0.99,0.991,0.992,0.993,0.994,0.995,0.996,0.997,0.998,0.999 1,2,2,4,7,8,11,19,43,60,48,64,499,1736

Algorithm

Illumina Connected Annotations will calculate mitochondrial heteroplasmy data for every sample in the VCF. Using the computed VRF for each sample, we compute where in the empirical mitochondrial heteroplasmy distribution that VRF occurs and express that as a percentile.

Percentiles

Illumina Connected Annotations uses the statistical definition of percentile (indicating the value below which a given percentage of observations in a group of observations falls). Unless the sample's VRF is higher than all the VRFs represented in the distribution, the range will be [0, 1).

Download URL

Unavailable

The original data set is only available internally at Illumina at the moment.

JSON Output

"samples":[
{
"genotype":"0/1",
"variantFrequencies":[
0.333,
0.5
],
],
"alleleDepths":[
10,
20,
30
],
"heteroplasmyPercentile":[
23.13,
12.65
]
}
]
FieldTypeNotes
heteroplasmyPercentilefloat arrayone percentile for each variant frequency (each alternate allele)
- - + + \ No newline at end of file diff --git a/3.22/data-sources/mitomap-small-variants-json/index.html b/3.22/data-sources/mitomap-small-variants-json/index.html index 52b06220..e652e845 100644 --- a/3.22/data-sources/mitomap-small-variants-json/index.html +++ b/3.22/data-sources/mitomap-small-variants-json/index.html @@ -6,13 +6,13 @@ mitomap-small-variants-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

mitomap-small-variants-json

"mitomap":[ 
{
"refAllele":"G",
"altAllele":"A",
"diseases":[
"Bipolar disorder",
"Melanoma"
],
"hasHomoplasmy":false,
"hasHeteroplasmy":true,
"status":"Reported",
"clinicalSignificance":"confirmed pathogenic",
"scorePercentile":83.30,
"numGenBankFullLengthSeqs":2,
"pubMedIds":["2316527","6299878","6301949"],
"isAlleleSpecific":true
}
]
FieldTypeNotes
refAllelestring
altAllelestring
diseasesstring arrayassociated diseases
hasHomoplasmyboolean
hasHeteroplasmyboolean
statusstringrecord status
clinicalSignificancestringpredicted pathogenicity
scorePercentilefloatMitoTIP score
numGenBankFullLengthSeqsinteger# of GenBank full-length sequences
pubMedIdsstring array
isAlleleSpecificbooleantrue when the current variant alternate allele matches the MITOMAP alternate allele
- - + + \ No newline at end of file diff --git a/3.22/data-sources/mitomap-structural-variants-json/index.html b/3.22/data-sources/mitomap-structural-variants-json/index.html index 93365296..f87ccac4 100644 --- a/3.22/data-sources/mitomap-structural-variants-json/index.html +++ b/3.22/data-sources/mitomap-structural-variants-json/index.html @@ -6,13 +6,13 @@ mitomap-structural-variants-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

mitomap-structural-variants-json

"mitomap":[ 
{
"chromosome":"MT",
"begin":3166,
"end":14152,
"variantType":"deletion",
"reciprocalOverlap":0.18068,
"annotationOverlap":0.42405
}
]
FieldTypeNotes
chromosomestring
begininteger
endinteger
variantTypestring array
reciprocalOverlapfloatRange: 0 - 1. Specified up to 5 decimal places
annotationOverlapfloatRange: 0 - 1. Specified up to 5 decimal places
- - + + \ No newline at end of file diff --git a/3.22/data-sources/mitomap/index.html b/3.22/data-sources/mitomap/index.html index 52132baa..eaa850aa 100644 --- a/3.22/data-sources/mitomap/index.html +++ b/3.22/data-sources/mitomap/index.html @@ -6,13 +6,13 @@ MITOMAP | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

MITOMAP

Overview

MITOMAP provides a compendium of polymorphisms and mutations in human mitochondrial DNA.

Publication

Lott, M.T., Leipzig, J.N., Derbeneva, O., Xie, H.M., Chalkia, D., Sarmady, M., Procaccio, V., and Wallace, D.C. mtDNA variation and analysis using MITOMAP and MITOMASTER. Current Protocols in Bioinformatics 1(123):1.23.1-26 (2013). http://www.mitomap.org

Scraping HTML Pages

Example

MITOMAP is unique in that it doesn't offer the data in a downloadable format. As a result, the annotation content in Illumina Connected Annotations is scraped from the following MITOMAP pages:

  1. mtDNA Control Region Sequence Variants
  2. mtDNA Coding Region & RNA Sequence Variants
  3. Reported Mitochondrial DNA Base Substitution Diseases: rRNA/tRNA mutations
  4. Reported Mitochondrial DNA Base Substitution Diseases: Coding and Control Region Point Mutations
  5. Reported mtDNA Deletions
  6. mtDNA Simple Insertions

Parsing

Here's what the HTML code looks like:

["582","<a href='/MITOMAP/GenomeLoci#MTTF'>MT-TF</a>","Mitochondrial myopathy","T582C","tRNA Phe","-","+","Reported","<span style='display:inline-block;white-space:nowrap;'><a href='/cgi-bin/mitotip?pos=582&alt=C&quart=2'><u>72.90%</u></a> <i class='fa fa-arrow-up' style='color:orange' aria-hidden='true'></i></span>","0","<a href='/cgi-bin/print_ref_list?refs=90165,91590&title=RNA+Mutation+T582C' target='_blank'>2</a>"],
["583","<a href='/MITOMAP/GenomeLoci#MTTF'>MT-TF</a>","MELAS / MM & EXIT","G583A","tRNA Phe","-","+","Cfrm","<span style='display:inline-block;white-space:nowrap;'><a href='/cgi-bin/mitotip?pos=583&alt=A&quart=0'><u>93.10%</u></a> <i class='fa fa-arrow-up' style='color:red' aria-hidden='true'></i><i class='fa fa-arrow-up' style='color:red' aria-hidden='true'></i><i class='fa fa-arrow-up' style='color:red' aria-hidden='true'></i></span>","0","<a href='/cgi-bin/print_ref_list?refs=2066,90532,91590&title=RNA+Mutation+G583A' target='_blank'>3</a>"],

We're mainly interested in the following columns (numbers indicate the HTML page above):

  • Position1,2,3,4
  • Disease3,4
  • Nucleotide Change1,2
  • Allele3,4
  • Homoplasmy3,4
  • Heteroplasmy3,4
  • Status3,4
  • MitoTIP3,4
  • GB Seqs FL(CR)1,2,3,4
  • Deletion Junction5
  • Insert (nt)6
  • Insert Point (nt)6
  • References/Curated References1,2,3,4
MitoTIP

The MitoTIP information is used to populate the clinicalSignificance and scorePercentile JSON keys. The "frequency alert" entries are skipped since it's not directly relevant to clinical significance.

Left alignment

Many of the variants in MITOMAP have not been normalized. As part of our import procedure, we left align all insertions and deletions.

Variant Enumeration

Sometimes MITOMAP provides data that indicates that multiple values have been observed. Some examples of this are C-C(2-8) and A-AC or ACC. Alternate alleles containing IUPAC ambiguity codes are similarly enumerated.

Inversions

MITOMAP inversions are currently treated as MNVs.

Allele Parsing

The following MITOMAP allele parsing conventions are supported:

  • C123T
  • 16021_16022del
  • 8042del2
  • C9537insC
  • 3902_3908invACCTTGC
  • A-AC or ACC
  • C-C(2-8)
  • 8042delAT

PostgreSQL Dump File

Example

COPY mitomap.reference (id, authors, title, publication, editors, volume, number, pages, date, city, publisher, keywords, abstract, nlmid) FROM stdin;
1 Albring, M., Griffith, J. and Attardi, G. Association of a protein structure of probable membrane derivation with HeLa cell mitochondrial DNA near its origin of replication Proceedings of the National Academy of Sciences of the United States of America . 74 4 1348-1352 1977 . . Deoxyribonucleoproteins; DNA Replication; DNA, Mitochondrial; Hela Cells; Membrane Proteins; Microscopy, Electron; Molecular Weight; Neoplasm Proteins; Protein Binding Almost all (about 95 percent) of the mitochondrial DNA molecules released by Triton X-100 lysis of HeLa cell mitochondria in the presence of 0.15 M salt are associated with a single protein-containing structure varying in appearance between a 10-20 nm knob and a 100-500 nm membrane-like patch. Analysis by high resolution electron microscopy and by polyacrylamide gel electrophoresis after cleavage of mitochondrial DNA with the endonucleases EcoRI, HindIII, and Hpa II has shown that the protein structure is attached to the DNA in the region of the D-loop, and probably near the origin of mitochondrial DNA replication. The data strongly suggest that HeLa cell mitochondrial DNA is attached in vivo to the inner mitochondrial membrane at or near the origin of replication, and that a membrane fragment of variable size remains associated with the DNA during the isolation. After sodium dodecyl sulfate extraction of mitochondrial DNA, a small 5-10 nm protein is found at the same site on a fraction of the mitochondrial DNA molecules. 266177
2 Anderson, S., Bankier, A.T., Barrell, B.G., de Bruijn, M.H., Coulson, A.R., Drouin, J., Eperon, I.C., Nierlich, D.P., Roe, B.A., Sanger, F., Schreier, P.H., Smith, A.J., Staden, R., Young, I.G. Sequence and organization of the human mitochondrial genome Nature . 290 5806 457-465 1981 . . Base Sequence; Codon; DNA Replication; mtDNA; Evolution; Genes, Structural; Human; Nucleic Acid Precursors; Peptide Chain Initiation; Peptide Chain Termination; RNA, Ribosomal; RNA, Transfer; Transcription, Genetic The complete sequence of the 16,569-base pair human mitochondrial genome is presented. The genes for the 12S and 16S rRNAs, 22 tRNAs, cytochrome c oxidase subunits I, II and III, ATPase subunit 6, cytochrome b and eight other predicted protein coding genes have been located. The sequence shows extreme economy in that the genes have none or only a few noncoding bases between them, and in many cases the termination codons are not coded in the DNA but are created post- transcriptionally by polyadenylation of the mRNAs. 7219534

Parsing

From the PostgreSQL dump file, we're interested in parsing the mapping between reference IDs and the PubMed IDs:

  • id
  • nlmid
Why not use the PostgreSQL file for everything?

Ideally we would use this file for parsing all of our data, but the schema contains 80+ tables and we haven't invested the time yet to see how the tables are linked together to produce the 6 main HTML pages that we're interested in.

Known Issues

Duplicated records

Multiple records describing the same nucleotide change are merged into the same record. If any conflicting information is found (homoplasmy, heteroplasmy, status, clinical significance, score percentile, end coordinate, variant type), an exception is thrown.

  • For diseases and PubMed IDs, we take the union of the values in the duplicated records.
  • For full length GenBank sequences, we take the largest number from each of the duplicated records since it provides the strongest evidence for this variant.
Skipped records

Records that represent an alternate notation of the original variant are skipped. Similarly some variants with confusing alleles (T961delT+ / -C(n)ins) are also skipped.

Download URLs

JSON Output

Small Variants

"mitomap":[ 
{
"refAllele":"G",
"altAllele":"A",
"diseases":[
"Bipolar disorder",
"Melanoma"
],
"hasHomoplasmy":false,
"hasHeteroplasmy":true,
"status":"Reported",
"clinicalSignificance":"confirmed pathogenic",
"scorePercentile":83.30,
"numGenBankFullLengthSeqs":2,
"pubMedIds":["2316527","6299878","6301949"],
"isAlleleSpecific":true
}
]
FieldTypeNotes
refAllelestring
altAllelestring
diseasesstring arrayassociated diseases
hasHomoplasmyboolean
hasHeteroplasmyboolean
statusstringrecord status
clinicalSignificancestringpredicted pathogenicity
scorePercentilefloatMitoTIP score
numGenBankFullLengthSeqsinteger# of GenBank full-length sequences
pubMedIdsstring array
isAlleleSpecificbooleantrue when the current variant alternate allele matches the MITOMAP alternate allele

Structural Variants

"mitomap":[ 
{
"chromosome":"MT",
"begin":3166,
"end":14152,
"variantType":"deletion",
"reciprocalOverlap":0.18068,
"annotationOverlap":0.42405
}
]
FieldTypeNotes
chromosomestring
begininteger
endinteger
variantTypestring array
reciprocalOverlapfloatRange: 0 - 1. Specified up to 5 decimal places
annotationOverlapfloatRange: 0 - 1. Specified up to 5 decimal places
- - + + \ No newline at end of file diff --git a/3.22/data-sources/omim-json/index.html b/3.22/data-sources/omim-json/index.html index 7a42472c..bf10467c 100644 --- a/3.22/data-sources/omim-json/index.html +++ b/3.22/data-sources/omim-json/index.html @@ -6,13 +6,13 @@ omim-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

omim-json

"omim":[ 
{
"mimNumber":600678,
"geneName":"MutS, E. coli, homolog of, 6",
"description":"The transcription factor p53 responds to diverse cellular stresses to regulate target genes that induce cell cycle arrest, apoptosis, senescence, DNA repair, or changes in metabolism. In addition, p53 appears to induce apoptosis through nontranscriptional cytoplasmic processes. In unstressed cells, p53 is kept inactive essentially through the actions of the ubiquitin ligase MDM2, which inhibits p53 transcriptional activity and ubiquitinates p53 to promote its degradation. Numerous posttranslational modifications modulate p53 activity, most notably phosphorylation and acetylation. Several less abundant p53 isoforms also modulate p53 activity. Activity of p53 is ubiquitously lost in human cancer either by mutation of the p53 gene itself or by loss of cell signaling upstream or downstream of p53 (Toledo and Wahl, 2006; Bourdon, 2007; Vousden and Lane, 2007)",
"phenotypes":[
{
"mimNumber":614350,
"phenotype":"Colorectal cancer, hereditary nonpolyposis, type 5",
"description":"Hereditary nonpolyposis colorectal cancer type 5 is a cancer predisposition syndrome ...",
"mapping":"molecular basis of the disorder is known",
"inheritances":[
"Autosomal dominant"
]
},
{
"mimNumber":608089,
"phenotype":"Endometrial cancer, familial",
"mapping":"molecular basis of the disorder is known"
},
{
"mimNumber":276300,
"phenotype":"Mismatch repair cancer syndrome",
"description":"Constitutional mismatch repair deficiency is a rare childhood cancer predisposition syndrome ...",
"mapping":"molecular basis of the disorder is known",
"inheritances":[
"Autosomal recessive"
],
"comments" : [
"contribute to susceptibility to multifactorial disorders or to susceptibility to infection",
"unconfirmed or possibly spurious mapping"
]
}
]
}
]
FieldTypeNotes
mimNumberintOMIM ID for gene
geneNamestringgene name
descriptionstring
phenotypesobject arraysee Phenotype entry below

Phenotype

FieldTypeNotes
mimNumberint
phenotypestring
descriptionstring
mappingstringsee possible values below
inheritancestring arraysee possible values below
commentsstring arraysee possible values below

Mapping

  1. disorder was positioned by mapping of the wild type gene
  2. disease phenotype itself was mapped
  3. molecular basis of the disorder is known
  4. disorder is a chromosome deletion or duplication syndrome

Inheritance

  • autosomal recessive
  • autosomal dominant

Comments

  • contributes to the susceptibility to multifactorial disorders
  • variations that lead to apparently abnormal laboratory test values
  • unconfirmed mapping
- - + + \ No newline at end of file diff --git a/3.22/data-sources/omim/index.html b/3.22/data-sources/omim/index.html index 1cc4d742..6249ecc8 100644 --- a/3.22/data-sources/omim/index.html +++ b/3.22/data-sources/omim/index.html @@ -6,8 +6,8 @@ OMIM | IlluminaConnectedAnnotations - - + +
@@ -17,7 +17,7 @@ 4 to disorder is a chromosome deletion or duplication syndrome

Phenotype character to comment

? to unconfirmed or possibly spurious mapping
[/] to nondiseases
{/} to contribute to susceptibility to multifactorial disorders or to susceptibility to infection

There are different types of link in the OMIM description section. For example, in above JSON response, we have the description of MIM entry 100640:

The ALDH1A1 gene encodes a liver cytosolic isoform of acetaldehyde dehydrogenase ({EC 1.2.1.3}), an enzyme involved in the major pathway of alcohol metabolism after alcohol dehydrogenase (ADH, see {103700}). See also liver mitochondrial ALDH2 ({100650}), variation in which has been implicated in different responses to alcohol ingestion.\n\nALDH1 is associated with a low Km for NAD, a high Km for acetaldehyde, and is strongly inactivated by disulfiram. ALDH2 is associated with a high Km for NAD, and low Km for acetaldehyde, and is insensitive to inhibition by disulfiram ({4:Hsu et al., 1985}).

As the descriptions will be shown as plain text, we remove the curry brackets surrounding links and try to make the text still readable with minimal modifications. Briefly:

Here is a list of examples about how the description section supposed to be processed:

Original textProcessed text
({516030}, {516040}, and {516050})
(e.g., D1, {168461}; D2, {123833}; D3, {123834})(e.g., D1; D2; D3)
(desmocollins; see DSC2, {125645})(desmocollins; see DSC2)
(e.g., see {102700}, {300755})
(ADH, see {103700}). See also liver mitochondrial ALDH2 ({100650})(ADH). See also liver mitochondrial ALDH2
(see, e.g., CACNA1A; {601011})(see, e.g., CACNA1A)
(e.g., GSTA1; {138359}), mu (e.g., {138350})(e.g., GSTA1), mu
(NFKB; see {164011})(NFKB)
(see ISGF3G, {147574})(see ISGF3G)
(DCK; {EC 2.7.1.74}; {125450})(DCK; EC 2.7.1.74)

JSON output

"omim":[ 
{
"mimNumber":600678,
"geneName":"MutS, E. coli, homolog of, 6",
"description":"The transcription factor p53 responds to diverse cellular stresses to regulate target genes that induce cell cycle arrest, apoptosis, senescence, DNA repair, or changes in metabolism. In addition, p53 appears to induce apoptosis through nontranscriptional cytoplasmic processes. In unstressed cells, p53 is kept inactive essentially through the actions of the ubiquitin ligase MDM2, which inhibits p53 transcriptional activity and ubiquitinates p53 to promote its degradation. Numerous posttranslational modifications modulate p53 activity, most notably phosphorylation and acetylation. Several less abundant p53 isoforms also modulate p53 activity. Activity of p53 is ubiquitously lost in human cancer either by mutation of the p53 gene itself or by loss of cell signaling upstream or downstream of p53 (Toledo and Wahl, 2006; Bourdon, 2007; Vousden and Lane, 2007)",
"phenotypes":[
{
"mimNumber":614350,
"phenotype":"Colorectal cancer, hereditary nonpolyposis, type 5",
"description":"Hereditary nonpolyposis colorectal cancer type 5 is a cancer predisposition syndrome ...",
"mapping":"molecular basis of the disorder is known",
"inheritances":[
"Autosomal dominant"
]
},
{
"mimNumber":608089,
"phenotype":"Endometrial cancer, familial",
"mapping":"molecular basis of the disorder is known"
},
{
"mimNumber":276300,
"phenotype":"Mismatch repair cancer syndrome",
"description":"Constitutional mismatch repair deficiency is a rare childhood cancer predisposition syndrome ...",
"mapping":"molecular basis of the disorder is known",
"inheritances":[
"Autosomal recessive"
],
"comments" : [
"contribute to susceptibility to multifactorial disorders or to susceptibility to infection",
"unconfirmed or possibly spurious mapping"
]
}
]
}
]
FieldTypeNotes
mimNumberintOMIM ID for gene
geneNamestringgene name
descriptionstring
phenotypesobject arraysee Phenotype entry below

Phenotype

FieldTypeNotes
mimNumberint
phenotypestring
descriptionstring
mappingstringsee possible values below
inheritancestring arraysee possible values below
commentsstring arraysee possible values below

Mapping

  1. disorder was positioned by mapping of the wild type gene
  2. disease phenotype itself was mapped
  3. molecular basis of the disorder is known
  4. disorder is a chromosome deletion or duplication syndrome

Inheritance

Comments

Building the supplementary files

The first step in builing the OMIM .nga files is to use the SAUtils command's subcommand downloadOMIM to download the necessary data. In order to download the data the user must possess an API key obtained from OMIM. This key has to be set as the environment variable OmimApiKey.

export OmimApiKey=<users-omim-api-key>
SAUtils.dll downloadOMIM
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll downloadomim [options]
Download the OMIM gene annotation data

OPTIONS:
--cache, -c <directory>
input cache directory
--ref, -r <filename> input reference filename
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version

dotnet SAUtils.dll downloadOMIM --ref References/7/Homo_sapiens.GRCh38.Nirvana.dat --uga Cache/ --out ExternalDataSources/OMIM/2021-06-14
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

Gene Symbol Update Statistics
============================================
{
"NumGeneSymbolsUpToDate": 16788,
"NumGeneSymbolsUpdated": 95,
"NumGenesWhereBothIdsAreNull": 0,
"NumGeneSymbolsNotInCache": 106,
"NumResolvedGeneSymbolConflicts": 15,
"NumUnresolvedGeneSymbolConflicts": 0
}

Time: 00:04:08.9

Once the download has succeeded, the nga files can be produced using the SAUtils command's subcommand omim.

dotnet SAUtils.dll omim
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll omim [options]
Creates a gene annotation database from OMIM data

OPTIONS:
--m2g, -m <VALUE> MimToGeneSymbol tsv file
--json, -j <VALUE> OMIM entry json file
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version


dotnet SAUtils.dll omim --m2g ExternalDataSources/OMIM/2021-06-14/MimToGeneSymbol.tsv --json ExternalDataSources/OMIM/2021-06-14/MimEntries.json.gz --out SupplementaryDatabase/63/
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------


Time: 00:00:04.5
- - + + \ No newline at end of file diff --git a/3.22/data-sources/phylop-json/index.html b/3.22/data-sources/phylop-json/index.html index 56fe3c8e..53976d4e 100644 --- a/3.22/data-sources/phylop-json/index.html +++ b/3.22/data-sources/phylop-json/index.html @@ -6,13 +6,13 @@ phylop-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

phylop-json

"variants":[
{
"vid":"2:48010488:A",
"chromosome":"chr2",
"begin":48010488,
"end":48010488,
"refAllele":"G",
"altAllele":"A",
"variantType":"SNV",
"phylopScore":0.459
}
]
FieldTypeNotes
phylopScorefloatrange: -14.08 to 6.424
- - + + \ No newline at end of file diff --git a/3.22/data-sources/phylop/index.html b/3.22/data-sources/phylop/index.html index daee2d07..af7fc2dd 100644 --- a/3.22/data-sources/phylop/index.html +++ b/3.22/data-sources/phylop/index.html @@ -6,13 +6,13 @@ PhyloP | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

PhyloP

Overview

PhyloP (phylogenetic p-values) conservation scores are obtained from the [PHAST package] (http://compgen.bscb.cornell.edu/phast/) for multiple alignments of vertebrate genomes to the human genome. For GRCh38, the multiple alignments are against 19 mammals and for GRCh37, it is against 45 vertebrate genomes.

Publication

Siepel A, Bejerano G, Pedersen JS, Hinrichs AS, Hou M, Rosenbloom K, Clawson H, Spieth J, Hillier LW, Richards S, et al. Evolutionarily conserved elements in vertebrate, insect, worm, and yeast genomes. Genome Res. 2005 Aug;15(8):1034-50. (http://www.genome.org/cgi/doi/10.1101/gr.3715005)

WigFix File

The data is provided in WigFix files which is a text file that provides conservation scores for contiguous intervals in the following format:

fixedStep chrom=chr1 start=10918 step=1
0.064
0.058
0.064
0.058
0.064
0.064
fixedStep chrom=chr1 start=34045 step=1
0.111
0.100
0.111
0.111
0.100
0.111
0.111
0.111
0.100
0.111
-1.636

We convert them to binary files with indexes for fast query. Note that these are scores for genomic positions and are reported only for SNVs.

Download URL

GRCh37: http://hgdownload.cse.ucsc.edu/goldenpath/hg19/phyloP46way/vertebrate/

GRCh38: http://hgdownload.cse.ucsc.edu/goldenPath/hg38/phyloP20way/

JSON Output

Unlike other supplemetary datasources, phyloP scores are reported in the variants section.

"variants":[
{
"vid":"2:48010488:A",
"chromosome":"chr2",
"begin":48010488,
"end":48010488,
"refAllele":"G",
"altAllele":"A",
"variantType":"SNV",
"phylopScore":0.459
}
]
FieldTypeNotes
phylopScorefloatrange: -14.08 to 6.424
- - + + \ No newline at end of file diff --git a/3.22/data-sources/primate-ai-json/index.html b/3.22/data-sources/primate-ai-json/index.html index b4d7e0ef..71db241e 100644 --- a/3.22/data-sources/primate-ai-json/index.html +++ b/3.22/data-sources/primate-ai-json/index.html @@ -6,13 +6,13 @@ primate-ai-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

primate-ai-json

GRCh38

"primateAI-3D": [
{
"aminoAcidPosition": 2,
"refAminoAcid": "V",
"altAminoAcid": "M",
"score": 0.616944,
"scorePercentile": 0.52,
"ensemblTranscriptId": "ENST00000335137.4",
"refSeqTranscriptId": "NM_001005484.1"
}
]
FieldTypeNotes
aminoAcidPositionintAmino Acid Position (1-based)
refAminoAcidstringReference Amino Acid
altAminoAcidstringAlternate Amino Acid
ensemblTranscriptIdstringTranscript ID (Ensembl)
refSeqTranscriptIdstringTranscript ID (RefSeq)
scorePercentilefloatrange: 0 - 1.0
scorefloatrange: 0 - 1.0

GRCh37

"primateAI": [
{
"hgnc":"TP53",
"scorePercentile":0.3,
}
]
FieldTypeNotes
hgncstringHGNC Gene Symbol
scorePercentilefloatrange: 0 - 1.0
- - + + \ No newline at end of file diff --git a/3.22/data-sources/primate-ai/index.html b/3.22/data-sources/primate-ai/index.html index 6a36d6d3..ecc78d90 100644 --- a/3.22/data-sources/primate-ai/index.html +++ b/3.22/data-sources/primate-ai/index.html @@ -6,8 +6,8 @@ Primate AI | IlluminaConnectedAnnotations - - + +
@@ -16,7 +16,7 @@ The predictive score range between 0 and 1, with 0 being benign and 1 being most pathogenic.

For more details, refer to these publications:

Publication
  1. Hong Gao et al. ,The landscape of tolerated genetic variation in humans and primates. Science 380, eabn8153 (2023). https://doi.org/10.1126/science.abn8197
  2. Sundaram, L., Gao, H., Padigepati, S.R. et al. Predicting the clinical impact of human mutation with deep neural networks. Nat Genet 50, 1161–1170 (2018). https://doi.org/10.1038/s41588-018-0167-z
Professional data source

This is a Professional data source and is not available freely. Please contact annotation_support@illumina.com if you would like to obtain it.

Primate AI is available in two versions based on assembly:

  1. Primate AI 3D: Only available for GRCh38
  2. Primate AI: Only available for GRCh37

Both have different file structures, and information. Therefore, they are handled separately:

Primate AI 3D: GRCh38

Parsing

CSV File

,chr,pos,non_flipped_ref,non_flipped_alt,gene_name,change_position_1based,ref_aa,alt_aa,score_PAI3D,percentile_PAI3D,refseq
0,chr1,69094,G,A,ENST00000335137.4,2,V,M,0.6169436463713646,0.5200308441794135,NM_001005484.1
1,chr1,69094,G,C,ENST00000335137.4,2,V,L,0.5557043975591658,0.4271457250214688,NM_001005484.1
2,chr1,69094,G,T,ENST00000335137.4,2,V,L,0.5557043975591658,0.4271457391722522,NM_001005484.1

From the CSV file, all columns are parsed:

The fields gene_name and refseq define the Ensembl and RefSeq transcript IDs respectively. These transcripts are passed as-is and some of them might be unrecognized/deprecated by RefSeq/Ensembl.

Parsing Command

dotnet SAUtils.dll \
PrimateAi \
--r "${References}/Homo_sapiens.GRCh38.Nirvana.dat" \
--i "${ExternalDataSources}/PrimateAI/3D/PAI3D_wholeProteome_23_04_11.percentiles.pkg.refseq.csv.gz" \
--o "${SaUtilsOutput]"

Known Issues

Known Issues

Some transcript IDs defined in the data file are obsolete, retired, or updated. They are not removed or modified by Illumina Connected Annotations, and are passed as-is from the PrimateAI-3D data source.

Example:

ENST00000643905.1 transcript is retired according to Ensembl

NM_182838.2 transcript is removed because it is a pseudo-gene according to RefSeq

Download URL

https://primad.basespace.illumina.com/

Primate AI: GRCh37

Parsing

TSV File

chr pos ref alt refAA   altAA   strand_1pos_0neg    trinucleotide_context   UCSC_gene   ExAC_coverage   primateDL_score
chr10 1046704 C T R C 1 CCG uc001ift.3 45.49 0.849114537239
chr10 1046704 C G R G 1 CCG uc001ift.3 45.49 0.795686006546

From the TSV file, we're mainly interested in the following columns:

We also use UCSC_gene to filter out variants that don't have matching gene models in Illumina Connected Annotations.

Pre-processing

Converting UCSC IDs

Primate AI only provides UCSC IDs. As an initial pre-processing step, we'll need to convert these to either Entrez or Ensembl Gene IDs.

The following queries are used to download the conversions from UCSC:

mysql -h genome-mysql.soe.ucsc.edu -u genome -A -P 3306 \
-e "select * FROM knownToLocusLink;" hg19 > ucsc_locuslink.tsv

mysql -h genome-mysql.soe.ucsc.edu -u genome -A -P 3306 \
-e "select knownToEnsembl.name, knownToEnsembl.value, ensGene.name2 FROM knownToEnsembl, ensGene WHERE knownToEnsembl.value = ensGene.name;" \
hg19 > ucsc_ensembl.tsv

Running the Pre-Processor

The Primate AI pre-processor can be run as follows:

dotnet PrimateAiPreProcessor.dll UGA_develop.tsv PrimateAI_scores_v0.2.tsv.gz \
ucsc_locuslink.tsv ucsc_ensembl.tsv PrimateAI_0.2_GRCh37.tsv.gz

During conversion, 0.5% of the UCSC Ids cannot be converted to either Entrez or Ensembl gene IDs. Once the gene IDs have been acquired, we check to see which are available in Illumina Connected Annotations.

The following Entrez Gene IDs were not found:

399753
401980
504189
504191
100293534

Here is the output from the pre-processor:

- loading UCSC to Entrez Gene ID dictionary... 73,432 genes loaded.
- loading UCSC to Ensembl Gene ID dictionary... 76,178 genes loaded.
- loading UGA gene ID to gene dictionary... 103,277 genes loaded.
- parsing Primate AI variants... 70,121,953 variants parsed.

# variants with unknown gene ID: 27,253 / 70,121,953
# genes with unknown gene ID: 109 / 19,614

# variants not in UGA: 2,036 / 70,121,953
# genes not in UGA: 6 / 19,614

Known Issues

Known Issues

The Primate AI data set provides raw scores, but the scores are biased according to gene context. I.e. a 0.4 means something different in TP53 than it does in KRAS.

As a result, the Primate AI team provided guidance on aggregating these scores and presenting them as percentiles with respect to the associated gene. According to their research, the 25th percentile is a good proxy for benign variants and the 75th percentile is a good proxy for pathogenic variants.

Download URL

https://basespace.illumina.com/s/cPgCSmecvhb4

JSON Output

GRCh38

"primateAI-3D": [
{
"aminoAcidPosition": 2,
"refAminoAcid": "V",
"altAminoAcid": "M",
"score": 0.616944,
"scorePercentile": 0.52,
"ensemblTranscriptId": "ENST00000335137.4",
"refSeqTranscriptId": "NM_001005484.1"
}
]
FieldTypeNotes
aminoAcidPositionintAmino Acid Position (1-based)
refAminoAcidstringReference Amino Acid
altAminoAcidstringAlternate Amino Acid
ensemblTranscriptIdstringTranscript ID (Ensembl)
refSeqTranscriptIdstringTranscript ID (RefSeq)
scorePercentilefloatrange: 0 - 1.0
scorefloatrange: 0 - 1.0

GRCh37

"primateAI": [
{
"hgnc":"TP53",
"scorePercentile":0.3,
}
]
FieldTypeNotes
hgncstringHGNC Gene Symbol
scorePercentilefloatrange: 0 - 1.0
- - + + \ No newline at end of file diff --git a/3.22/data-sources/revel-json/index.html b/3.22/data-sources/revel-json/index.html index 5499ce5d..0eb0bd2e 100644 --- a/3.22/data-sources/revel-json/index.html +++ b/3.22/data-sources/revel-json/index.html @@ -6,13 +6,13 @@ revel-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

revel-json

"revel":{ 
"score":0.027
}
FieldTypeNotes
scorefloatRange: 0 - 1.0
- - + + \ No newline at end of file diff --git a/3.22/data-sources/revel/index.html b/3.22/data-sources/revel/index.html index 3abdeb62..340626f8 100644 --- a/3.22/data-sources/revel/index.html +++ b/3.22/data-sources/revel/index.html @@ -6,13 +6,13 @@ REVEL | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

REVEL

Overview

REVEL is an ensemble method for predicting the pathogenicity of missense variants based on a combination of scores from 13 individual tools: MutPred, FATHMM v2.3, VEST 3.0, PolyPhen-2, SIFT, PROVEAN, MutationAssessor, MutationTaster, LRT, GERP++, SiPhy, phyloP, and phastCons.

Publication

Ioannidis, N. M. et al. REVEL: An Ensemble Method for Predicting the Pathogenicity of Rare Missense Variants. The American Journal of Human Genetics 99, 877-885 (2016). https://doi.org/10.1016/j.ajhg.2016.08.016

CSV File

Example

chr,hg19_pos,grch38_pos,ref,alt,aaref,aaalt,REVEL
1,35142,35142,G,A,T,M,0.027
1,35142,35142,G,C,T,R,0.035
1,35142,35142,G,T,T,K,0.043
1,35143,35143,T,A,T,S,0.018
1,35143,35143,T,C,T,A,0.034

Parsing

From the CSV file, we're mainly interested in the following columns:

  • chr
  • hg19_pos
  • grch38_pos
  • ref
  • alt
  • REVEL

Known Issues

Sorting

Since the input file contains positions for both GRCh37 and GRCh38, we split it into two TSV files (for the sake of better readability) with identical format. The positions for GRCh37 were sorted but not for GRCh38. So we re-sort the variants by position in the GRCh38 file.

Conflicting Scores

When there are multiple scores available for the same variant (i.e. the same position with the same alternative allele), we pick the highest score.

Download URL

https://sites.google.com/site/revelgenomics/downloads

JSON Output

"revel":{ 
"score":0.027
}
FieldTypeNotes
scorefloatRange: 0 - 1.0
- - + + \ No newline at end of file diff --git a/3.22/data-sources/splice-ai-json/index.html b/3.22/data-sources/splice-ai-json/index.html index 6ec13960..0f03d9f1 100644 --- a/3.22/data-sources/splice-ai-json/index.html +++ b/3.22/data-sources/splice-ai-json/index.html @@ -6,13 +6,13 @@ splice-ai-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

splice-ai-json

"spliceAI":[ 
{
"hgnc":"BLCAP",
"acceptorGainDistance":-3,
"acceptorGainScore":0.3,
"donorLossDistance":7,
"donorLossScore":0.9
},
{
"hgnc":"NNAT",
"acceptorGainDistance":-1,
"acceptorGainScore":0.2,
"donorGainDistance":-2,
"donorGainScore":0.3
}
]
FieldTypeNotes
hgncstringHGNC gene symbol
acceptorGainDistanceint± bp from current position
acceptorGainScorefloatrange: 0 - 1.0. 1 decimal place
acceptorLossDistanceint± bp from current position
acceptorLossScorefloatrange: 0 - 1.0. 1 decimal place
donorGainDistanceint± bp from current position
donorGainScorefloatrange: 0 - 1.0. 1 decimal place
donorLossDistanceint± bp from current position
donorLossScorefloatrange: 0 - 1.0. 1 decimal place
- - + + \ No newline at end of file diff --git a/3.22/data-sources/splice-ai/index.html b/3.22/data-sources/splice-ai/index.html index 473c90a8..92dc5ad8 100644 --- a/3.22/data-sources/splice-ai/index.html +++ b/3.22/data-sources/splice-ai/index.html @@ -6,13 +6,13 @@ Splice AI | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Splice AI

Overview

SpliceAI, a 32-layer deep neural network, predicts splicing from a pre-mRNA sequence.

Publication

K. Jaganathan, et al. Predicting splicing from primary sequence with deep learning. Cell, 176 (3) (2019), pp. 535-548 e24

Professional data source

This is a Professional data source and is not available freely. Please contact annotation_support@illumina.com if you would like to obtain it.

VCF File

Example

##fileformat=VCFv4.0
##assembly=GRCh37/hg19
##INFO=<ID=SYMBOL,Number=1,Type=String,Description="HGNC gene symbol">
##INFO=<ID=STRAND,Number=1,Type=String,Description="+ or - depending on whether the gene lies in the positive or negative strand">
##INFO=<ID=TYPE,Number=1,Type=String,Description="E or I depending on whether the variant position is exonic or intronic (GENCODE V24lift37 canonical annotation)">
##INFO=<ID=DIST,Number=1,Type=Integer,Description="Distance between the variant position and the closest splice site (GENCODE V24lift37 canonical annotation)">
##INFO=<ID=DS_AG,Number=1,Type=Float,Description="Delta score (acceptor gain)">
##INFO=<ID=DS_AL,Number=1,Type=Float,Description="Delta score (acceptor loss)">
##INFO=<ID=DS_DG,Number=1,Type=Float,Description="Delta score (donor gain)">
##INFO=<ID=DS_DL,Number=1,Type=Float,Description="Delta score (donor loss)">
##INFO=<ID=DP_AG,Number=1,Type=Integer,Description="Delta position (acceptor gain) relative to the variant position">
##INFO=<ID=DP_AL,Number=1,Type=Integer,Description="Delta position (acceptor loss) relative to the variant position">
##INFO=<ID=DP_DG,Number=1,Type=Integer,Description="Delta position (donor gain) relative to the variant position">
##INFO=<ID=DP_DL,Number=1,Type=Integer,Description="Delta position (donor loss) relative to the variant position">
#CHROM POS ID REF ALT QUAL FILTER INFO
10 92946 . C T . . SYMBOL=TUBB8;STRAND=-;TYPE=E;DIST=-53;DS_AG=0.0000;DS_AL=0.0000;DS_DG=0.0000;DS_DL=0.0000;DP_AG=-26;DP_AL=-10;DP_DG=3;DP_DL=35
10 92946 . C G . . SYMBOL=TUBB8;STRAND=-;TYPE=E;DIST=-53;DS_AG=0.0008;DS_AL=0.0000;DS_DG=0.0003;DS_DL=0.0000;DP_AG=34;DP_AL=-27;DP_DG=35;DP_DL=1
10 92946 . C A . . SYMBOL=TUBB8;STRAND=-;TYPE=E;DIST=-53;DS_AG=0.0004;DS_AL=0.0000;DS_DG=0.0001;DS_DL=0.0000;DP_AG=-10;DP_AL=-48;DP_DG=35;DP_DL=-21
10 92947 . A C . . SYMBOL=TUBB8;STRAND=-;TYPE=E;DIST=-54;DS_AG=0.0002;DS_AL=0.0000;DS_DG=0.0000;DS_DL=0.0000;DP_AG=-49;DP_AL=-11;DP_DG=0;DP_DL=34
10 92947 . A T . . SYMBOL=TUBB8;STRAND=-;TYPE=E;DIST=-54;DS_AG=0.0002;DS_AL=0.0000;DS_DG=0.0000;DS_DL=0.0000;DP_AG=33;DP_AL=-11;DP_DG=-22;DP_DL=34
10 92947 . A G . . SYMBOL=TUBB8;STRAND=-;TYPE=E;DIST=-54;DS_AG=0.0006;DS_AL=0.0000;DS_DG=0.0001;DS_DL=0.0000;DP_AG=33;DP_AL=-11;DP_DG=34;DP_DL=32

Parsing

From the VCF file, we're mainly interested in the following columns:

  • DS_AG - Δ score (acceptor gain)
  • DS_AL - Δ score (acceptor loss)
  • DS_DG - Δ score (donor gain)
  • DS_DL - Δ score (donor loss)
  • DP_AG - Δ position (acceptor gain) relative to the variant position
  • DP_AL - Δ position (acceptor loss) relative to the variant position
  • DP_DG - Δ position (donor gain) relative to the variant position
  • DP_DL - Δ position (donor loss) relative to the variant position

The Splice AI team suggests the following interpretation for the scores:

RangeConfidencePathogenicity
0 ≤ x < 0.1lowlikely benign
0.1 ≤ x ≤ 0.5mediumlikely pathogenic
x > 0.5highpathogenic

Pre-processing

Filtering

Splice AI provides a comprehensive list of entries throughout the genome. However, many of the entries have little value. I.e. observing low splice scores in intergenic regions. Not only do these extra entries require more storage, but the unused content has a negative impact on annotation speed.

As a result, Illumina Connected Annotations filters out all the values in the low confidence tier except for regions within 15 bp of nascent splice sites. For those regions, we found it useful to see if Splice AI predicted an interruption of the splicing mechanism.

Download URL

https://basespace.illumina.com/s/5u6ThOblecrh

JSON Output

"spliceAI":[ 
{
"hgnc":"BLCAP",
"acceptorGainDistance":-3,
"acceptorGainScore":0.3,
"donorLossDistance":7,
"donorLossScore":0.9
},
{
"hgnc":"NNAT",
"acceptorGainDistance":-1,
"acceptorGainScore":0.2,
"donorGainDistance":-2,
"donorGainScore":0.3
}
]
FieldTypeNotes
hgncstringHGNC gene symbol
acceptorGainDistanceint± bp from current position
acceptorGainScorefloatrange: 0 - 1.0. 1 decimal place
acceptorLossDistanceint± bp from current position
acceptorLossScorefloatrange: 0 - 1.0. 1 decimal place
donorGainDistanceint± bp from current position
donorGainScorefloatrange: 0 - 1.0. 1 decimal place
donorLossDistanceint± bp from current position
donorLossScorefloatrange: 0 - 1.0. 1 decimal place
- - + + \ No newline at end of file diff --git a/3.22/data-sources/topmed-json/index.html b/3.22/data-sources/topmed-json/index.html index 47c8830b..a4d328d3 100644 --- a/3.22/data-sources/topmed-json/index.html +++ b/3.22/data-sources/topmed-json/index.html @@ -6,13 +6,13 @@ topmed-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

topmed-json

"topmed":{ 
"allAc":20,
"allAn":125568,
"allAf":0.000159,
"allHc":0,
"failedFilter":true
}
FieldTypeNotes
allAcintTOPMed allele count
allAnintTOPMed allele number. Non-zero integer.
allAffloatTOPMed allele frequency (computed by Illumina Connected Annotations)
allHcintTOPMed homozygous count
failedFilterboolTrue if this variant failed any filters
- - + + \ No newline at end of file diff --git a/3.22/data-sources/topmed/index.html b/3.22/data-sources/topmed/index.html index 49104f25..77d59e24 100644 --- a/3.22/data-sources/topmed/index.html +++ b/3.22/data-sources/topmed/index.html @@ -6,13 +6,13 @@ TOPMed | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

TOPMed

Overview

The Trans-Omics for Precision Medicine (TOPMed) program, sponsored by the National Institutes of Health (NIH) National Heart, Lung and Blood Institute (NHLBI), is part of a broader Precision Medicine Initiative, which aims to provide disease treatments tailored to an individual’s unique genes and environment. TOPMed contributes to this Initiative through the integration of whole-genome sequencing (WGS) and other omics (e.g., metabolic profiles, epigenomics, protein and RNA expression patterns) data with molecular, behavioral, imaging, environmental, and clinical data.

Publication

Kowalski, M.H., Qian, H., Hou, Z., Rosen, J.D., Tapia, A.L., Shan, Y., Jain, D., Argos, M., Arnett, D.K., Avery, C. and Barnes, K.C., 2019. Use of> 100,000 NHLBI Trans-Omics for Precision Medicine (TOPMed) Consortium whole genome sequences improves imputation quality and detection of rare variant associations in admixed African and Hispanic/Latino populations. PLoS genetics, 15(12), p.e1008500.

VCF extraction

We currently extract the following fields from TOPMed VCF file:

##INFO=<ID=AN,Number=1,Type=Integer,Description="Number of Alleles in Samples with Coverage">
##INFO=<ID=AC,Number=A,Type=Integer,Description="Alternate Allele Counts in Samples with Coverage">
##INFO=<ID=AF,Number=A,Type=Float,Description="Alternate Allele Frequencies">
##INFO=<ID=Het,Number=A,Type=Integer,Description="Number of samples with heterozygous genotype calls">
##INFO=<ID=Hom,Number=A,Type=Integer,Description="Number of samples with homozygous alternate genotype calls">

Example:

chr1    10132   TOPMed_freeze_5?chr1:10,132     T       C       255     SVM     VRT=1;NS=62784;AN=125568;AC=32;AF=0.000254842;Het=32;Hom=0      NA:FRQ  125568:0.000254842

GRCh37 liftover

The data is not available for GRCh37 on TOPMed website. We performed a liftover from GRCh38 to GRCh37 using dbSNP ids.

Download URL

https://bravo.sph.umich.edu/freeze5/hg38/download

JSON output

"topmed":{ 
"allAc":20,
"allAn":125568,
"allAf":0.000159,
"allHc":0,
"failedFilter":true
}
FieldTypeNotes
allAcintTOPMed allele count
allAnintTOPMed allele number. Non-zero integer.
allAffloatTOPMed allele frequency (computed by Illumina Connected Annotations)
allHcintTOPMed homozygous count
failedFilterboolTrue if this variant failed any filters
- - + + \ No newline at end of file diff --git a/3.22/file-formats/custom-annotations/index.html b/3.22/file-formats/custom-annotations/index.html index 242f398f..02bd18ae 100644 --- a/3.22/file-formats/custom-annotations/index.html +++ b/3.22/file-formats/custom-annotations/index.html @@ -6,8 +6,8 @@ Custom Annotations | IlluminaConnectedAnnotations - - + +
@@ -34,7 +34,7 @@ chromosome, svLength, cytogeneticBand, etc. The title should also not conflict with other data source keys like clingen or dgv.

caution

Care should be taken not to annotate using multiple custom annotations that all use the same title.

Genome Assemblies

The following genome assemblies can be specified:

Matching Criteria

The matching criteria instructs how Illumina Connected Annotations should match a VCF variant to the custom annotation.

The following matching criteria can be specified:

Categories

Categories are not used by Illumina Connected Annotations, but are often used by downstream tools. Categories provide hints for how those tools should filter or display the annotation data.

When a category is specified, Illumina Connected Annotations will provide additional validation for those fields. The following table describes each category:

CategoryDescriptionValidation
AlleleCountallele counts for a specific populationSee the supported populations below
AlleleNumberallele numbers for a specific populationSee the supported populations below
AlleleFrequencyallele frequencies for a specific populationSee the supported populations below
PredictionACMG-style pathogenicity classificationsbenign (B)
likely benign (LB)
VUS
likely pathogenic (LP)
pathogenic (P)
Filterfree text that signals downstream tools to add the column to the filterMax 20 characters
Descriptionfree-text descriptionMax 100 characters
Identifierany IDMax 50 characters
HomozygousCountcount of homozygous individuals for a specific populationSee the supported populations below
Scoreany score valueAny double-precision floating point number

Descriptions

Descriptions are used to add more context to the categories. For now, descriptions are mainly used to associate allele counts, numbers, and frequencies with their respective populations.

Populations

The following populations were specified in the HapMap project, 1000 Genomes Project, ExAC, and gnomAD.

Population CodeSuper-population CodeDescription
ACBAFRAfrican Caribbeans in Barbados
AFRAFRAfrican
ALLALLAll populations
AMRAMRAd Mixed American
ASJAshkenazi Jewish
ASWAFRAmericans of African Ancestry in SW USA
BEBSASBengali from Bangladesh
CDXEASChinese Dai in Xishuangbanna, China
CEUEURUtah Residents (CEPH) with Northern and Western European Ancestry
CHBEASHan Chinese in Beijing, China
CHSEASSouthern Han Chinese
CLMAMRColombians from Medellin, Colombia
EASEASEast Asian
ESNAFREsan in Nigeria
EUREUREuropean
FINEURFinnish in Finland
GBREURBritish in England and Scotland
GIHSASGujarati Indian from Houston, Texas
GWDAFRGambian in Western Divisions in the Gambia
IBSEURIberian population in Spain
ITUSASIndian Telugu from the UK
JPTEASJapanese in Tokyo, Japan
KHVEASKinh in Ho Chi Minh City, Vietnam
LWKAFRLuhya in Webuye, Kenya
MAGAFRMandinka in the Gambia
MKKAFRMaasai in Kinyawa, Kenya
MSLAFRMende in Sierra Leone
MXLAMRMexican Ancestry from Los Angeles, USA
NFEEUREuropean (Non-Finnish)
OTHOTHOther
PELAMRPeruvians from Lima, Peru
PJLSASPunjabi from Lahore, Pakistan
PURAMRPuerto Ricans from Puerto Rico
SASSASSouth Asian
STUSASSri Lankan Tamil from the UK
TSIEURToscani in Italia
YRIAFRYoruba in Ibadan, Nigeria

Data Types

Each custom annotation can be one of the following data types:

tip

For boolean variables, only keys with a true value will be output to the JSON object.

Using SAUtils

Illumina Connected Annotations includes a tool called SAUtils that converts various data sources into Illumina Connected Annotations's native binary format. The sub-commands customvar and customgene are used to specify a variant file or a gene file respectively.

Convert Variant File

dotnet bin/Release/netcoreapp2.1/SAUtils.dll customvar \
-r Data/References/Homo_sapiens.GRCh37.Nirvana.dat \
-i MyDataSource.tsv \
-o SupplementaryAnnotation

Convert Gene File

dotnet bin/Release/netcoreapp2.1/SAUtils.dll customgene \
-r Data/References/Homo_sapiens.GRCh37.Nirvana.dat \
-c Data/Cache \
-i MyDataSource.tsv \
-o SupplementaryAnnotation
- - + + \ No newline at end of file diff --git a/3.22/file-formats/illumina-annotator-json-file-format/index.html b/3.22/file-formats/illumina-annotator-json-file-format/index.html index 330cfd88..24935486 100644 --- a/3.22/file-formats/illumina-annotator-json-file-format/index.html +++ b/3.22/file-formats/illumina-annotator-json-file-format/index.html @@ -6,13 +6,13 @@ Illumina Connected Annotations JSON File Format | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Illumina Connected Annotations JSON File Format

Overview

Conventions

In the Illumina Connected Annotations JSON representation, we try to maximize the amount of useful information that is relayed in the output file. As such, we have several conventions that are useful to know about:

  • With boolean key/value pairs, we only output the keys that have a true value. I.e. there's no reason to display "isStructuralVariant":false a few million times when annotating a small variant VCF.
  • When transferring data from the VCF file to the JSON (e.g. for allele depths (AD)), it is common to use a period (.) as a placeholder for missing data in the VCF file. Illumina Connected Annotations treats periods like empty or null strings and therefore will not output those entries.

JSON Layout

info

In general, each position corresponds to a row in the original VCF file.

For each gene that was referenced in the transcripts found in the positions section, there will be additional gene-level annotation in the gene section.

Parsing

info

We've put together a new section that discusses how to parse our JSON files easily using examples in a Python Jupyter notebook and a R version as well. In addition, we have information about how to quickly dump content from our JSON file using a tabix-like utility called JASIX.

{
"header":{
"annotator":"IlluminaConnectedAnnotations 3.0.0-alpha.5+g6c52e247",
"creationTime":"2017-06-14 15:53:13",
"genomeAssembly":"GRCh37",
"dataSources":[
{
"name":"OMIM",
"version":"unknown",
"description":"An Online Catalog of Human Genes and Genetic Disorders",
"releaseDate":"2017-05-03"
},
{
"name":"VEP",
"version":"84",
"description":"BothRefSeqAndEnsembl",
"releaseDate":"2017-01-16"
},
{
"name":"ClinVar",
"version":"20170503",
"description":"A freely accessible, public archive of reports of the relationships among human variations and phenotypes, with supporting evidence",
"releaseDate":"2017-05-03"
},
{
"name":"phyloP",
"version":"hg19",
"description":"46 way conservation score between humans and 45 other vertebrates",
"releaseDate":"2009-11-10"
}
],
"samples":[
"NA12878",
"NA12891",
"NA12892"
]
},
FieldTypeNotes
annotatorstringthe name of the annotator and the current version
creationTimestringyyyy-MM-dd hh:mm:ss
genomeAssemblystringsee possible values below
schemaVersionintegerincremented whenever the core structure of the JSON file introduces breaking changes
dataVersionstring
dataSourcesobject arraysee Data Source entry below
samplesstring arraythe order of these sample names will be used throughout the JSON file when enumerating samples

Data Source

FieldTypeNotes
namestring
versionstring
descriptionstringoptional description of the data source
releaseDatestringyyyy-MM-dd

Genome Assemblies

  • GRCh37
  • GRCh38
  • hg19
  • SARSCoV2

Positions

"positions":[
{
"chromosome":"chr2",
"position":48010488,
"repeatUnit":"GGCCCC",
"refRepeatCount":3,
"svEnd":48020488,
"refAllele":"G",
"altAlleles":[
"A",
"GT"
],
"quality":461,
"filters":[
"PASS"
],
"ciPos":[
-170,
170
],
"ciEnd":[
-175,
175
],
"svLength":1000,
"strandBias":1.23,
"jointSomaticNormalQuality":29,
"cytogeneticBand":"2p16.3",
FieldTypeVariant TypeNotes
chromosomestringallexactly as displayed in the vcf
positionintegerallexactly as displayed in the vcf (1-based notation). Range: 1 - 250 million
repeatUnitstringSTRprovided by ExpansionHunter
refRepeatCountintegerSTRprovided by ExpansionHunter
svEndintegerSV
refAllelestringallexactly as displayed in the vcf
altAllelestring arrayallexactly as displayed in the vcf
qualityfloatallexactly as displayed in the vcf (Normally an integer, but some variant callers using floating point. Has been observed as high as 500k)
filtersstring arrayallexactly as displayed in the vcf
ciPosinteger arraySV
ciEndinteger arraySV
svLengthintegerSV
strandBiasfloatsmall variantprovided by GATK (from SB)
jointSomaticNormalQualityintegerSVprovided by the Manta variant caller (SOMATICSCORE)
cytogeneticBandstringalle.g. 17p13.1

ClinGen

"clingen":[
{
"chromosome":"17",
"begin":525,
"end":14667519,
"variantType":"copy_number_gain",
"id":"nsv996083",
"clinicalInterpretation":"pathogenic",
"observedGains":1,
"validated":true,
"phenotypes":[
"Intrauterine growth retardation"
],
"phenotypeIds":[
"HP:0001511",
"MedGen:C1853481"
],
"reciprocalOverlap":0.00131
},
{
"chromosome":"17",
"begin":45835,
"end":7600330,
"variantType":"copy_number_loss",
"id":"nsv869419",
"clinicalInterpretation":"pathogenic",
"observedLosses":1,
"validated":true,
"phenotypes":[
"Developmental delay AND/OR other significant developmental or morphological phenotypes"
],
"reciprocalOverlap":0.00254
}
]
FieldTypeNotes
clingenobject array
chromosomestringEnsembl-style chromosome names
begininteger1-based position
endinteger1-based position
variantTypestringAny of the sequence alterations defined here.
idstringIdentifier from the data source. Alternatively a VID
clinicalInterpretationstringsee possible values below
observedGainsintegerRange: 0 - (231 - 1). Only used if copy_number_variation, copy_number_loss, or copy_number_gain.
observedLossesintegerRange: 0 - (231 - 1). Only used if copy_number_variation, copy_number_loss, or copy_number_gain.
validatedboolean
phenotypesstring arrayDescription of the phenotype.
phenotypeIdsstring arrayDescription of the phenotype IDs.
reciprocalOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).

clinicalInterpretation

  • benign
  • curated benign
  • curated pathogenic
  • likely benign
  • likely pathogenic
  • path gain
  • path loss
  • pathogenic
  • uncertain
"clingenDosageSensitivityMap": [{
"chromosome": "15",
"begin": 30900686,
"end": 32153204,
"haploinsufficiency": "sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype",
"triplosensitivity": "little evidence suggesting dosage sensitivity is associated with clinical phenotype",
"reciprocalOverlap": 0.00147,
"annotationOverlap": 0.33994
},
{
"chromosome": "15",
"begin": 31727418,
"end": 32153204,
"haploinsufficiency": "sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype",
"triplosensitivity": "dosage sensitivity unlikely",
"reciprocalOverlap": 0.00147,
"annotationOverlap": 1
}]
FieldTypeNotes
clingenDosageSensitivityMapobject array
chromosomestringEnsembl-style chromosome names
begininteger1-based position
endinteger1-based position
haploinsufficiencystringsee possible values below
triplosensitivitystring(same as haploinsufficiency) 
reciprocalOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).
annotationOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).

haploinsufficiency and triplosensitivity

  • no evidence to suggest that dosage sensitivity is associated with clinical phenotype
  • little evidence suggesting dosage sensitivity is associated with clinical phenotype
  • emerging evidence suggesting dosage sensitivity is associated with clinical phenotype
  • sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype
  • gene associated with autosomal recessive phenotype
  • dosage sensitivity unlikely

1000 Genomes (SV)

"oneKg":[
{
"chromosome":"1",
"begin":1595369,
"end":1612441,
"variantType": "copy_number_variation",
"id": "esv3635753;esv3635754;esv3635755;esv3635756;esv3635757",
"allAn": 5008,
"allAc": 2702,
"allAf": 0.539537,
"afrAf": 0.6052,
"amrAf": 0.3675,
"eurAf": 0.5357,
"easAf": 0.5368,
"sasAf": 0.5797,
"reciprocalOverlap": 0.07555
}
],
FieldTypeNotes
chromosomestring
begininteger
endinteger
variantTypestring
idstring
allAnintegerallele number for all populations. Non-zero integer.
allAcintegerallele count for all populations. Integer.
allAffloating pointallele frequency for all populations. Range: 0 - 1.0
afrAffloating pointallele frequency for the African super population. Range: 0 - 1.0
amrAffloating pointallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
eurAffloating pointallele frequency for the European super population. Range: 0 - 1.0
easAffloating pointallele frequency for the East Asian super population. Range: 0 - 1.0
sasAffloating pointallele frequency for the South Asian super population. Range: 0 - 1.0
reciprocalOverlapfloating pointrange: 0 - 1.

gnomAD (SV)

"gnomAD-preview": [
{
"chromosome": "1",
"begin": 40001,
"end": 47200,
"variantId": "gnomAD-SV_v2.1_DUP_1_1",
"variantType": "duplication",
"failedFilter": true,
"allAf": 0.068963,
"afrAf": 0.135694,
"amrAf": 0.022876,
"easAf": 0.01101,
"eurAf": 0.007846,
"othAf": 0.017544,
"femaleAf": 0.065288,
"maleAf": 0.07255,
"allAc": 943,
"afrAc": 866,
"amrAc": 21,
"easAc": 17,
"eurAc": 37,
"othAc": 2,
"femaleAc": 442,
"maleAc": 499,
"allAn": 13674,
"afrAn": 6382,
"amrAn": 918,
"easAn": 1544,
"eurAn": 4716,
"othAn": 114,
"femaleAn": 6770,
"maleAn": 6878,
"allHc": 91,
"afrHc": 90,
"amrHc": 1,
"easHc": 0,
"eurHc": 0,
"othHc": 55,
"femaleHc": 44,
"maleHc": 47,
"reciprocalOverlap": 0.01839,
"annotationOverlap": 0.16667
}
]

FieldTypeNotes
chromosomestringchromosome number
beginintegerposition interval start
endintegerposition internal end
variantTypestringstructural variant type
variantIdstringgnomAD ID
allAffloating pointallele frequency for all populations. Range: 0 - 1.0
afrAffloating pointallele frequency for the African super population. Range: 0 - 1.0
amrAffloating pointallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
easAffloating pointallele frequency for the East Asian super population. Range: 0 - 1.0
eurAffloating pointallele frequency for the European super population. Range: 0 - 1.0
othAffloating pointallele frequency for all other populations. Range: 0 - 1.0
femaleAffloating pointallele frequency for female population. Range: 0 - 1.0
maleAffloating pointallele frequency for male population. Range: 0 - 1.0
allAcintegerallele count for all populations.
afrAcintegerallele count for the African super population.
amrAcintegerallele count for the Ad Mixed American super population.
easAcintegerallele count for the East Asian super population.
eurAcintegerallele count for the European super population.
othAcintegerallele count for all other populations.
maleAcintegerallele count for male population.
femaleAcintegerallele count for female population.
allAnintegerallele number for all populations.
afrAnintegerallele number for the African super population.
amrAnintegerallele number for the Ad Mixed American super population.
easAnintegerallele number for the East Asian super population.
eurAnintegerallele number for the European super population.
othAnintegerallele number for all other populations.
femaleAnintegerallele number for female population.
maleAnintegerallele number for male population.
allHcintegercount of homozygous individuals for all populations.
afrHcintegercount of homozygous individuals for the African / African American population.
amrHcintegercount of homozygous individuals for the Latino population.
easHcintegercount of homozygous individuals for the East Asian population.
eurAcintegercount of homozygous individuals for the European super population.
othHcintegercount of homozygous individuals for all other populations.
maleHcintegercount of homozygous individuals for male population.
femaleHcintegercount of homozygous individuals for female population.
failedFilterbooleanTrue if this variant failed any filters (Note: we do not list the failed filters)
reciprocalOverlapfloating pointReciprocal overlap. Range: 0 - 1.0
annotationOverlapfloating pointReciprocal overlap. Range: 0 - 1.0

Note: Following fields are not available in GRCh38 because the source file does not contain this information:

Field
femaleAf
maleAf
maleAc
femaleAc
femaleAn
maleAn
allHc
afrHc
amrHc
easHc
eurAc
othHc
maleHc
femaleHc
failedFilter

MITOMAP (SV)

"mitomap":[ 
{
"chromosome":"MT",
"begin":3166,
"end":14152,
"variantType":"deletion",
"reciprocalOverlap":0.18068,
"annotationOverlap":0.42405
}
]
FieldTypeNotes
chromosomestring
begininteger
endinteger
variantTypestring array
reciprocalOverlapfloatRange: 0 - 1. Specified up to 5 decimal places
annotationOverlapfloatRange: 0 - 1. Specified up to 5 decimal places

Samples

"samples":[
{
"genotype":"0/1",
"variantFrequencies":[
0.333,
0.5
],
"totalDepth":57,
"genotypeQuality":12,
"copyNumber":3,
"repeatUnitCounts":[
10,
20
],
"alleleDepths":[
10,
20,
30
],
"failedFilter":true,
"splitReadCounts":[
10,
20
],
"pairedEndReadCounts":[
10,
20
],
"isDeNovo":true,
"diseaseAffectedStatuses":[
"-"
],
"artifactAdjustedQualityScore":89.3,
"likelihoodRatioQualityScore":78.2,
"heteroplasmyPercentile":[
23.13,
12.65
]
}
]
FieldTypeVCFNotes
genotypestringGT
variantFrequenciesfloat arrayVF, ADrange: 0 - 1.0. One value per alternate allele
totalDepthintegerDPnon-negative integer values
genotypeQualityintegerGQnon-negative integer values. Typically maxes out at 99
copyNumberintegerCNnon-negative integer values
minorHaplotypeCopyNumberintegerMCNnon-negative integer values
repeatUnitCountsinteger arrayREPCNExpansionHunter-specific
alleleDepthsinteger arrayADnon-negative integer values
failedFilterboolFT
splitReadCountsinteger arraySRManta-specific
pairedEndReadCountsinteger arrayPRManta-specific
isDeNovoboolDN
deNovoQualityfloatDQ
diseaseAffectedStatusesstring arrayDSTExpansionHunter-specific
artifactAdjustedQualityScorefloatAQPEPE-specific. Range: 0 - 100.0
likelihoodRatioQualityScorefloatLQPEPE-specific. Range: 0 - 100.0
lossOfHeterozygosityboolCN, MCN
somaticQualityfloatSQ
heteroplasmyPercentilefloatVFrange: 0 - 100. 2 decimal places. One value per alternate allele
binCountintegerBCnon-negative integer values
Empty Samples

If a sample does not contain any entries, we will create a sample object that contains the isEmpty key. This ensures that sample ordering is preserved while indicating that a sample is intentionally empty.

"samples":[
{
"isEmpty":true
}
],

Variants

"variants":[
{
"vid":"2:48010488:A",
"chromosome":"chr2",
"begin":48010488,
"end":48010488,
"isReferenceMinorAllele":true,
"isStructuralVariant":true,
"refAllele":"G",
"altAllele":"A",
"variantType":"SNV",
"isDecomposedVariant":true,
"isRecomposedVariant":true,
"linkedVids":["2:48010488:GTA:ATC"],
"hgvsg":"NC_000002.11:g.48010488G>A",
"phylopScore":0.459
FieldTypeNotes
vidstringsee Variant Identifiers
chromosomestring
beginint1-based non-negative integer values. Range: 1 - 250 million
endint1-based non-negative integer values. Range: 1 - 250 million
isReferenceMinorAllelebooltrue when this is a reference minor allele
isStructuralVariantbooltrue when the variant is a structural variant
inLowComplexityRegionbooltrue when the variant lies in a low complexity region (gnomAD low complexity regions)
refAllelestringparsimonious representation of the reference allele
altAllelestringparsimonious representation of the alternate allele.
variantTypestringuses Sequence Ontology sequence alterations
isDecomposedVariantbooltrue when the decomposed variant has been used to create another recomposed variant
isRecomposedVariantbooltrue when the variant is recomposed from two or more decomposed variants
linkedVidsstring arraylist of VIDs for variants connecting decomposed and recomposed variants
hgvsgstringHGVS g. notation
phylopScorefloatphyloP conservation score. Range: -14.08 to 6.424
Reference Minor Alleles

Illumina Connected Annotations supports annotating reference minor alleles. In such a case, refAllele will be replaced by the global major allele and altAllele will be replaced with the original reference allele.

Flagging Decomposed & Recomposed Variants

When two or more decomposed variants are recomposed into an MNV, the decomposed variants will be marked with "isDecomposedVariant":true.

Similarly, the recomposed variant will be shown as a new VCF position. This recomposed variant will be flagged with "isRecomposedVariant":true.

Transcripts

"transcripts":[
{
"transcript":"ENST00000445503.1",
"source":"Ensembl",
"bioType":"nonsense_mediated_decay",
"codons":"gGg/gAg",
"aminoAcids":"G/E",
"cdnaPos":"268",
"cdsPos":"116",
"exons":"1/9",
"introns":"1/8",
"proteinPos":"39",
"geneId":"ENSG00000116062",
"hgnc":"MSH6",
"consequence":[
"missense_variant",
"NMD_transcript_variant"
],
"hgvsc":"ENST00000445503.1:c.116G>A",
"hgvsp":"ENSP00000405294.1:p.(Gly39Glu)",
"geneFusion":{
"exon":6,
"intron":5,
"fusions":[
{
"hgvsc":"ETV6{ENST00000396373.4}:c.1_1009+3402_RUNX1{ENST00000437180.1}:c.58+568_1443",
"exon":3,
"intron":2
},
{
"hgvsc":"ETV6{ENST00000396373.4}:c.1_1009+3402_RUNX1{ENST00000300305.3}:c.58+568_1443",
"exon":2,
"intron":1
}
]
},
"isCanonical":true,
"polyPhenScore":0.95,
"polyPhenPrediction":"probably damaging",
"proteinId":"ENSP00000405294.1",
"siftScore":0.61,
"siftPrediction":"tolerated",
"completeOverlap":true
}
]
FieldTypeNotes
transcriptstringtranscript ID. e.g. ENST00000445503.1
sourcestringRefSeq / Ensembl
bioTypestringdescriptions of the biotypes from Ensembl
codonsstring
aminoAcidsstring
cdnaPosstring
cdsPosstring
exonsstringexons affected by the variant
intronsstringintrons affected by the variant
proteinPosstring
geneIdstringgene ID. e.g. ENSG00000116062
hgncstringgene symbol. e.g. MSH6
consequencestring arraySequence Ontology Consequences
hgvscstringHGVS coding nomenclature
hgvspstringHGVS protein nomenclature
geneFusionobjectsee Gene Fusions entry below
isCanonicalbooltrue when this is a canonical transcript
isManeSelectbooltrue when this is a MANE select transcript
polyPhenScorefloatrange: 0 - 1.0
polyPhenPredictionstringsee possible values below
proteinIdstringprotein ID. E.g. ENSP00000405294.1
siftScorefloatrange: 0 - 1.0
siftPredictionstringsee possible values below
completeOverlapbooltrue when this transcript is completely overlapped by the variant
cancerHotspotsstring arraysee Cancer Hotspots entry below
MANE Select

MANE select tags are only available for RefSeq transcripts on GRCh38.

PolyPhen

  • probably damaging
  • possibly damaging
  • benign
  • unknown

SIFT

  • tolerated
  • deleterious
  • tolerated - low confidence
  • deleterious - low confidence

Amino Acid Conservation

"aminoAcidConservation": {
"scores": [0.34]
}
FieldTypeNotes
aminoAcidConservationobject
scoresobject array of doublespercent conserved with respect to human amino acid residue. Range: 0.01 - 1.00

Gene Fusions

FieldTypeNotes
exonintactual exon where the breakpoint was located
intronintactual intron where the breakpoint was located
fusionsobject arraysee Fusion entry below

Fusion

FieldTypeNotes
exonintactual exon where the other breakpoint was located
intronintactual intron where the other breakpoint was located
hgvscstringHGVS coding nomenclature describing the two genes and the transcripts that are fused along with

Cancer Hotspots

FieldTypeNotes
residuestring
numSamplesinthow many samples are associated with a variant at the same amino acid position
numAltAminoAcidSamplesinthow many samples are associated with a variant with the same position and alternate amino acid position
qValuedouble

Regulatory Regions

"regulatoryRegions":[
{
"id":"ENSR00001542175",
"type":"promoter",
"consequence":[
"regulatory_region_variant"
]
}
]
FieldTypeNotes
idstring
typestringsee possible values below
consequencestring arraysee possible values below

Regulatory Types

  • CTCF_binding_site
  • enhancer
  • open_chromatin_region
  • promoter
  • promoter_flanking_region
  • TF_binding_site

Regulatory Consequences

  • regulatory_region_variant
  • regulatory_region_ablation
  • regulatory_region_amplification
  • regulatory_region_truncation

ClinVar

small variants:

"clinvar":[
{
"id":"VCV000036581.3",
"reviewStatus":"reviewed by expert panel",
"significance":[
"benign"
],
"refAllele":"G",
"altAllele":"A",
"lastUpdatedDate":"2020-03-01",
"isAlleleSpecific":true
},
{
"id":"RCV000030258.4",
"variationId":"VCV000036581.3",
"reviewStatus":"reviewed by expert panel",
"alleleOrigins":[
"germline"
],
"refAllele":"G",
"altAllele":"A",
"phenotypes":[
"Lynch syndrome"
],
"medGenIds":[
"C1333990"
],
"omimIds":[
"120435"
],
"significance":[
"benign"
],
"lastUpdatedDate":"2017-05-01",
"isAlleleSpecific":true
}
]

large variants:

"clinvar":[
{
"chromosome":"1",
"begin":629025,
"end":8537745,
"variantType":"copy_number_loss",
"id":"RCV000051993.4",
"variationId":"VCV000058242.1",
"reviewStatus":"criteria provided, single submitter",
"alleleOrigins":[
"not provided"
],
"phenotypes":[
"See cases"
],
"significance":[
"pathogenic"
],
"lastUpdatedDate":"2022-04-21",
"pubMedIds":[
"21844811"
]
},
{
"id":"VCV000058242.1",
"reviewStatus":"criteria provided, single submitter",
"significance":[
"pathogenic"
],
"lastUpdatedDate":"2022-04-21"
},
......
]
FieldTypeNotes
idstringClinVar ID
variationIdstringClinVar VCV ID
variantTypestringvariant type
reviewStatusstringsee possible values below
alleleOriginsstring arraysee possible values below
refAllelestring
altAllelestring
phenotypesstring array
medGenIdsstring arrayMedGen IDs
omimIdsstring arrayOMIM IDs
orphanetIdsstring arrayOrphanet IDs
significancestring arraysee possible values below
lastUpdatedDatestringyyyy-MM-dd
pubMedIdsstring arrayPubMed IDs
isAlleleSpecificbooltrue when the current variant alternate allele matches the ClinVar alternate allele

reviewStatus:

  • no assertion provided
  • no assertion criteria provided
  • criteria provided, single submitter
  • practice guideline
  • classified by multiple submitters
  • criteria provided, conflicting interpretations
  • criteria provided, multiple submitters, no conflicts
  • no interpretation for the single variant

alleleOrigins:

  • unknown
  • other
  • germline
  • somatic
  • inherited
  • paternal
  • maternal
  • de-novo
  • biparental
  • uniparental
  • not-tested
  • tested-inconclusive

significance:

  • uncertain significance
  • not provided
  • benign
  • likely benign
  • likely pathogenic
  • pathogenic
  • drug response
  • histocompatibility
  • association
  • risk factor
  • protective
  • affects
  • conflicting data from submitters
  • other
  • no interpretation for the single variant
  • conflicting interpretations of pathogenicity

1000 Genomes

"oneKg":{
"allAf":0.200879,
"afrAf":0.210287,
"amrAf":0.139769,
"easAf":0.275794,
"eurAf":0.181909,
"sasAf":0.173824,
"allAn":5008,
"afrAn":1322,
"amrAn":694,
"easAn":1008,
"eurAn":1006,
"sasAn":978,
"allAc":1006,
"afrAc":278,
"amrAc":97,
"easAc":278,
"eurAc":183,
"sasAc":170
}
FieldTypeNotes
allAffloatallele frequency for all populations. Range: 0 - 1.0
allAcintallele count for all populations. Integer.
allAnintallele number for all populations. Non-zero integer.
afrAffloatallele frequency for the African super population. Range: 0 - 1.0
afrAcintallele count for the African super population. Integer.
afrAnintallele number for the African super population. Non-zero integer.
amrAffloatallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
amrAcintallele count for the Ad Mixed American super population. Integer.
amrAnintallele number for the Ad Mixed American super population. Non-zero integer.
easAffloatallele frequency for the East Asian super population. Range: 0 - 1.0
easAcintallele count for the East Asian super population. Integer.
easAnintallele number for the East Asian super population. Non-zero integer.
eurAffloatallele frequency for the European super population. Range: 0 - 1.0
eurAcintallele count for the European super population. Integer.
eurAnintallele number for the European super population. Non-zero integer.
sasAffloatallele frequency for the South Asian super population. Range: 0 - 1.0
sasAcintallele count for the South Asian super population. Integer.
sasAnintallele number for the South Asian super population. Non-zero integer.

DANN

"dannScore": 0.27
FieldTypeNotes
dannScorefloatRange: 0 - 1.0

dbSNP

"dbsnp":[
"rs1042821"
]
FieldTypeNotes
dbsnpstring arraydbSNP rsIDs

DECIPHER

"decipher":[
{
"chromosome":"1",
"begin":13516,
"end":91073,
"numDeletions":27,
"deletionFrequency":0.675,
"numDuplications":27,
"duplicationFrequency":0.675,
"sampleSize":40,
"reciprocalOverlap": 0.27555,
"annotationOverlap": 0.5901
}
],
FieldTypeNotes
chromosomeintEnsembl-style chromosome names
beginint1-based position
endint1-based position
numDeletionsint# of observed deletions
deletionFrequencyfloatdeletion frequency
numDuplicationsint# of observed duplications
duplicationFrequencyfloatduplication frequency
sampleSizeinttotal # of samples
reciprocalOverlapfloatRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap
annotationOverlapfloatRange: 0 - 1. E.g. 0.57 would indicate a 57% annotation overlap

GERP

"gerpScore": 1.27
FieldTypeNotes
gerpScorefloatRange: -∞ to +∞

GME Variome

"gmeVariome":{
"allAc":10,
"allAn":202,
"allAf":0.049504,
"failedFilter":true
}
FieldTypeNotes
allAcintGME allele count
allAnintGME allele number
allAffloatGME allele frequency
failedFilterboolTrue if this variant failed any filters

gnomAD

"gnomad":{ 
"coverage":20,
"allAf":0.190317,
"maleAf":0.193,
"femaleAf": 0.1935,
"afrAf":0.222876,
"amrAf":0.121394,
"easAf":0.239802,
"finAf":0.136833,
"nfeAf":0.181282,
"asjAf":0.258278,
"othAf":0.186094,
"allAn":30796,
"maleAn":15096,
"femaleAn":15700
"afrAn":8664,
"amrAn":832,
"easAn":1618,
"finAn":3486,
"nfeAn":14916,
"asjAn":302,
"othAn":978,
"allAc":5861,
"maleAc":2930,
"femaleAc": 2931,
"afrAc":1931,
"amrAc":101,
"easAc":388,
"finAc":477,
"nfeAc":2704,
"asjAc":78,
"othAc":182,
"allHc":561,
"afrHc":208,
"amrHc":6,
"easHc":42,
"finHc":31,
"nfeHc":242,
"asjHc":13,
"othHc":19,
"maleHc":280,
"femaleHc":281,
"controlsAllAf":0.190317,
"controlsAllAn":30796,
"controlsAllAc":5861,
"lowComplexityRegion":true,
"failedFilter":true
}
FieldTypeNotes
coverageintaverage coverage (non-negative integer values)
allAffloatallele frequency for all populations. Range: 0 - 1.0
maleAffloatallele frequency for male population. Range: 0 - 1.0
femaleAffloatallele frequency for female population. Range: 0 - 1.0
controlsAllAffloatallele frequency for the controls subset. Range: 0 - 1.0
allAcintallele count for all populations. Integer.
maleAcintallele count for male population. Integer.
femaleAcintallele count for female population. Integer.
controlsAllAcintallele count for the controls subset. Integer.
allAnintallele number for all populations. Non-zero integer.
maleAnintallele number for male population. Non-zero integer.
femaleAnintallele number for female population. Non-zero integer.
controlsAllAnintallele number for the controls subset. Non-zero integer.
allHcintcount of homozygous individuals for all populations. Non-negative integer.
maleHcintcount of homozygous individuals for male population. Non-negative integer.
femaleHcintcount of homozygous individuals for female population. Non-negative integer.
afrAffloatallele frequency for the African / African American population. Range: 0 - 1.0
afrAcintallele count for the African / African American population. Integer.
afrAnintallele number for the African / African American population. Non-zero integer.
afrHcintcount of homozygous individuals for African / African American population. Non-negative integer.
amrAffloatallele frequency for the Latino population. Range: 0 - 1.0
amrAcintallele count for the Latino population. Integer.
amrAnintallele number for the Latino population. Non-zero integer.
amrHcintcount of homozygous individuals for Latino population. Non-negative integer.
easAffloatallele frequency for the East Asian population. Range: 0 - 1.0
easAcintallele count for the East Asian population. Integer.
easAnintallele number for the East Asian population. Non-zero integer.
easHcintcount of homozygous individuals for East Asian population. Non-negative integer.
finAffloatallele frequency for the Finnish population. Range: 0 - 1.0
finAcintallele count for the Finnish population. Integer.
finAnintallele number for the Finnish population. Non-zero integer.
finHcintcount of homozygous individuals for Finnish population. Non-negative integer
nfeAffloatallele frequency for the Non-Finnish European population. Range: 0 - 1.0
nfeAcintallele count for the Non-Finnish European population. Integer.
nfeAnintallele number for the Non-Finnish European population. Non-zero integer.
nfeHcintcount of homozygous individuals for Non-Finnish European population. Non-negative integer
othAffloatallele frequency for the Other population. Range: 0 - 1.0
othAcintallele count for the Other population. Integer.
othAnintallele number for the Other population. Non-zero integer.
othHcintcount of homozygous individuals for Other population. Non-negative integer
asjAffloatallele frequency for the Ashkenazi Jewish population. Range: 0 - 1.0
asjAcintallele count for the Ashkenazi Jewish population Integer.
asjAnintallele number for the Ashkenazi Jewish population. Non-zero integer.
asjHcintcount of homozygous individuals for the Ashkenazi Jewish population. Non-negative integer
sasAffloatallele frequency for the South Asian population. Range: 0 - 1.0
sasAcintallele count for the South Asian population Integer.
sasAnintallele number for the South Asian population. Non-zero integer.
sasHcintcount of homozygous individuals for the South Asian population. Non-negative integer.
failedFilterboolTrue if this variant failed any filters (Note: we do not list the failed filters)
lowComplexityRegionboolTrue if this variant is located in a low complexity region.

MITOMAP

"mitomap":[ 
{
"refAllele":"G",
"altAllele":"A",
"diseases":[
"Bipolar disorder",
"Melanoma"
],
"hasHomoplasmy":false,
"hasHeteroplasmy":true,
"status":"Reported",
"clinicalSignificance":"confirmed pathogenic",
"scorePercentile":83.30,
"numGenBankFullLengthSeqs":2,
"pubMedIds":["2316527","6299878","6301949"],
"isAlleleSpecific":true
}
]
FieldTypeNotes
refAllelestring
altAllelestring
diseasesstring arrayassociated diseases
hasHomoplasmyboolean
hasHeteroplasmyboolean
statusstringrecord status
clinicalSignificancestringpredicted pathogenicity
scorePercentilefloatMitoTIP score
numGenBankFullLengthSeqsinteger# of GenBank full-length sequences
pubMedIdsstring array
isAlleleSpecificbooleantrue when the current variant alternate allele matches the MITOMAP alternate allele

Primate AI

GRCh38

"primateAI-3D": [
{
"aminoAcidPosition": 2,
"refAminoAcid": "V",
"altAminoAcid": "M",
"score": 0.616944,
"scorePercentile": 0.52,
"ensemblTranscriptId": "ENST00000335137.4",
"refSeqTranscriptId": "NM_001005484.1"
}
]
FieldTypeNotes
aminoAcidPositionintAmino Acid Position (1-based)
refAminoAcidstringReference Amino Acid
altAminoAcidstringAlternate Amino Acid
ensemblTranscriptIdstringTranscript ID (Ensembl)
refSeqTranscriptIdstringTranscript ID (RefSeq)
scorePercentilefloatrange: 0 - 1.0
scorefloatrange: 0 - 1.0

GRCh37

"primateAI": [
{
"hgnc":"TP53",
"scorePercentile":0.3,
}
]
FieldTypeNotes
hgncstringHGNC Gene Symbol
scorePercentilefloatrange: 0 - 1.0

REVEL

"revel":{ 
"score":0.027
}
FieldTypeNotes
scorefloatRange: 0 - 1.0

Splice AI

"spliceAI":[ 
{
"hgnc":"BLCAP",
"acceptorGainDistance":-3,
"acceptorGainScore":0.3,
"donorLossDistance":7,
"donorLossScore":0.9
},
{
"hgnc":"NNAT",
"acceptorGainDistance":-1,
"acceptorGainScore":0.2,
"donorGainDistance":-2,
"donorGainScore":0.3
}
]
FieldTypeNotes
hgncstringHGNC gene symbol
acceptorGainDistanceint± bp from current position
acceptorGainScorefloatrange: 0 - 1.0. 1 decimal place
acceptorLossDistanceint± bp from current position
acceptorLossScorefloatrange: 0 - 1.0. 1 decimal place
donorGainDistanceint± bp from current position
donorGainScorefloatrange: 0 - 1.0. 1 decimal place
donorLossDistanceint± bp from current position
donorLossScorefloatrange: 0 - 1.0. 1 decimal place

TOPMed

"topmed":{ 
"allAc":20,
"allAn":125568,
"allAf":0.000159,
"allHc":0,
"failedFilter":true
}
FieldTypeNotes
allAcintTOPMed allele count
allAnintTOPMed allele number. Non-zero integer.
allAffloatTOPMed allele frequency (computed by Illumina Connected Annotations)
allHcintTOPMed homozygous count
failedFilterboolTrue if this variant failed any filters

Genes

Illumina Connected Annotations repots gene annotations for all genes that have an overlapping variant with the exception of flanking variants (i.e. variants that only cause upstream_gene_variant or downstream_gene_variant).

"genes":[
{
"name":"MSH6",
"hgncId":7329,
"summary":"This gene encodes a member of the DNA mismatch repair MutS family. In E. coli, the MutS protein helps in the recognition of mismatched nucleotides prior to their repair. A highly conserved region of approximately 150 aa, called the Walker-A adenine nucleotide binding motif, exists in MutS homologs. The encoded protein heterodimerizes with MSH2 to form a mismatch recognition complex that functions as a bidirectional molecular switch that exchanges ADP and ATP as DNA mismatches are bound and dissociated. Mutations in this gene may be associated with hereditary nonpolyposis colon cancer, colorectal cancer, and endometrial cancer. Transcripts variants encoding different isoforms have been described. [provided by RefSeq, Jul 2013]",
/* this is where gene-level data sources can be found e.g. OMIM */
}
]
FieldTypeNotes
namestringHGNC gene symbol
hgncIdintHGNC ID
summarystringshort description of the gene from OMIM

OMIM

"omim":[ 
{
"mimNumber":600678,
"geneName":"MutS, E. coli, homolog of, 6",
"description":"The transcription factor p53 responds to diverse cellular stresses to regulate target genes that induce cell cycle arrest, apoptosis, senescence, DNA repair, or changes in metabolism. In addition, p53 appears to induce apoptosis through nontranscriptional cytoplasmic processes. In unstressed cells, p53 is kept inactive essentially through the actions of the ubiquitin ligase MDM2, which inhibits p53 transcriptional activity and ubiquitinates p53 to promote its degradation. Numerous posttranslational modifications modulate p53 activity, most notably phosphorylation and acetylation. Several less abundant p53 isoforms also modulate p53 activity. Activity of p53 is ubiquitously lost in human cancer either by mutation of the p53 gene itself or by loss of cell signaling upstream or downstream of p53 (Toledo and Wahl, 2006; Bourdon, 2007; Vousden and Lane, 2007)",
"phenotypes":[
{
"mimNumber":614350,
"phenotype":"Colorectal cancer, hereditary nonpolyposis, type 5",
"description":"Hereditary nonpolyposis colorectal cancer type 5 is a cancer predisposition syndrome ...",
"mapping":"molecular basis of the disorder is known",
"inheritances":[
"Autosomal dominant"
]
},
{
"mimNumber":608089,
"phenotype":"Endometrial cancer, familial",
"mapping":"molecular basis of the disorder is known"
},
{
"mimNumber":276300,
"phenotype":"Mismatch repair cancer syndrome",
"description":"Constitutional mismatch repair deficiency is a rare childhood cancer predisposition syndrome ...",
"mapping":"molecular basis of the disorder is known",
"inheritances":[
"Autosomal recessive"
],
"comments" : [
"contribute to susceptibility to multifactorial disorders or to susceptibility to infection",
"unconfirmed or possibly spurious mapping"
]
}
]
}
]
FieldTypeNotes
mimNumberintOMIM ID for gene
geneNamestringgene name
descriptionstring
phenotypesobject arraysee Phenotype entry below

Phenotype

FieldTypeNotes
mimNumberint
phenotypestring
descriptionstring
mappingstringsee possible values below
inheritancestring arraysee possible values below
commentsstring arraysee possible values below

Mapping

  1. disorder was positioned by mapping of the wild type gene
  2. disease phenotype itself was mapped
  3. molecular basis of the disorder is known
  4. disorder is a chromosome deletion or duplication syndrome

Inheritance

  • autosomal recessive
  • autosomal dominant

Comments

  • contributes to the susceptibility to multifactorial disorders
  • variations that lead to apparently abnormal laboratory test values
  • unconfirmed mapping

gnomAD LoF Gene Metrics

"gnomAD":{ 
"pLi":1.00e0,
"pNull":8.94e-40,
"pRec":1.84e-16,
"synZ":-8.44e-2,
"misZ":5.96e-1,
"loeuf":1.13e0
}
FieldTypeNotes
pLifloatprobability of being intolerant of a single loss-of-function variant (like haploinsufficient genes, observed ~ 0.1*expected)
pNullfloatprobability of being completely tolerant of loss of function variation (observed = expected)
pRecfloatprobability of being intolerant of two loss of function variants (like recessive genes, observed ~ 0.5*expected)
synZfloatcorrected synonymous Z score
misZfloatcorrected missense Z score
loeuffloatloss of function observed/expected upper bound fraction (LOEUF)

ClinGen Disease Validity

"clingenGeneValidity":[
{
"diseaseId":"MONDO_0007893",
"disease":"Noonan syndrome with multiple lentigines",
"classification":"no reported evidence",
"classificationDate":"2018-06-07"
},
{
"diseaseId":"MONDO_0015280",
"disease":"cardiofaciocutaneous syndrome",
"classification":"no reported evidence",
"classificationDate":"2018-06-07"
}
]
FieldTypeNotes
clingenGeneValidityobject
diseaseIdstringMonarch Disease Ontology ID (MONDO)
diseasestringdisease label
classificationstringsee below for possible values
classificationDatestringyyyy-MM-dd

classification

  • no reported evidence
  • disputed
  • limited
  • moderate
  • definitive
  • strong
  • refuted
  • no known disease relationship

COSMIC Cancer Gene Census

   {
"name": "PRDM16",
"hgncId": 14000,
"ncbiGeneId": "63976",
"ensemblGeneId": "ENSG00000142611",
"cosmic": {
"roleInCancer": [
"oncogene",
"fusion"
]
}
}
FieldTypeNotes
roleInCancerstring arrayPossible roles in caner
- - + + \ No newline at end of file diff --git a/3.22/index.html b/3.22/index.html index 197f1e0c..1d8d8e06 100644 --- a/3.22/index.html +++ b/3.22/index.html @@ -6,8 +6,8 @@ Introduction | IlluminaConnectedAnnotations - - + +
@@ -15,7 +15,7 @@ The current officially supported versions are:

Data SourceVersionRelease Date
RefSeqGCF_000001405.40-RS_2023_032023-03-21
Ensembl1102023-04-27

In addition, it uses external data sources to provide additional context for each variant. Illumina Connected Annotations provides annotations from the following sources divided into 2 tiers: Professional and basic. The basic tier can be accessed free of charge. The professional tier requires a license. For access, please contact annotation_support@illumina.com.

Data SourceAvailabilityLatest Supported Version
Primate AI-3DProfessional1.0
Splice AIProfessional1.3
COSMICProfessional96
OMIMProfessional20231105
ClinVarBasic20231028
1000 Genomes ProjectBasicPhase 3 v3plus
DANNBasic20200205
dbSNPBasic156
DECIPHERBasic201509
GERPBasic20110522
GME VariomeBasic20160618
gnomADBasic3.1.2
MITOMAPBasic20200819
REVELBasic20200205
TOPMedBasicfreeze 5
Cancer HotspotsBasic2017
FusionCatcherBasic1.33
ClinGenBasic20231105
MultiZ 100 wayBasic20171006

Download

Please visit Illumina Connected Annotations.

- - + + \ No newline at end of file diff --git a/3.22/introduction/dependencies/index.html b/3.22/introduction/dependencies/index.html index aa8f64c8..afd2f0c3 100644 --- a/3.22/introduction/dependencies/index.html +++ b/3.22/introduction/dependencies/index.html @@ -6,13 +6,13 @@ Dependencies | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Dependencies

All of the following dependencies have been included in this repository.

NameLicenseUsage
Amazon.LambdaApacheAWS extensions for .NET CLI
AWSSDKApacheAWS Lambda, S3, SNS support
Json.NETMITJASIX utility
libdeflateMITBlockCompression library
MoqBSDMocking framework for unit tests
NDesk.OptionsMIT/X11CommandLine library
xUnitApacheUnit testing framework
zlib-ngzlibBlockCompression library
zstdBSDBlockCompression library
- - + + \ No newline at end of file diff --git a/3.22/introduction/getting-started/index.html b/3.22/introduction/getting-started/index.html index 3a6fae86..a087b79c 100644 --- a/3.22/introduction/getting-started/index.html +++ b/3.22/introduction/getting-started/index.html @@ -6,13 +6,13 @@ Getting Started | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Getting Started

Illumina Connected Annotations is written in C# using .NET Core (an amazing runtime environment that currently runs on Windows, Linux, Mac OS X, and in Docker images). Once .NET Core has been downloaded, all you need to do is grab the source, compile it, and grab the data files.

tip

Illumina Connected Annotations currently uses .NET6.0. Please make sure that you have the most current runtime from the .NET Core downloads page.

Getting Illumina Connected Annotations

Latest Release

Please visit Illumina Connected Annotations. to obtain the latest release.

mkdir -p IlluminaConnectedAnnotations/Data
cd IlluminaConnectedAnnotations
unzip IlluminaConnectedAnnotations-3.22.0-0-gc13dcb61-net6.0.zip

Quick Start

If you want to get started right away, we've created a script that unzips the Illumina Connected Annotations build, downloads the annotation data, and starts annotating a test file:

bash ./TestIlluminaConnectedAnnotations.sh IlluminaConnectedAnnotationsBuild.zip

We have verified that this script works on Windows (using Git Bash or WSL), Linux, and Mac OS X.

Docker

Obtain the docker image in a zip file (e.g. IlluminaConnectedAnnotations-3.22.0-0-gc13dcb61-net6.0-docker.tar.gz), and load it as follows

docker load < IlluminaConnectedAnnotations-3.22.0-0-gc13dcb61-net6.0-docker.tar.gz

If you want to build your own docker image, it is really easy to do. You just need to have Illumina Connected Annotations zip file and then download the Dockerfile and this script.

Put both files (create_docker_image.sh and Dockerfile) inside the same folder.

In terminal, execute command below inside the folder where you put those scripts:

chmod +x create_docker_image.sh
./create_docker_image.sh [path to zip file] [image tag]

After you run the script, the docker image will be available in your local machine with image name illumina-connected-annotations:[image tag specified].

For Docker, we have special instructions for running the Downloader:

docker run --rm -it -v local/data/folder:/scratch illumina-connected-annotations:v3.22.0 Downloader --ga GRCh37 -o /scratch

Similarly, we have special instructions for running IlluminaConnectedAnnotations (Here's a toy VCF in case you need it):

docker run --rm -it -v local/data/folder:/scratch illumina-connected-annotations:v3.22.0 IlluminaConnectedAnnotations -c /scratch/Cache/ \
-r /scratch/References/Homo_sapiens.GRCh37.Nirvana.dat \
--sd /scratch/SupplementaryAnnotation/GRCh37 \
-i /scratch/HiSeq.10000.vcf.gz -o /scratch/HiSeq
caution

Please note that since our data files are usually accessed through a Docker volume, there is a noticeable performance penalty when running Illumina Connected Annotations in Docker.

tip

For convenience, the user is encouraged to create aliases for the docker commands. For example:

alias IlluminaConnectedAnnotations="docker run --rm -it -v local/data/folder:/scratch illumina-connected-annotations:v3.22.0 IlluminaConnectedAnnotations"

Downloading the data files

To download the latest data sources (or update the ones that you already have), use the following command to automate the download from S3:

dotnet bin/Release/net6.0/Downloader.dll \
--ga GRCh37 \
-o Data
  • the --ga argument specifies the genome assembly which can be GRCh37, GRCh38, or both.
  • the -o argument specifies the output directory
Glitches in the Matrix

Every once in a while, the download process does not go smoothly. Perhaps the internet connection cut out or you ran out of disk space. The Downloader attempts to detect these situations by checking the file sizes at the very end. If you see that a file was marked truncated, try fixing the root cause and running the downloader again.

tip

From time to time, you can re-run the Downloader to get the latest annotation files. It will only download the files that changed.

Download a test VCF file

Here's a toy VCF file you can play around with:

curl -O https://illumina.github.io/IlluminaConnectedAnnotationsDocumentation/files/HiSeq.10000.vcf.gz

Running Illumina Connected Annotations

Once you have downloaded the data sets, use the following command to annotate your VCF:

dotnet Annotator.dll \
-c Data/Cache \
--sd Data/SupplementaryAnnotation/GRCh37 \
-r Data/References/Homo_sapiens.GRCh37.Nirvana.dat \
-i HiSeq.10000.vcf.gz \
-o HiSeq.10000
  • the -c argument specifies the cache directory
  • the --sd argument specifies the supplementary annotation directory
  • the -r argument specifies the compressed reference path
  • the -i argument specifies the input VCF path
  • the -o argument specifies the output filename prefix

When running Illumina Connected Annotations, performance metrics are shown as it evaluates each chromosome in the input VCF file:

---------------------------------------------------------------------------
Illumina Connected Annotations (c) 2023 Illumina, Inc.
3.22.0
---------------------------------------------------------------------------

Initialization Time Positions/s
---------------------------------------------------------------------------
Cache 00:00:00.0
SA Position Scan 00:00:00.0 153,634

Reference Preload Annotation Variants/s
---------------------------------------------------------------------------
chr1 00:00:00.2 00:00:00.8 11,873

Summary Time Percent
---------------------------------------------------------------------------
Initialization 00:00:00.0 1.5 %
Preload 00:00:00.2 4.9 %
Annotation 00:00:00.8 18.5 %

Time: 00:00:04.4

The output will be a JSON file called HiSeq.10000.json.gz. Here's the full JSON file.

The Illumina Connected Annotations command line

The full command line options can be viewed by using the -h option or no options

dotnet Annotator.dll
---------------------------------------------------------------------------
Illumina Connected Annotations (c) 2023 Illumina, Inc.
3.22.0
---------------------------------------------------------------------------

USAGE: dotnet Annotator.dll -i <vcf path> -c <cache dir> --sd <sa dir> -r <ref path> -o <base output filename>
Annotates a set of variants

OPTIONS:
--cache, -c <directory>
input cache directory
--in, -i <path> input VCF path
--out, -o <file path> output file path
--ref, -r <path> input compressed reference sequence path
--sd <directory> input supplementary annotation directory
--sources, -s <VALUE> annotation data sources to be used (comma
separated list of supported tags)
--force-mt forces to annotate mitochondrial variants
--legacy-vids enables support for legacy VIDs
--enable-dq report DQ from VCF samples field
--enable-bidirectional-fusions
enables support for bidirectional gene fusions
--str <VALUE> user provided STR annotation TSV file
--vcf-info <VALUE> additional vcf info field keys (comma separated)
desired in the output
--vcf-sample-info <VALUE>
additional vcf format field keys (comma separated)
desired in the output
--help, -h displays the help menu
--version, -v displays the version

Supplementary annotation version: 69, Reference version: 7

Specifying annotation sources

By default, Illumina Connected Annotations will use all available data sources. However, the user can customize the set of sources using the --sources|-s option. If an unknown source is specified, a warning message will be printed.

dotnet Annotator.dll \
-c Data/Cache/GRCh37 \
--sd Data/SupplementaryAnnotation/GRCh37 \
-r Data/References/Homo_sapiens.GRCh37.Nirvana.dat \
-i HiSeq.10000.vcf.gz \
-o HiSeq.10000 \
-s omim,gnomad,ense
---------------------------------------------------------------------------
Illumina Connected Annotations (c) 2023 Illumina, Inc.
3.22.0
---------------------------------------------------------------------------

WARNING: Unknown tag in data-sources: ense.
Available values are: aminoAcidConservation,primateAI,dbsnp,spliceAI,revel,cosmic,clinvar,gnomad,
mitomap,oneKg,gmeVariome,topmed,clingen,decipher,gnomAD-preview,clingenDosageSensitivityMap,
gerpScore,dannScore,omim,clingenGeneValidity,phylopScore,lowComplexityRegion,refMinor,
heteroplasmy,Ensembl,RefSeq

Initialization Time Positions/s
---------------------------------------------------------------------------
SA Position Scan 00:00:00.3 307,966
....
..

The list of available values is compiled from the files provided (using -c and --sd options).

- - + + \ No newline at end of file diff --git a/3.22/introduction/parsing-json/index.html b/3.22/introduction/parsing-json/index.html index 3aa2515c..ff1d5cd2 100644 --- a/3.22/introduction/parsing-json/index.html +++ b/3.22/introduction/parsing-json/index.html @@ -6,13 +6,13 @@ Parsing Illumina Connected Annotations JSON | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Parsing Illumina Connected Annotations JSON

Parsing JSON

Our JSON files are organized similarly to original VCF variants:

Illumina Connected Annotations JSON files can get very large and sometimes we receive feedback that a bioinformatician tried to read the JSON file into Python or R resulting in a program that ran out of available RAM. This happens because those parsers try to load everything into memory all at once.

To get around those issues, we play some clever tricks with newlines that enables our users to parse our JSON files quickly and efficiently.

Organization

Our JSON file is arranged as follows:

  • the header section is located on the first line
  • each line after that corresponds to a position (same as a row in a VCF file)
    • until you reach the genes section ],"genes":[
  • each line after that corresponds to a gene
    • until you reach the end ]}

Knowing this, you can load each position line as an independent JSON object and extract the information you need.

Jupyter Notebook

To demonstrate this, we have put together a Jupyter notebook demonstrating how to do this in Python and a R version as well.

JASIX

One of the tools that we really like in the VCF ecosystem is tabix. Unfortunately, tabix only works for tab-delimited file formats. As a result, we created a similar tool for Illumina Connected Annotations JSON files called JASIX.

Here's an example of how you might use JASIX:

dotnet bin/Release/net6.0/Jasix.dll -i dragen.json.gz -q chr1:942450-942455
  • the -i argument specifies the Illumina Connected Annotations JSON path
  • the -q argument specifies a genomic range (you can use as many of these as you want)

JASIX also includes additional options for showing the Illumina Connected Annotations header or for extracting different sections (like the genes section).

The output from JASIX is compliant JSON object shown in pretty-printed form:

{"positions":[
{
"chromosome": "chr1",
"position": 942451,
"refAllele": "T",
"altAlleles": [
"C"
],
"quality": 484.23,
"filters": [
"PASS"
],
"cytogeneticBand": "1p36.33",
"samples": [
{
"genotype": "1/1",
"variantFrequencies": [
1
],
"totalDepth": 21,
"genotypeQuality": 60,
"alleleDepths": [
0,
21
]
},
{
"genotype": "1/1",
"variantFrequencies": [
1
],
"totalDepth": 32,
"genotypeQuality": 93,
"alleleDepths": [
0,
32
]
},
{
"genotype": "1/1",
"variantFrequencies": [
1
],
"totalDepth": 36,
"genotypeQuality": 105,
"alleleDepths": [
0,
36
]
}
],
"variants": [
{
"vid": "1-942451-T-C",
"chromosome": "chr1",
"begin": 942451,
"end": 942451,
"refAllele": "T",
"altAllele": "C",
"variantType": "SNV",
"hgvsg": "NC_000001.11:g.942451T>C",
"phylopScore": -0.1,
"clinvar": [
{
"id": "VCV000836156.1",
"reviewStatus": "criteria provided, single submitter",
"significance": [
"uncertain significance"
],
"refAllele": "T",
"altAllele": "T",
"lastUpdatedDate": "2020-08-20"
},
{
"id": "RCV001037211.1",
"variationId": 836156,
"reviewStatus": "criteria provided, single submitter",
"alleleOrigins": [
"germline"
],
"refAllele": "T",
"altAllele": "T",
"phenotypes": [
"not provided"
],
"medGenIds": [
"CN517202"
],
"significance": [
"uncertain significance"
],
"lastUpdatedDate": "2020-08-20",
"pubMedIds": [
"28492532"
]
}
],
"dbsnp": [
"rs6672356"
],
"gnomad": {
"coverage": 25,
"allAf": 0.999855,
"allAn": 123742,
"allAc": 123724,
"allHc": 61853,
"afrAf": 0.999416,
"afrAn": 10278,
"afrAc": 10272,
"afrHc": 5133,
"amrAf": 0.99995,
"amrAn": 20008,
"amrAc": 20007,
"amrHc": 10003,
"easAf": 1,
"easAn": 6054,
"easAc": 6054,
"easHc": 3027,
"finAf": 1,
"finAn": 8696,
"finAc": 8696,
"finHc": 4348,
"nfeAf": 0.999899,
"nfeAn": 49590,
"nfeAc": 49585,
"nfeHc": 24790,
"asjAf": 1,
"asjAn": 7208,
"asjAc": 7208,
"asjHc": 3604,
"sasAf": 0.99967,
"sasAn": 18160,
"sasAc": 18154,
"sasHc": 9074,
"othAf": 1,
"othAn": 3748,
"othAc": 3748,
"othHc": 1874,
"maleAf": 0.9999,
"maleAn": 69780,
"maleAc": 69773,
"maleHc": 34883,
"femaleAf": 0.999796,
"femaleAn": 53962,
"femaleAc": 53951,
"femaleHc": 26970,
"controlsAllAf": 0.999815,
"controlsAllAn": 48654,
"controlsAllAc": 48645
},
"oneKg": {
"allAf": 1,
"afrAf": 1,
"amrAf": 1,
"easAf": 1,
"eurAf": 1,
"sasAf": 1,
"allAn": 5008,
"afrAn": 1322,
"amrAn": 694,
"easAn": 1008,
"eurAn": 1006,
"sasAn": 978,
"allAc": 5008,
"afrAc": 1322,
"amrAc": 694,
"easAc": 1008,
"eurAc": 1006,
"sasAc": 978
},
"primateAI": [
{
"hgnc": "SAMD11",
"scorePercentile": 0.87
}
],
"revel": {
"score": 0.145
},
"topmed": {
"allAf": 0.999809,
"allAn": 125568,
"allAc": 125544,
"allHc": 62760
},
"transcripts": [
{
"transcript": "ENST00000420190.6",
"source": "Ensembl",
"bioType": "protein_coding",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"downstream_gene_variant"
],
"proteinId": "ENSP00000411579.2"
},
{
"transcript": "ENST00000342066.7",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "1110",
"cdsPos": "1027",
"exons": "10/14",
"proteinPos": "343",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000342066.7:c.1027T>C",
"hgvsp": "ENSP00000342313.3:p.(Trp343Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000342313.3",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000618181.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "732",
"cdsPos": "652",
"exons": "7/11",
"proteinPos": "218",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000618181.4:c.652T>C",
"hgvsp": "ENSP00000480870.1:p.(Trp218Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000480870.1",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000622503.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "1110",
"cdsPos": "1030",
"exons": "10/14",
"proteinPos": "344",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000622503.4:c.1030T>C",
"hgvsp": "ENSP00000482138.1:p.(Trp344Arg)",
"isCanonical": true,
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000482138.1",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000618323.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "cTg/cCg",
"aminoAcids": "L/P",
"cdnaPos": "712",
"cdsPos": "632",
"exons": "8/12",
"proteinPos": "211",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000618323.4:c.632T>C",
"hgvsp": "ENSP00000480678.1:p.(Leu211Pro)",
"polyPhenScore": 0,
"polyPhenPrediction": "unknown",
"proteinId": "ENSP00000480678.1",
"siftScore": 0.03,
"siftPrediction": "deleterious - low confidence"
},
{
"transcript": "ENST00000616016.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "ccT/ccC",
"aminoAcids": "P",
"cdnaPos": "944",
"cdsPos": "864",
"exons": "9/13",
"proteinPos": "288",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"synonymous_variant"
],
"hgvsc": "ENST00000616016.4:c.864T>C",
"hgvsp": "ENST00000616016.4:c.864T>C(p.(Pro288=))",
"proteinId": "ENSP00000478421.1"
},
{
"transcript": "ENST00000618779.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "921",
"cdsPos": "841",
"exons": "9/13",
"proteinPos": "281",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000618779.4:c.841T>C",
"hgvsp": "ENSP00000484256.1:p.(Trp281Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000484256.1",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000616125.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "783",
"cdsPos": "703",
"exons": "8/12",
"proteinPos": "235",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000616125.4:c.703T>C",
"hgvsp": "ENSP00000484643.1:p.(Trp235Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000484643.1",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000620200.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "cTg/cCg",
"aminoAcids": "L/P",
"cdnaPos": "427",
"cdsPos": "347",
"exons": "5/9",
"proteinPos": "116",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000620200.4:c.347T>C",
"hgvsp": "ENSP00000484820.1:p.(Leu116Pro)",
"polyPhenScore": 0,
"polyPhenPrediction": "unknown",
"proteinId": "ENSP00000484820.1",
"siftScore": 0.16,
"siftPrediction": "tolerated - low confidence"
},
{
"transcript": "ENST00000617307.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "867",
"cdsPos": "787",
"exons": "9/13",
"proteinPos": "263",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000617307.4:c.787T>C",
"hgvsp": "ENSP00000482090.1:p.(Trp263Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000482090.1",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "NM_152486.2",
"source": "RefSeq",
"bioType": "protein_coding",
"codons": "Cgg/Cgg",
"aminoAcids": "R",
"cdnaPos": "1107",
"cdsPos": "1027",
"exons": "10/14",
"proteinPos": "343",
"geneId": "148398",
"hgnc": "SAMD11",
"consequence": [
"synonymous_variant"
],
"hgvsc": "NM_152486.2:c.1027T>C",
"hgvsp": "NM_152486.2:c.1027T>C(p.(Arg343=))",
"isCanonical": true,
"proteinId": "NP_689699.2"
},
{
"transcript": "ENST00000341065.8",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "750",
"cdsPos": "751",
"exons": "8/12",
"proteinPos": "251",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000341065.8:c.750T>C",
"hgvsp": "ENSP00000349216.4:p.(Trp251Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000349216.4",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000455979.1",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "507",
"cdsPos": "508",
"exons": "4/7",
"proteinPos": "170",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000455979.1:c.507T>C",
"hgvsp": "ENSP00000412228.1:p.(Trp170Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000412228.1",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000478729.1",
"source": "Ensembl",
"bioType": "processed_transcript",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"downstream_gene_variant"
]
},
{
"transcript": "ENST00000474461.1",
"source": "Ensembl",
"bioType": "retained_intron",
"cdnaPos": "389",
"exons": "3/4",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"non_coding_transcript_exon_variant"
],
"hgvsc": "ENST00000474461.1:n.389T>C"
},
{
"transcript": "ENST00000466827.1",
"source": "Ensembl",
"bioType": "retained_intron",
"cdnaPos": "191",
"exons": "2/2",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"non_coding_transcript_exon_variant"
],
"hgvsc": "ENST00000466827.1:n.191T>C"
},
{
"transcript": "ENST00000464948.1",
"source": "Ensembl",
"bioType": "retained_intron",
"cdnaPos": "286",
"exons": "1/2",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"non_coding_transcript_exon_variant"
],
"hgvsc": "ENST00000464948.1:n.286T>C"
},
{
"transcript": "NM_015658.3",
"source": "RefSeq",
"bioType": "protein_coding",
"geneId": "26155",
"hgnc": "NOC2L",
"consequence": [
"downstream_gene_variant"
],
"isCanonical": true,
"proteinId": "NP_056473.2"
},
{
"transcript": "ENST00000483767.5",
"source": "Ensembl",
"bioType": "retained_intron",
"geneId": "ENSG00000188976",
"hgnc": "NOC2L",
"consequence": [
"downstream_gene_variant"
]
},
{
"transcript": "ENST00000327044.6",
"source": "Ensembl",
"bioType": "protein_coding",
"geneId": "ENSG00000188976",
"hgnc": "NOC2L",
"consequence": [
"downstream_gene_variant"
],
"isCanonical": true,
"proteinId": "ENSP00000317992.6"
},
{
"transcript": "ENST00000477976.5",
"source": "Ensembl",
"bioType": "retained_intron",
"geneId": "ENSG00000188976",
"hgnc": "NOC2L",
"consequence": [
"downstream_gene_variant"
]
},
{
"transcript": "ENST00000496938.1",
"source": "Ensembl",
"bioType": "processed_transcript",
"geneId": "ENSG00000188976",
"hgnc": "NOC2L",
"consequence": [
"downstream_gene_variant"
]
}
]
}
]
}
]}
- - + + \ No newline at end of file diff --git a/3.22/utilities/jasix/index.html b/3.22/utilities/jasix/index.html index 4fb77bc1..2ad0b35b 100644 --- a/3.22/utilities/jasix/index.html +++ b/3.22/utilities/jasix/index.html @@ -6,13 +6,13 @@ Jasix | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

Jasix

Overview

The Jasix index is aimed at providing TABIX like indexing capabilities for the Illumina Connected Annotations JSON output.

Creating the Jasix index

The Jasix index (that comes in a .jsi) file is generated on-the-fly with Illumina Connected Annotations output. It can also be generated independently by running the Jasix command line utility on the JSON output file. Please note that the Jasix utility can only consume JSON files that follow the Illumina Connected Annotations JSON output format. The following code blocks demonstrate the help menu and index generating functionalities of Jasix.

Example

dotnet Jasix.dll -h
USAGE: dotnet Jasix.dll -i in.json.gz [options]
Indexes a Illumina Connected Annotations annotated JSON file

OPTIONS:
--header, -t print also the header lines
--only-header, -H print only the header lines
--chromosomes, -l list chromosome names
--index, -c create index
--in, -i <VALUE> input
--out, -o <VALUE> compressed output file name (default:console)
--query, -q <VALUE> query range
--section, -s <VALUE> complete section (positions or genes) to output
--help, -h displays the help menu
--version, -v displays the version
dotnet Jasix.dll --index -i input.json.gz
---------------------------------------------------------------------------
Jasix (c) 2023 Illumina, Inc.
3.22.0
---------------------------------------------------------------------------

Ref Sequence chrM indexed in 00:00:00.2
Ref Sequence chr1 indexed in 00:00:05.8
Ref Sequence chr2 indexed in 00:00:06.0
.
.
.
Peak memory usage: 28.5 MB
Time: 00:01:14.8

Querying the index

The Jasix query format is chr:start-end. If not provided, it assumes end=start. If only chr is provided, all entries for that chromosome will be provided.

dotnet Jasix.dll -i input.json.gz chrM:5000-7000
{
"positions":[
{
"chromosome":"chrM",
"refAllele":"C",
"position":5581,
"quality":3070.00,
"filters":[
"LowGQXHomSNP"
],
"altAlleles":[
"T"
],
"samples":[
{
"variantFreq":1,
"totalDepth":1625,
"genotypeQuality":1,
"alleleDepths":[
0,
1625
],
"genotype":"1/1"
}
],
"variants":[
{
"altAllele":"T",
"refAllele":"C",
"begin":5581,
"chromosome":"chrM",
"end":5581,
"variantType":"SNV",
"vid":"MT:5581:T"
}
]
},
{
"chromosome":"chrM",
"refAllele":"A",
"position":6267,
"quality":1637.00,
"filters":[
"LowGQXHetSNP"
],
"altAlleles":[
"G"
],
"samples":[
{
"variantFreq":0.6873,
"totalDepth":323,
"genotypeQuality":1,
"alleleDepths":[
101,
222
],
"genotype":"0/1"
}
],
"variants":[
{
"altAllele":"G",
"refAllele":"A",
"begin":6267,
"chromosome":"chrM",
"end":6267,
"variantType":"SNV",
"vid":"MT:6267:G"
}
]
}
]
}

The default output stream is Console. However, if an output filename is provided, Jasix outputs the results to that file in a bgzip compressed format. The output is always a valid JSON entry. If requested (via -t option) the header of the indexed file will be provided. Multiple queries can be submitted in the same command and the output will contain them within the same "positions" block in order of the submitted queries (Warning: if the queries are out of order, or overlapping, the output will be out or order and intersecting).

dotnet Jasix.dll -i input.json.gz  -q chrM:5000-7000 -q chrM:8500-9500 -t
{
"header":{
"annotator":"Illumina Annotation Engine 1.6.2.0",
"creationTime":"2017-08-30 11:42:57",
"genomeAssembly":"GRCh37",
"schemaVersion":6,
"dataVersion":"84.24.39",
"dataSources":[
{
"name":"VEP",
"version":"84",
"description":"Ensembl",
"releaseDate":"2017-01-16"
}
],
"samples":[
"Mother"
]
},
"positions":[
{
"chromosome":"chrM",
"refAllele":"C",
"position":5581,
"quality":3070.00,
"filters":[
"LowGQXHomSNP"
],
"altAlleles":[
"T"
],
"samples":[
{
"variantFreq":1,
"totalDepth":1625,
"genotypeQuality":1,
"alleleDepths":[
0,
1625
],
"genotype":"1/1"
}
],
"variants":[
{
"altAllele":"T",
"refAllele":"C",
"begin":5581,
"chromosome":"chrM",
"end":5581,
"variantType":"SNV",
"vid":"MT:5581:T"
}
]
},
{
"chromosome":"chrM",
"refAllele":"A",
"position":6267,
"quality":1637.00,
"filters":[
"LowGQXHetSNP"
],
"altAlleles":[
"G"
],
"samples":[
{
"variantFreq":0.6873,
"totalDepth":323,
"genotypeQuality":1,
"alleleDepths":[
101,
222
],
"genotype":"0/1"
}
],
"variants":[
{
"altAllele":"G",
"refAllele":"A",
"begin":6267,
"chromosome":"chrM",
"end":6267,
"variantType":"SNV",
"vid":"MT:6267:G"
}
]
},
{
"chromosome":"chrM",
"refAllele":"G",
"position":8702,
"quality":3070.00,
"filters":[
"LowGQXHomSNP"
],
"altAlleles":[
"A"
],
"samples":[
{
"variantFreq":0.9987,
"totalDepth":1534,
"genotypeQuality":1,
"alleleDepths":[
2,
1532
],
"genotype":"1/1"
}
],
"variants":[
{
"altAllele":"A",
"refAllele":"G",
"begin":8702,
"chromosome":"chrM",
"end":8702,
"variantType":"SNV",
"vid":"MT:8702:A"
}
]
},
{
"chromosome":"chrM",
"refAllele":"G",
"position":9378,
"quality":3070.00,
"filters":[
"LowGQXHomSNP"
],
"altAlleles":[
"A"
],
"samples":[
{
"variantFreq":1,
"totalDepth":1018,
"genotypeQuality":1,
"alleleDepths":[
0,
1018
],
"genotype":"1/1"
}
],
"variants":[
{
"altAllele":"A",
"refAllele":"G",
"begin":9378,
"chromosome":"chrM",
"end":9378,
"variantType":"SNV",
"vid":"MT:9378:A"
}
]
}
]
}

Extracting a section

The Illumina Connected Annotations JSON file has three sections: header, positions and genes. Header can be printed using the -H option. If you are interested in only the positions or genes section, you can use the -s or --section option.

dotnet Jasix.dll -i input.json.gz  -s genes
[
{
"name": "ABCB10",
"omim": [
{
"mimNumber": 605454,
"geneName": "ATP-binding cassette, subfamily B, member 10"
}
]
},
{
"name": "ABCD3",
"omim": [
{
"mimNumber": 170995,
"geneName": "ATP-binding cassette, subfamily D, member 3 (peroxisomal membrane protein 1, 70kD)",
"description": "The ABCD3 gene encodes a peroxisomal membrane transporter involved in the transport of branched-chain fatty acids and C27 bile acids into the peroxisome; the latter function is a crucial step in bile acid biosynthesis (summary by Ferdinandusse et al., 2015).",
"phenotypes": [
{
"mimNumber": 616278,
"phenotype": "?Bile acid synthesis defect, congenital, 5",
"mapping": "molecular basis of the disorder is known",
"inheritances": [
"Autosomal recessive"
],
"comments": [
"unconfirmed or possibly spurious mapping"
]
}
]
}
]
}
]
- - + + \ No newline at end of file diff --git a/3.22/utilities/sautils/index.html b/3.22/utilities/sautils/index.html index 825f5e77..394a0799 100644 --- a/3.22/utilities/sautils/index.html +++ b/3.22/utilities/sautils/index.html @@ -6,13 +6,13 @@ SAUtils | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.22

SAUtils

Overview

SAUtils is a utility tool that creates binary supplementary annotation files (.nsa, .gsa, .npd, .nsi, etc.) from original data files (e.g. VCFs, TSVs, XML, HTML, etc.) for various data sources (e.g. ClinVar, dbSNP, gnomAD, etc.). These binary files can be fed into the Illumina Connected Annotations Annotation engine to provide supplementary annotations in the output.

The SAUtils Menu

SAUtils supports building binary files for many data sources. The help menu lists them out in the form of sub-commands.

dotnet SAUtils.dll
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
3.22.0
---------------------------------------------------------------------------

Utilities focused on supplementary annotation

USAGE: dotnet SAUtils.dll <command> [options]

COMMAND: AutoDownloadGenerate auto download and generate Omim, Clinvar, Clingen
AaCon create AA conservation database
ancestralAllele create Ancestral allele database from 1000Genomes data
ClinGen create ClinGen database
Downloader download ClinGen database
clinvar create ClinVar database
concat merge multiple NSA files for the same data source having non-overlapping regions
Cosmic create COSMIC database
CosmicSv create COSMIC SV database
CosmicFusion create COSMIC gene fusion database
CosmicCGC create COSMIC cancer gene census database
CustomGene create custom gene annotation database
CustomVar create custom variant annotation database
Dann create DANN database
Dbsnp create dbSNP database
Dgv create DGV database
DiseaseValidity create disease validity database
DosageMapRegions create dosage map regions
DosageSensitivity create dosage sensitivity database
DownloadOmim download OMIM database
ExtractMiniSA extracts mini SA
ExtractMiniXml extracts mini XML (ClinVar)
FilterSpliceNetTsv filter SpliceNet predictions
FusionCatcher create FusionCatcher database
Gerp create GERP conservation database
GlobalMinor create global minor allele database
Gnomad create gnomAD database
Gnomad-lcr create gnomAD low complexity region database
GnomadGeneScores create gnomAD gene scores database
GnomadSV create gnomAD structural variant database
Index edit an index file
MitoHet create mitochondrial Heteroplasmy database
MitomapSvDb create MITOMAP structural variants database
MitomapVarDb create MITOMAP small variants database
Omim create OMIM database
OneKGen create 1000 Genome small variants database
OneKGenSv create 1000 Genomes structural variants database
OneKGenSvVcfToBed convert 1000 Genomes structural variants VCF file into a BED-like file
PhyloP create PhyloP database
PrimateAi create PrimateAI database
RefMinor create Reference Minor database from 1000 Genome
RemapWithDbsnp remap a VCF file given source and destination rsID mappings
Revel create REVEL database
SpliceAi create SpliceAI database
TopMed create TOPMed database
Gme create GME Variome database
Decipher create Decipher database

You can get further detailed help for each sub-command by typing in the subcommand. For example:

dotnet SAUtils.dll clinvar
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
3.22.0
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll clinvar [options]
Creates a supplementary database with ClinVar annotations

OPTIONS:
--ref, -r <VALUE> compressed reference sequence file
--rcv, -i <VALUE> ClinVar Full release XML file
--vcv, -c <VALUE> ClinVar Variation release XML file
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version

More detailed instructions about each sub-command can be found in documentation of respective data sources.

Output File Formats

The format of the binary file SAUtils produce depend on the type of annotation data represented in that file (e.g. small variant vs. structural variants vs. genes).

File ExtensionDescription
.nsaSmall variant annotations (e.g. SNV, insertions, deletions, etc.)
.gsaCompact variant annotations (e.g. SNV, insertions, deletions, etc.)
.idxIndex file
.nsiInterval annotations (e.g. SV, CNVs, intervals)
.ngaGene annotations
.npdConservation scores
.rmaReference Minor allele
.gfsGene fusions source
.gfjGene fusions JSON
.schemaJSON schema
- - + + \ No newline at end of file diff --git a/3.23/core-functionality/canonical-transcripts/index.html b/3.23/core-functionality/canonical-transcripts/index.html index 7bf893cd..cf231508 100644 --- a/3.23/core-functionality/canonical-transcripts/index.html +++ b/3.23/core-functionality/canonical-transcripts/index.html @@ -6,13 +6,13 @@ Canonical Transcripts | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Canonical Transcripts

Overview

One of the more polarizing topics within annotation is the notion of canonical transcripts. Because of alternative splicing, we often have several transcripts for each gene. In the human genome, there are an average of 3.4 transcripts per gene (Tung, 2020). As scientists, we seem to have a need for identifying a representative example of a gene - even if there's no biological basis for the motivation.

Golden Helix Blog

A few years ago, the guys over at Golden Helix wrote an excellent post about the pitfalls and issues surrounding the identification of canonical transcripts: What’s in a Name: The Intricacies of Identifying Variants.

In Illumina Connected Annotations, we wanted to identify an algorithm for determining the canonical transcript and apply it consistently to all of our transcript data sources.

Known Algorithms

UCSC

UCSC publishes a list of canonical transcripts in its knownCanonical table which is available via the TableBrowser. Of the RefSeq data sources, it was the only one we could find that provided canonical transcripts:

The canonical transcript is defined as either the longest CDS, if the gene has translated transcripts, or the longest cDNA.

If you were to implement this and compare it with the knownCanonical table, you would see a lot of exceptions to the rule.

Ensembl

The Ensembl glossary states:

The canonical transcript is used in the gene tree analysis in Ensembl and does not necessarily reflect the most biologically relevant transcript of a gene. For human, the canonical transcript for a gene is set according to the following hierarchy:

  1. Longest CCDS translation with no stop codons.
  2. If no (1), choose the longest Ensembl/Havana merged translation with no stop codons.
  3. If no (2), choose the longest translation with no stop codons.
  4. If no translation, choose the longest non-protein-coding transcript.

ACMG

From the ACMG Guidelines for the Interpretation of Sequence Variants:

A reference transcript for each gene should be used and provided in the report when describing coding variants. The transcript should represent either the longest known transcript and/or the most clinically relevant transcript.

ClinVar

From the ClinVar paper:

When there are multiple transcripts for a gene, ClinVar selects one HGVS expression to construct a preferred name. By default, this selection is based on the first reference standard transcript identified by the RefSeqGene/LRG (Locus Reference Genomic) collaboration.

Unified Approach

Our approach is almost identical to the one Golden Helix discussed in their article:

  1. If we're looking at RefSeq, only consider NM & NR transcripts as candidates for canonical transcripts.
  2. Sort the transcripts in the following order:
    1. Locus Reference Genomic (LRG) entries occur before non-LRG entries
    2. Descending CDS length
    3. Descending transcript length
    4. Ascending accession number
  3. Grab the first entry
- - + + \ No newline at end of file diff --git a/3.23/core-functionality/gene-fusions/index.html b/3.23/core-functionality/gene-fusions/index.html index 94f197b1..a003d742 100644 --- a/3.23/core-functionality/gene-fusions/index.html +++ b/3.23/core-functionality/gene-fusions/index.html @@ -6,14 +6,14 @@ Gene Fusion Detection | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Gene Fusion Detection

Overview

Gene fusions often result from large genomic rearrangements such as structural variants. While WGS secondary analysis pipelines typically contain alignment and variant calling stages, very few of them contain dedicated gene fusion callers. When they are included, they are usually associated with RNA-Seq pipelines where gene fusions can be readily observed.

Since gene fusions are frequently observed in cancer and since many sequencing experiments do not include paired RNA-Seq data, we have added gene fusion detection and annotation to Illumina Connected Annotations.

The rich diversity in gene fusion architectures and their likely mechanisms can be seen below:

Publication

Kumar-Sinha, C., Kalyana-Sundaram, S. & Chinnaiyan, A.M. Landscape of gene fusions in epithelial cancers: seq and ye shall find. Genome Med 7, 129 (2015)

Approach

Illumina Connected Annotations uses structural variant calls to evaluate if they form either putative intra-chromosomal or inter-chromosomal gene fusions. Let's consider two transcripts, NM_014206.3 (TMEM258) and NM_013402.4 (FADS1). Both of these genes are on the reverse strand in the genome. The vertical bar indicates the breakpoint where these transcripts are fused:

TMEM258 &amp; FADS1 transcripts

The above explains where the transcripts are fused together, but it doesn't explain in which orientation. By using the directionality encoded in the translocation breakend, we can rearrange these two transcripts in four ways:

TMEM258 &amp; FADS1 gene fusions

Only two of the combinations yields a fusion containing both the transcription start site (TSS) and the stop codon. In one case, we can even detect an in-frame gene fusion. If only unidirectional gene fusions are desired, only these two fusions can be detected. If enable-bidirectional-fusions is enabled, all four cases can be identified.

Interpreting translocation breakends

At first glance, translocation breakends are a bit daunting. However, once you understand how they work, they're actually quite simple. For more information, we recommend reading section 5.4 in the VCF 4.2 specification.

REFALTMeaning
st[p[piece extending to the right of p is joined after t
st]p]reverse comp piece extending left of p is joined after t
s]p]tpiece extending to the left of p is joined before t
s[p[treverse comp piece extending right of p is joined before t

Variant Types

Specifically we can identify gene fusions from the following structural variant types:

  • deletions (<DEL>)
  • tandem_duplications (<DUP:TANDEM>)
  • inversions (<INV>)
  • translocation breakpoints (AAAAAAAAAAAAAAAAAATTAGTCAGGCAC[chr3:153444911[)

Criteria

The following criteria must be met for Illumina Connected Annotations to identify a gene fusion:

  1. After accounting for gene orientation and genomic rearrangements, both transcripts must have the same orientation if enable-bidirectional-fusions is not enabled. They can have the same or different orientations if enable-bidirectional-fusions is set.
  2. Both transcripts must be from the same transcript source (i.e. we won't mix and match between RefSeq and Ensembl transcripts)
  3. Both transcripts must belong to different genes
  4. Both transcripts cannot have a coding region that already overlaps without the variant (i.e. in cases where two genes naturally overlap, we don't want to call a gene fusion)

ETV6/RUNX1 Example

ETV6/RUNX1 is the most common gene fusion in childhood B-cell precursor acute lymphoblastic leukemia (ALL). Samples with this translocation are associated with a good prognosis and excellent response to treatment.

VCF

Here's a simplified representation of the translocation breakends called by the Manta structural variant caller:

##fileformat=VCFv4.1
#CHROM POS ID REF ALT QUAL FILTER INFO
chr12 12026270 . C [chr21:36420865[C . PASS SVTYPE=BND
chr12 12026305 . A A]chr21:36420571] . PASS SVTYPE=BND
chr21 36420571 . C C]chr12:12026305] . PASS SVTYPE=BND
chr21 36420865 . C [chr12:12026270[C . PASS SVTYPE=BND

When you put these calls together, the resulting genomic rearrangement looks something like this:

JSON Output

The annotation for the first variant in the VCF looks like this:

{
"chromosome": "chr12",
"position": 12026270,
"refAllele": "C",
"altAlleles": [
"[chr21:36420865[C"
],
"filters": [
"PASS"
],
"cytogeneticBand": "12p13.2",
"clingen": [
{
"chromosome": "12",
"begin": 173786,
"end": 34835837,
"variantType": "copy_number_gain",
"id": "nsv995956",
"clinicalInterpretation": "pathogenic",
"phenotypes": [
"Decreased calvarial ossification",
"Delayed gross motor development",
"Feeding difficulties",
"Frontal bossing",
"Morphological abnormality of the central nervous system",
"Patchy alopecia"
],
"phenotypeIds": [
"HP:0002007",
"HP:0002011",
"HP:0002194",
"HP:0002232",
"HP:0005474",
"HP:0011968",
"MedGen:C0232466",
"MedGen:C1862862",
"MedGen:CN001816",
"MedGen:CN001820",
"MedGen:CN001989",
"MedGen:CN004852"
],
"observedGains": 1,
"validated": true
}
],
"variants": [
{
"vid": "12-12026270-C-[chr21:36420865[C",
"chromosome": "chr12",
"begin": 12026270,
"end": 12026270,
"isStructuralVariant": true,
"refAllele": "C",
"altAllele": "[chr21:36420865[C",
"variantType": "translocation_breakend",
"cosmicGeneFusions": [
{
"id": "COSF2245",
"numSamples": 249,
"geneSymbols": [
"ETV6",
"RUNX1"
],
"hgvsr": "ENST00000396373.4(ETV6):r.1_1283::ENST00000300305.3(RUNX1):r.504_6222",
"histologies": [
{
"name": "acute lymphoblastic B cell leukaemia",
"numSamples": 169
},
{
"name": "acute lymphoblastic leukaemia",
"numSamples": 80
}
],
"sites": [
{
"name": "haematopoietic and lymphoid tissue",
"numSamples": 249
}
],
"pubMedIds": [
7761424,
7780150,
8609706,
8751464,
8982044,
9067587,
9207408,
9226156,
9628428,
10463610,
10774753,
11091202,
12621238,
12661004,
12750722,
15104290,
15642392,
24557455,
26925663
]
}
],
"fusionCatcher": [
{
"genes": {
"first": {
"hgnc": "ETV6",
"isOncogene": true
},
"second": {
"hgnc": "RUNX1",
"isOncogene": true
}
},
"somaticSources": [
"DepMap CCLE",
"Cancer Genome Project",
"ChimerKB 4.0",
"ChimerPub 4.0",
"ChimerSeq 4.0",
"Known",
"Mitelman DB",
"OncoKB",
"TICdb"
]
}
],
"transcripts": [
{
"transcript": "ENST00000396373.4",
"source": "Ensembl",
"bioType": "protein_coding",
"introns": "5/7",
"geneId": "ENSG00000139083",
"hgnc": "ETV6",
"consequence": [
"transcript_variant",
"unidirectional_gene_fusion"
],
"geneFusions": [
{
"transcript": "ENST00000437180.1",
"bioType": "protein_coding",
"intron": 2,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000437180.1(RUNX1):r.?_58+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
},
{
"transcript": "ENST00000300305.3",
"bioType": "protein_coding",
"intron": 1,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000300305.3(RUNX1):r.?_58+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
},
{
"transcript": "ENST00000482318.1",
"bioType": "nonsense_mediated_decay",
"intron": 2,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000482318.1(RUNX1):r.?_58+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
},
{
"transcript": "ENST00000486278.2",
"bioType": "protein_coding",
"intron": 2,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000486278.2(RUNX1):r.?_-15+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
},
{
"transcript": "ENST00000455571.1",
"bioType": "protein_coding",
"intron": 2,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000455571.1(RUNX1):r.?_58+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
},
{
"transcript": "ENST00000475045.2",
"bioType": "protein_coding",
"intron": 11,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000475045.2(RUNX1):r.?_58+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
},
{
"transcript": "ENST00000416754.1",
"bioType": "protein_coding",
"intron": 2,
"geneId": "ENSG00000159216",
"hgnc": "RUNX1",
"hgvsr": "ENST00000416754.1(RUNX1):r.?_58+274::ENST00000396373.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
}
],
"isCanonical": true,
"proteinId": "ENSP00000379658.3"
},
{
"transcript": "NM_001987.4",
"source": "RefSeq",
"bioType": "protein_coding",
"introns": "5/7",
"geneId": "2120",
"hgnc": "ETV6",
"consequence": [
"transcript_variant",
"unidirectional_gene_fusion"
],
"geneFusions": [
{
"transcript": "NM_001754.4",
"bioType": "protein_coding",
"intron": 2,
"geneId": "861",
"hgnc": "RUNX1",
"hgvsr": "NM_001754.4(RUNX1):r.?_58+274::NM_001987.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
}
],
"isCanonical": true,
"proteinId": "NP_001978.1"
}
]
}
]
}
FieldTypeNotes
transcriptstringtranscript ID
bioTypestringdescriptions of the biotypes from Ensembl
exonintexon that contained fusion breakpoint
intronintintron that contained fusion breakpoint
geneIdstringgene ID. e.g. ENSG00000116062
hgncstringgene symbol. e.g. MSH6
hgvsrstringHGVS RNA nomenclature

Gene Fusion Data Sources

To provide more context to our gene fusions, we provide the following gene fusion data sources:

Consequences

When a gene fusion is identified, we add the following Sequence Ontology consequence:

              "consequence": [
"transcript_variant",
"gene_fusion"
],
  • If both transcripts have the same orientation, we label it as unidirectional_gene_fusion, if they have different orientations, we label it as bidirectional_gene_fusion
  • If both unidirectional and bidirectional ones are detected, we label it as gene_fusion.

Gene Fusions Section

The geneFusions section is contained within the object of the originating transcript. It will contain all the pairwise gene fusions that obey the criteria outline above. In the case of ENST00000396373.4, there 7 other Ensembl transcripts that would produce a gene fusion. For NM_001987.4, there was only one transcript (NM_001754.4) that produce a gene fusion.

For each originating transcript, we report the following for each partner transcript:

  • transcript ID
  • gene ID
  • HGNC gene symbol
  • transcript bio type (e.g. protein_coding)
  • intron or exon number containing the breakpoint
  • HGVS RNA notation
  • gene fusion directionality
tip

Before Illumina Connected Annotations 3.15, we provided HGVS coding notation. However, HGVS r. notation is more appropriate for these types fusion splicing events (see HGVS SVD-WG007).

          "geneFusions": [
{
"transcript": "NM_001754.4",
"bioType": "protein_coding",
"intron": 2,
"geneId": "861",
"hgnc": "RUNX1",
"hgvsr": "NM_001754.4(RUNX1):r.?_58+274::NM_001987.4(ETV6):r.1009+3367_?",
"directionality":"uniDirectional"
}
],

The HGVS RNA notation above indicates that the gene fusion starts with NM_001754.4 (RUNX1) until CDS position 58 and continues with NM_001987.4 (ETV6). 1009+3367 indicates that the fusion occurred 3367 bp within intron 2.

- - + + \ No newline at end of file diff --git a/3.23/core-functionality/transcript-consequence-impacts/index.html b/3.23/core-functionality/transcript-consequence-impacts/index.html index da4f74cb..9a1093dc 100644 --- a/3.23/core-functionality/transcript-consequence-impacts/index.html +++ b/3.23/core-functionality/transcript-consequence-impacts/index.html @@ -6,14 +6,14 @@ Transcript Consequence Impact | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Transcript Consequence Impact

Overview

Illumina Connected Annotations provides transcript consequence impacts from SnpEff.

Following definitions are used for the impact ratings as obtained from SnpEff.

ImpactDefinition
highThe variant is assumed to have high (disruptive) impact in the protein, probably causing protein truncation, loss of function or triggering nonsense mediated decay.
moderateA non-disruptive variant that might change protein effectiveness.
lowAssumed to be mostly harmless or unlikely to change protein behavior.
modifierUsually non-coding variants or variants affecting non-coding genes, where predictions are difficult or there is no evidence of impact.

Sources

Not all consequences are rated by SnpEff, therefore Illumina Connected Annotations combines the ratings from SnpEff with those from VEP.

  1. SnpEff Documentation and Codebase
  2. VEP Documentation

Consequence Impacts

Following table gives the combined rating for all consequences recognized by Illumina Connected Annotations.

ConsequenceSnpEff ImpactVEP ImpactIllumina Connected Annotations ImpactComment
bidirectional_gene_fusionhighhighSnpEff
coding_sequence_variantlow, modifiermodifiermodifierBased on CDS
copy_number_changemodifier
copy_number_decreasemodifier
copy_number_increasemodifier
downstream_gene_variantmodifiermodifiermodifierSnpEff + VEP
feature_elongationmodifierhighhighVEP
feature_truncationhighhighVEP
five_prime_duplicated_transcriptmodifier
five_prime_UTR_variantmodifiermodifiermodifierSnpEff + VEP
frameshift_varianthighhighhighSnpEff + VEP
gene_fusionhighhighSnpEff
incomplete_terminal_codon_variantlowlowVEP
inframe_deletionmoderatemoderatemoderateSnpEff + VEP
inframe_insertionmoderatemoderatemoderateSnpEff + VEP
intron_variantmodifiermodifiermodifierSnpEff + VEP
mature_miRNA_variantmodifiermodifierVEP
missense_variantmoderatemoderatemoderateSnpEff + VEP
NMD_transcript_variantmodifiermodifierVEP
non_coding_transcript_exon_variantmodifiermodifiermodifierSnpEff + VEP
non_coding_transcript_variantmodifiermodifiermodifierSnpEff + VEP
protein_altering_variantmoderatemoderateVEP
regulatory_region_ablationmodifiermodifierVEP
regulatory_region_amplificationmodifiermodifierVEP
regulatory_region_variantmodifiermodifiermodifierSnpEff + VEP
short_tandem_repeat_changemodifier
short_tandem_repeat_contractionmodifier
short_tandem_repeat_expansionmodifier
splice_acceptor_varianthighhighhighSnpEff + VEP
splice_donor_varianthighhighhighSnpEff + VEP
splice_region_variantmoderate, lowlowlowBased on SPLICE_SITE_REGION in SnpEff
start_losthighhighhighSnpEff + VEP
start_retained_variantlowlowlowSnpEff + VEP
stop_gainedhighhighhighSnpEff + VEP
stop_losthighhighhighSnpEff + VEP
stop_retained_variantlowlowlowSnpEff + VEP
synonymous_variantlowlowlowSnpEff + VEP
three_prime_duplicated_transcriptmodifier
three_prime_UTR_variantmodifiermodifiermodifierSnpEff + VEP
transcript_ablationhighhighhighSnpEff + VEP
transcript_amplificationhighhighVEP
transcript_variantmodifiermodifierSnpEff
unidirectional_gene_fusionhighhighSnpEff
upstream_gene_variantmodifiermodifiermodifierSnpEff + VEP
Note:
  1. For transcripts with multiple consequences, the most severe impact rating is chosen.
  2. In case of consequences that do not have any impact rating from SnpEff or VEP, Illumina Connected Annotations provides modifier.

Known Issues

Known Issues

The consequence splice_polypyrimidine_tract_variant, is rated as low by VEP. However, this consequence is not annotated by Illumina Connected Annotations, therefore the impact will also not be provided.

Example Transcript

The key impact for each transcript gives the impact rating for the consequence.

{
"variants": [
{
"vid": "1-1623412-T-C",
"chromosome": "1",
"begin": 1623412,
"end": 1623412,
"refAllele": "T",
"altAllele": "C",
"variantType": "SNV",
"hgvsg": "NC_000001.11:g.1623412T>C",
"transcripts": [
{
"transcript": "ENST00000479659.5",
"source": "Ensembl",
"bioType": "lncRNA",
"introns": "2/18",
"geneId": "ENSG00000197530",
"hgnc": "MIB2",
"consequence": [
"intron_variant",
"non_coding_transcript_variant"
],
"impact": "modifier",
"hgvsc": "ENST00000479659.5:n.288-19T>C"
},
{
"transcript": "ENST00000489635.5",
"source": "VEP",
"bioType": "mRNA",
"codons": "aTg/aCg",
"aminoAcids": "M/T",
"cdnaPos": "269",
"cdsPos": "134",
"exons": "3/20",
"proteinPos": "45",
"geneId": "ENSG00000197530",
"hgnc": "MIB2",
"consequence": [
"missense_variant"
],
"impact": "moderate",
"hgvsc": "ENST00000489635.5:c.134T>C",
"hgvsp": "ENSP00000426007.1:p.(Met45Thr)",
"proteinId": "ENSP00000426007.1"
}
]
}
]
}
- - + + \ No newline at end of file diff --git a/3.23/core-functionality/variant-ids/index.html b/3.23/core-functionality/variant-ids/index.html index 4d207fd1..71736797 100644 --- a/3.23/core-functionality/variant-ids/index.html +++ b/3.23/core-functionality/variant-ids/index.html @@ -6,13 +6,13 @@ Variant IDs | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Variant IDs

Overview

Many downstream tools use a variant identifier to store annotation results. We've standardized on using variant identifiers (VIDs) that originated from the notation used by the Broad Institute.

The Broad VID scheme is not only simple, but it has the advantage that a user could create a bare bones VCF entry from the information captured in the identifier. One of the limitations of the Broad VID scheme is that it does not define how to handle structural variants. Our VID scheme attempts to fill that gap.

Conventions
  • all chromosomes use Ensembl style notation (i.e. 22 instead of chr22)
  • for a reference variant (i.e. no alt allele), replace the period (.) with the reference base
  • padding bases are used, neither the reference nor alternate allele can be empty
  • some large variant callers lazily output N for the reference allele. If this is the case, replace it with the true reference base

Small Variants

VCF Examples

chr1    66507   .   T   A   184.45  PASS    .
chr1 66521 . T TATATA 144.53 PASS .
chr1 66572 . GTA G,GTACTATATATTATA 45.45 PASS .

Format

chromosomepositionreference allelealternate allele

VID Examples

  • 1-66507-T-A
  • 1-66521-T-TATATA
  • 1-66572-GTA-G
  • 1-66572-G-GTACTATATATTA

Translocation Breakends

VCF Example

chr1    2617277 .   A   AAAAAAAAAAAAAAAAAATTAGTCAGGCAC[chr3:153444911[  .   PASS    SVTYPE=BND

Format

chromosomepositionreference allelealternate allele

VID Example

  • 1-2617277-A-AAAAAAAAAAAAAAAAAATTAGTCAGGCAC[chr3:153444911[

All Other Structural Variants

VCF Examples

chr1    1000    .   G   <ROH>   .   PASS    END=3001000;SVTYPE=ROH
chr1 1350082 . G <DEL> . PASS END=1351320;SVTYPE=DEL
chr1 1477854 . C <DUP:TANDEM> . PASS END=1477984;SVTYPE=DUP
chr1 1477968 . T <INS> . PASS END=1477968;SVTYPE=INS
chr1 1715898 . N <DUP> . PASS SVTYPE=CNV;END=1750149
chr1 2650426 . N <DEL> . PASS SVTYPE=CNV;END=2653074
chr2 321682 . T <INV> . PASS SVTYPE=INV;END=421681
chr20 2633403 . G <STR2> . PASS END=2633421

Format

chromosomepositionend positionreference allelealternate alleleSVTYPE

VID Examples

  • 1-1000-3001000-G-<ROH>-ROH
  • 1-1350082-1351320-G-<DEL>-DEL
  • 1-1477854-1477984-C-<DUP:TANDEM>-DUP
  • 1-1477968-1477968-T-<INS>-INS
  • 1-1715898-1750149-A-<DUP>-CNV (replace the N with A)
  • 1-2650426-2653074-N-<DEL>-CNV (keep the N)
  • 2-321682-421681-T-<INV>-INV
  • 20-2633403-2633421-G-<STR2>-STR
- - + + \ No newline at end of file diff --git a/3.23/data-sources/1000Genomes-snv-json/index.html b/3.23/data-sources/1000Genomes-snv-json/index.html index c7377101..bc0dbc06 100644 --- a/3.23/data-sources/1000Genomes-snv-json/index.html +++ b/3.23/data-sources/1000Genomes-snv-json/index.html @@ -6,13 +6,13 @@ 1000Genomes-snv-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

1000Genomes-snv-json

"oneKg":{
"allAf":0.200879,
"afrAf":0.210287,
"amrAf":0.139769,
"easAf":0.275794,
"eurAf":0.181909,
"sasAf":0.173824,
"allAn":5008,
"afrAn":1322,
"amrAn":694,
"easAn":1008,
"eurAn":1006,
"sasAn":978,
"allAc":1006,
"afrAc":278,
"amrAc":97,
"easAc":278,
"eurAc":183,
"sasAc":170
}
FieldTypeNotes
allAffloatallele frequency for all populations. Range: 0 - 1.0
allAcintallele count for all populations. Integer.
allAnintallele number for all populations. Non-zero integer.
afrAffloatallele frequency for the African super population. Range: 0 - 1.0
afrAcintallele count for the African super population. Integer.
afrAnintallele number for the African super population. Non-zero integer.
amrAffloatallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
amrAcintallele count for the Ad Mixed American super population. Integer.
amrAnintallele number for the Ad Mixed American super population. Non-zero integer.
easAffloatallele frequency for the East Asian super population. Range: 0 - 1.0
easAcintallele count for the East Asian super population. Integer.
easAnintallele number for the East Asian super population. Non-zero integer.
eurAffloatallele frequency for the European super population. Range: 0 - 1.0
eurAcintallele count for the European super population. Integer.
eurAnintallele number for the European super population. Non-zero integer.
sasAffloatallele frequency for the South Asian super population. Range: 0 - 1.0
sasAcintallele count for the South Asian super population. Integer.
sasAnintallele number for the South Asian super population. Non-zero integer.
- - + + \ No newline at end of file diff --git a/3.23/data-sources/1000Genomes-sv-json/index.html b/3.23/data-sources/1000Genomes-sv-json/index.html index c5392bb2..f1b4717f 100644 --- a/3.23/data-sources/1000Genomes-sv-json/index.html +++ b/3.23/data-sources/1000Genomes-sv-json/index.html @@ -6,13 +6,13 @@ 1000Genomes-sv-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

1000Genomes-sv-json

"oneKg":[
{
"chromosome":"1",
"begin":1595369,
"end":1612441,
"variantType": "copy_number_variation",
"id": "esv3635753;esv3635754;esv3635755;esv3635756;esv3635757",
"allAn": 5008,
"allAc": 2702,
"allAf": 0.539537,
"afrAf": 0.6052,
"amrAf": 0.3675,
"eurAf": 0.5357,
"easAf": 0.5368,
"sasAf": 0.5797,
"reciprocalOverlap": 0.07555
}
],
FieldTypeNotes
chromosomestring
begininteger
endinteger
variantTypestring
idstring
allAnintegerallele number for all populations. Non-zero integer.
allAcintegerallele count for all populations. Integer.
allAffloating pointallele frequency for all populations. Range: 0 - 1.0
afrAffloating pointallele frequency for the African super population. Range: 0 - 1.0
amrAffloating pointallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
eurAffloating pointallele frequency for the European super population. Range: 0 - 1.0
easAffloating pointallele frequency for the East Asian super population. Range: 0 - 1.0
sasAffloating pointallele frequency for the South Asian super population. Range: 0 - 1.0
reciprocalOverlapfloating pointrange: 0 - 1.
- - + + \ No newline at end of file diff --git a/3.23/data-sources/1000Genomes/index.html b/3.23/data-sources/1000Genomes/index.html index 04f30f8c..334a5288 100644 --- a/3.23/data-sources/1000Genomes/index.html +++ b/3.23/data-sources/1000Genomes/index.html @@ -6,15 +6,15 @@ 1000 Genomes | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

1000 Genomes

Overview

The goal of the 1000 Genomes Project was to find most genetic variants with frequencies of at least 1% in the populations studied. It was the first project to sequence the genomes of a large number of people, to provide a comprehensive resource on human genetic variation. Data from the 1000 Genomes Project was quickly made available to the worldwide scientific community through freely accessible public databases.

Publication

Sudmant, P., Rausch, T., Gardner, E. et al. An integrated map of structural variation in 2,504 human genomes. Nature 526, 75–81 (2015). https://doi.org/10.1038/nature15394

Populations

Small Variants

VCF File Parsing

The original VCF files come with allele frequency fields (e.g. ALL_AF, AMR_AF) but we recompute them using allele counts and allele numbers in order to get 6 digit precision. The allele counts and allele numbers (e.g. AMR_AC, AMR_AN) are not expressed in the INFO field. Instead the genotypes need to be parsed to compute that information. Our team converted the original data to VCF entries with allele counts and allele numbers like the following.

#CHROM  POS ID  REF ALT QUAL    FILTER  INFO
1 15274 rs62636497 A G,T 100 PASS AC=1739,3210;AF=0.347244,0.640974;AN=5008;NS=2504;DP=23255;EAS_AF=0.4812,0.5188;AMR_AF=0.2752,0.7205;AFR_AF=0.323,0.6369;EUR_AF=0.2922,0.7078;SAS_AF=0.3497,0.6472;AA=g|||;VT=SNP;MULTI_ALLELIC;EAS_AN=1008;EAS_AC=485,523;EUR_AN=1006;EUR_AC=294,712;AFR_AN=1322;AFR_AC=427,842;AMR_AN=694;AMR_AC=191,500;SAS_AN=978;SAS_AC=342,633

The ancestral allele, if it exists, is the first value in the pipe separated AA fields (the Indel specific REF, ALT, IndelType fields are ignored).

We parse the VCF file and extract the following fields from INFO:

  • AA
  • AC
  • AN
  • EAS_AN
  • AMR_AN
  • AFR_AN
  • EUR_AN
  • SAS_AN
  • EAS_AC
  • AMR_AC
  • AFR_AC
  • EUR_AC
  • SAS_AC

Conflict Resolution

We have observed conflicting allele frequency information in the source. Take the following example:

#CHROM  POS ID  REF ALT QUAL    FILTER  INFO
1 20505705 rs35377696 C CTCTG,CTG,CTGTG 100 PASS AC=46,1513,152;AF=0.0091853,0.302117,0.0303514;
1 20505705 rs35377696 C CTG 100 PASS AC=4;AF=0.000798722;

That is, the variant 1-20505705-C-CTG has conflicting entries. To get an idea of how frequently we observe this, here is a table summarizing ChrX and all chromosomes. Note that almost all such entries are found in ChrX.

Chromosome# of alleles# of conflicting allelespercentage
chrX83480027330.33%
Total2141309827430.013%

Currently, we removed the allele frequency of the conflicting allele (i.e., insertion TG in the example) but keep allele frequencies of all other alleles in the VCF line.

Potential Alternate Solutions

  • Remove all alleles that are contained in the vcf lines which have conflicting allele. (Recommended by 1000 genome group Holly Zheng-Bradley, 7/29/2015)
  • Recalculate the allele frequency for the conflicting allele.
  • Pick the allele frequency that has the highest data support.

Download URL

GRCh37 GRCh38

JSON Output

"oneKg":{
"allAf":0.200879,
"afrAf":0.210287,
"amrAf":0.139769,
"easAf":0.275794,
"eurAf":0.181909,
"sasAf":0.173824,
"allAn":5008,
"afrAn":1322,
"amrAn":694,
"easAn":1008,
"eurAn":1006,
"sasAn":978,
"allAc":1006,
"afrAc":278,
"amrAc":97,
"easAc":278,
"eurAc":183,
"sasAc":170
}
FieldTypeNotes
allAffloatallele frequency for all populations. Range: 0 - 1.0
allAcintallele count for all populations. Integer.
allAnintallele number for all populations. Non-zero integer.
afrAffloatallele frequency for the African super population. Range: 0 - 1.0
afrAcintallele count for the African super population. Integer.
afrAnintallele number for the African super population. Non-zero integer.
amrAffloatallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
amrAcintallele count for the Ad Mixed American super population. Integer.
amrAnintallele number for the Ad Mixed American super population. Non-zero integer.
easAffloatallele frequency for the East Asian super population. Range: 0 - 1.0
easAcintallele count for the East Asian super population. Integer.
easAnintallele number for the East Asian super population. Non-zero integer.
eurAffloatallele frequency for the European super population. Range: 0 - 1.0
eurAcintallele count for the European super population. Integer.
eurAnintallele number for the European super population. Non-zero integer.
sasAffloatallele frequency for the South Asian super population. Range: 0 - 1.0
sasAcintallele count for the South Asian super population. Integer.
sasAnintallele number for the South Asian super population. Non-zero integer.

Structural Variants

VCF File Parsing

The VCF files contain entries like the following:

#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  HG00096 HG00097 HG00099 HG00100 HG00101 HG00102 HG00103
22 16050654 esv3647175;esv3647176;esv3647177;esv3647178 A <CN0>,<CN2>,<CN3>,<CN4> 100 PASS AC=9,87,599,20;AF=0.00179712,0.0173722,0.119609,0.00399361;AN=5008;CS=DUP_gs;END=16063474;NS=2504;SVTYPE=CNV;DP=22545;EAS_AF=0.001,0.0169,0.2361,0.0099;AMR_AF=0,0.0101,0.219,0.0072;AFR_AF=0.0061,0.0363,0.0053,0;EUR_AF=0,0.007,0.0944,0.003;SAS_AF=0,0.0082,0.1094,0.002;VT=SV GT 3|0 0|0 0|0 0|0 0|0 0|0 0|4

Please note that, CNVs are allele-specific. For example, HG00096 is effectively copy number 4, which would be a net gain on chr22.

1000 Genomes contains 5 types of structural variants:

  • CNV
  • DEL
  • DUP
  • INS
  • INV

Since data of 1000 genomes is provided in VCF format, we assume that the coordinates follow the vcf format, i.e., there is a padding base for symbolic alleles. So all the interval can be interpreted as [BEGIN+1, END]. Similarly, for all other variant types except insertion, END is far larger than BEGIN. The distribution of BEGIN and END for insertions is summarized below.

Insertion issues

  • END = BEGIN for 6/165
  • END = BEGIN+2 for 93/165
  • END = BEGIN+3 for 11/165
  • END = BEGIN+4 for 11/165
  • END – BEGIN range from 5 to 1156 for others.

Converting VCF svTypes to SO sequence alterations

The svType will be captured in our JSON file under the sequenceAlteration key. Here's the translation we'll use according to svType in 1000 Genomes.

svTypeAlternative Alleles contain <CN*>sequenceAlteration
ALUFALSEmobile_element_insertion
DUPTRUEcopy_number_gain
CNVTRUEcopy_number_gain (observed_gains >0 and observed_losses =0)
copy_number_loss (observed_gains = 0 and observed_losses > 0)
copy_number_variation (otherwise)
DELTRUEcopy_number_loss
LINE1FALSEmobile_element_insertion
SVAFALSEmobile_element_insertion
INVFALSEinversion
INSFALSEinsertion

Exceptions

We discard structural variants without END

#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  HG00096 HG00097 HG00099 HG00100 HG00101 HG00102 HG00103
21 9495848 esv3646347 A <INS:ME:LINE1> 100 PASS AC=1543;AF=0.308107;AN=5008;CS=L1_umary;MEINFO=LINE1,5669,6005,+;NS=2504;SVLEN=336;SVTYPE=LINE1;TSD=null;DP=20015;EAS_AF=0.3125;AMR_AF=0.2911;AFR_AF=0.3026;EUR_AF=0.2922;SAS_AF=0.3395;VT=SV GT 0|0 1|1 1|0 0|1 1|0 1|0 0|0

CNVs in chrY

  • No other types of structural variants exist in chrY
  • Since copy number is provided in genotype field, we directly parse the copy number from "CN" field.
  • For most CNVs in chrY, the reference copy number is 1, but the refence number for CNVs in segmental duplication sites is 2 (<CN2> in the 2nd example). All segmental duplication calls have identifiers starting with GS_SD_M2.
#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  HG00096 HG00101 HG00103 HG00105 HG00107 HG00108
Y 2888555 CNV_Y_2888555_3014661 T <CN2> 100 PASS AC=1;AF=0.000817661;AN=1223;END=3014661;NS=1233;SVTYPE=CNV;AMR_AF=0.0000;AFR_AF=0.0000;EUR_AF=0.0000;SAS_AF=0.0019;EAS_AF=0.0000;VT=SV GT:CN:CNL:CNP:CNQ:GP:GQ:PL 0:1:-1000,0,-58.45:-1000,0,-61.55:99:0,-61.55:99:0,585 0:1:-296.36,0,-16.6:-300.46,0,-19.7:99:0,-19.7:99:0,166 0:1:-1000,0,-39.44:-1000,0,-42.54:99:0,-42.54:99:0,394
Y 6128381 GS_SD_M2_Y_6128381_6230094_Y_9650284_9752225 C <CN1>,<CN3> 100 PASS AC=4,2;AF=0.00327065,0.00163532;AN=1223;END=6230094;NS=1233;SVTYPE=CNV;AMR_AF=0.0029,0.0029;AFR_AF=0.0016,0.0016;EUR_AF=0.0000,0.0000;SAS_AF=0.0038,0.0000;EAS_AF=0.0000,0.0000;VT=SV;EX_TARGET GT:CN:CNL:CNP:CNQ:GP:GQ 0:2:-1000,-138.78,0,-38.53:-1000,-141.27,0,-41.33:99:0,-141.27,-41.33:99 0:2:-1000,-53.32,0,-17.85:-1000,-55.81,0,-20.64:99:0,-55.81,-20.64:99 0:2:-1000,-71.83,0,-32.5:-1000,-74.32,0,-35.29:99:0,-74.32,-35.29:99 0:2:-1000,-60.96,0,-20.29:-1000,-63.45,0,-23.08:99:0,-63.45,-23.08:99 0:2:-1000,-77.6,0,-31.45:-1000,-80.09,0,-34.24:99:0,-80.09,-34.24:99

JSON Output

"oneKg":[
{
"chromosome":"1",
"begin":1595369,
"end":1612441,
"variantType": "copy_number_variation",
"id": "esv3635753;esv3635754;esv3635755;esv3635756;esv3635757",
"allAn": 5008,
"allAc": 2702,
"allAf": 0.539537,
"afrAf": 0.6052,
"amrAf": 0.3675,
"eurAf": 0.5357,
"easAf": 0.5368,
"sasAf": 0.5797,
"reciprocalOverlap": 0.07555
}
],
FieldTypeNotes
chromosomestring
begininteger
endinteger
variantTypestring
idstring
allAnintegerallele number for all populations. Non-zero integer.
allAcintegerallele count for all populations. Integer.
allAffloating pointallele frequency for all populations. Range: 0 - 1.0
afrAffloating pointallele frequency for the African super population. Range: 0 - 1.0
amrAffloating pointallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
eurAffloating pointallele frequency for the European super population. Range: 0 - 1.0
easAffloating pointallele frequency for the East Asian super population. Range: 0 - 1.0
sasAffloating pointallele frequency for the South Asian super population. Range: 0 - 1.0
reciprocalOverlapfloating pointrange: 0 - 1.
- - + + \ No newline at end of file diff --git a/3.23/data-sources/amino-acid-conservation-json/index.html b/3.23/data-sources/amino-acid-conservation-json/index.html index 8bc060f1..c68d758f 100644 --- a/3.23/data-sources/amino-acid-conservation-json/index.html +++ b/3.23/data-sources/amino-acid-conservation-json/index.html @@ -6,13 +6,13 @@ amino-acid-conservation-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

amino-acid-conservation-json

"aminoAcidConservation": {
"scores": [0.34]
}
FieldTypeNotes
aminoAcidConservationobject
scoresobject array of doublespercent conserved with respect to human amino acid residue. Range: 0.01 - 1.00
- - + + \ No newline at end of file diff --git a/3.23/data-sources/amino-acid-conservation/index.html b/3.23/data-sources/amino-acid-conservation/index.html index 75540545..72b5bf53 100644 --- a/3.23/data-sources/amino-acid-conservation/index.html +++ b/3.23/data-sources/amino-acid-conservation/index.html @@ -6,14 +6,14 @@ Amino Acid Conservation | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Amino Acid Conservation

Overview

Amino acid conservation scores are obtained from multiple alignments of vertebrate exomes to the human ones. The score indicate the frequency with which a particular AA is observed in Humans.

Publication

Siepel A, Bejerano G, Pedersen JS, Hinrichs AS, Hou M, Rosenbloom K, Clawson H, Spieth J, Hillier LW, Richards S, et al. Evolutionarily conserved elements in vertebrate, insect, worm, and yeast genomes. Genome Res. 2005 Aug;15(8):1034-50. (http://www.genome.org/cgi/doi/10.1101/gr.3715005)

FASTA File

The exon alignments are provided in FASTA files as follows:

>ENST00000641515.2_hg38_1_2 3 0 0 chr1:65565-65573+
MKK
>ENST00000641515.2_panTro4_1_2 3 0 0 chrUn_GL393541:146907-146915+
MKK
>ENST00000641515.2_gorGor3_1_2 3 0 0
---
>ENST00000641515.2_ponAbe2_1_2 3 0 0 chr15:99141417-99141425-
MKK
>ENST00000641515.2_hg38_2_2 324 0 0 chr1:69037-70008+
VTAEAISWNESTSETNNSMVTEFIFLGLSDSQELQTFLFMLFFVFYGGIVFGNLLIVITVVSDSHLHSPMYFLLANLSLIDLSLSSVTAPKMITDFFSQRKVISFKGCLVQIFLLHFFGGSEMVILIAMGFDRYIAICKPLHYTTIMCGNACVGIMAVTWGIGFLHSVSQLAFAVHLLFCGPNEVDSFYCDLPRVIKLACTDTYRLDIMVIANSGVLTVCSFVLLIISYTIILMTIQHRPLDKSSKALSTLTAHITVVLLFFGPCVFIYAWPFPIKSLDKFLAVFYSVITPLLNPIIYTLRNKDMKTAIRQLRKWDAHSSVKFZ
>ENST00000641515.2_panTro4_2_2 324 0 0 chrUn_GL393541:151333-152303+

Parsing FASTA

For each Ensembl transcript, we will need to aggregate all the exons together for each of the 100 species. From there, we should get a full alignment that can be used to determine conservation. For example, for ENST00000641515.2 we have:

Human (hg38) MKKVTAEAISWNESTSETNNSMVTEFIFLGLSDSQELQTFLFMLFFVFYGGIVFGNLLIVITVVSDSHLHSPMYFLLANLSLIDLSLSSVTAPKMITDFFSQRKVISFKGCLVQIFLL
Chimp MKKVTAEAISWNESTSETNNSMVTEFIFLGLSDSQELQTFL-MLFFVFYGGIVFGNLLIVRIVVSDSHLHSPMYFLLANLSLIDLSLCSVTAPKMITDFFSQRKVISFKGCLVQIFLL
Gorilla ----------------------------------------------------------------------------------------------------------------------
Orangutan MKKVTAEAISWNESTSKTNNSVVTEFIFLGLSDSQELQTFLFMLFFVFYGGIVFGNLLIVIIVVSDSHLHSPMYFLLANLSLIDLSLSSVTAPKMITDFFSQRKVISFKGCLVQIFLL
Gibbon ----------------------------------------------------------------------------------------------------------------------
Rhesus MKKVTEAAISWNESTSETNNSIVTEFIFLGLSDSQELQIFLFVLFLVFYGGIVFGNLLIVITVVSDSHLHSPMYLLLANLSVVDLSLSSVTAPKMITDFFSQRKAISFKGCLVQIFLL
Macaque MKKVTEAAISWNESTSETNNSIVTEFIFLGLSDSQELQIFLFVLFLVFYGGIVFGNLLIVITVVSDSHLHSPMYLLLANLSVIDLSLSSVTAPKMITDFFSQRKAISFKGCLVQIFLL

If we look at position 6, we see that humans have an Alanine (A) residue. This residue is shared by Chimp and Orangutan. However, Rhesus and Macaque have a Glutamic acid (E) residue at that position. Moreover, Gorilla and Gibbon don't even have data for that transcript. For position 6, we would say that we have 43% conservation (3/7) since three organisms share the same residue as humans.

Assigning scores to Illumina Connected Annotations transcripts

The source FASTA file comes with Ensembl/UCSC transcript ids of the transcripts used for alignments. The Illumina Connected Annotations cache has RefSeq and Ensembl transcripts and our first attempt was to map the given Ensembl/UCSC ids to their equivalent RefSeq/Ensembl ids. This attempt was unsuccessful since UCSC Table Browser provided mapping without version numbers. So we proceeded as follows:

  • Take proteins which have a unique mapping (and hence one set of conservation scores). For ones that mapped to both ChrX and ChrY, we accepted the one from ChrX.
  • A Illumina Connected Annotations transcript having an exact peptide sequence match with a uniquely aligned protein is assigned the corresponding conservation scores.

Unfortunately this left us with a very small number of transcripts having conservation scores.

GRCh37

  • Source FASTA contained 41957 protein alignments.
  • 38165 proteins had unique scores.
  • 88 aligned proteins existed in Illumina Connected Annotations cache.
  • 118 transcripts had conservation scores.

GRCh38

  • Source FASTA contained 110024 protein alignments.
  • 88961 proteins had unique scores.
  • 11688 aligned proteins existed in Illumina Connected Annotations cache.
  • 12098 transcripts had conservation scores.

Download URL

GRCh37: http://hgdownload.soe.ucsc.edu/goldenPath/hg19/multiz100way/alignments/knownGene.exonAA.fa.gz

GRCh38: http://hgdownload.soe.ucsc.edu/goldenPath/hg38/multiz100way/alignments/knownGene.exonAA.fa.gz

JSON Output

Conservation scores are reported in the transcript section. One score is reported for each alt allele

"aminoAcidConservation": {
"scores": [0.34]
}
FieldTypeNotes
aminoAcidConservationobject
scoresobject array of doublespercent conserved with respect to human amino acid residue. Range: 0.01 - 1.00
- - + + \ No newline at end of file diff --git a/3.23/data-sources/cancer-hotspots/index.html b/3.23/data-sources/cancer-hotspots/index.html index 2a09c74e..629753dd 100644 --- a/3.23/data-sources/cancer-hotspots/index.html +++ b/3.23/data-sources/cancer-hotspots/index.html @@ -6,14 +6,14 @@ Cancer Hotspots | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Cancer Hotspots

Overview

Cancer Hotspots, a resource for statistically significant mutations in cancer. It provides information about statistically significantly recurrent mutations identified in large scale cancer genomics data.

Publication

Chang MT, Bhattarai TS, Schram AM, Bielski CM, Donoghue MTA, Jonsson P, Chakravarty D, Phillips S, Kandoth C, Penson A, Gorelick A, Shamu T, Patel S, Harris C, Gao J, Sumer SO, Kundra R, Razavi P, Li BT, Reales DN, Socci ND, Jayakumaran G, Zehir A, Benayed R, Arcila ME, Chandarlapaty S, Ladanyi M, Schultz N, Baselga J, Berger MF, Rosen N, Solit DB, Hyman DM, Taylor BS. Accelerating Discovery of Functional Mutant Alleles in Cancer. Cancer Discov. 2018 Feb;8(2):174-183. doi: 10.1158/2159-8290.CD-17-0321. Epub 2017 Dec 15. PMID: 29247016; PMCID: PMC5809279.

Chang MT, Asthana S, Gao SP, Lee BH, Chapman JS, Kandoth C, Gao J, Socci ND, Solit DB, Olshen AB, Schultz N, Taylor BS. Identifying recurrent mutations in cancer reveals widespread lineage diversity and mutational specificity. Nat Biotechnol. 2016 Feb;34(2):155-63. doi: 10.1038/nbt.3391. Epub 2015 Nov 30. PMID: 26619011; PMCID: PMC4744099.

Data extraction

Illumina Connected Annotations currently parses SNV and indel tabs from hotspots_v2.xls file to extract the relevant content.

Example

SNV

Hugo_Symbol     Amino_Acid_Position     log10_pvalue    Mutation_Count  Reference_Amino_Acid    Total_Mutations_in_Gene Median_Allele_Freq_Rank Allele_Freq_Rank        Variant_Amino_Acid   Codon_Change     Genomic_Position        Detailed_Cancer_Types   Organ_Types     Tri-nucleotides Mutability      mu_protein      Total_Samples   Analysis_Type   qvalue  tm      qvalue_pancanIs_repeat        seq     length  align100        pad12entropy    pad24entropy    pad36entropy    TP      reason  n_MSK   n_Retro judgement       inNBT   inOncokb        ref     qvaluect     ct       Samples
NRAS 61 -1237.69143477067 422 Q:422 620 0.333333333333333 295|0.692307692307692:0.733333333333333:0.2:0.933333333333333:1:0.25:0.666666666666667:1:0.25:0.571428571428571:1:1:0.5:0.363636363636364:0.428571428571429:0.0833333333333333:1:1:1:1:0.5:1:0.125:0.363636363636364:0.173913043478261:0.25:1:0.8:0.153846153846154:0.857142857142857:0.5:0.5:0.5:1:0.272727272727273:0.214285714285714:1:0.5:1:1:0.2:0.333333333333333:0.6875:0.708333333333333:0.25:0.266666666666667:0.111111111111111:1:1:0.333333333333333:0.428571428571429:0.666666666666667:0.25:0.5:0.833333333333333:0.5:0.735294117647059:0.0476190476190476:0.1:0.133333333333333:0.230769230769231:0.25:1:0.5:0.294117647058824:0.217391304347826:0.46875:0.5:1:0.2:0.166666666666667:0.666666666666667:1:0.8:0.407407407407407:1:0.0212765957446809:0.285714285714286:0.0909090909090909:0.333333333333333:0.2:0.333333333333333:0.5:0.5:1:0.111111111111111:0.5:0.903846153846154:0.5:0.2:1:1:0.0909090909090909:0.4:0.428571428571429:0.0625:0.25:0.833333333333333:1:0.956521739130435:0.111111111111111:0.6:0.212765957446809:0.5:0.207547169811321:1:0.75:0.294117647058824:0.666666666666667:1:0.333333333333333:0.714285714285714:0.142857142857143:1:0.3:0.416666666666667:0.272727272727273:0.25:0.333333333333333:0.345454545454545:0.0952380952380952:0.166666666666667:0.111111111111111:0.454545454545455:0.0666666666666667:1:0.636363636363636:0.636363636363636:0.25:0.272727272727273:0.824324324324324:1:0.75:0.545454545454545:1:1:0.0769230769230769:0.363636363636364:0.290322580645161:0.333333333333333:0.179487179487179:1:0.0666666666666667:0.333333333333333:1:0.478260869565217:0.166666666666667:1:1:0.0276497695852535:0.0716845878136201:0.0263736263736264:0.933333333333333:1:0.5:1:1:0.8125:0.361788617886179:0.113761467889908:0.113761467889908:0.157894736842105:0.333333333333333:0.0555555555555556:0.0357142857142857:0.375:0.111111111111111:0.584415584415584:0.0350877192982456:0.751111111111111:0.761245674740484:0.164989939637827:0.196652719665272:0.135549872122762:0.172113289760349:0.0240963855421687:0.0620767494356659:0.142268041237113:0.147441457068517:0.147959183673469:0.038961038961039:0.686274509803922:0.0929054054054054:0.364787111622555:0.331306990881459:0.691449814126394:0.691449814126394:0.0769230769230769:0.347826086956522:0.117647058823529:0.148148148148148:0.05:0.290030211480363:0.680272108843537:0.188679245283019:0.0701754385964912:0.801526717557252:0.236842105263158:0.1953125:0.0539906103286385:0.015625:0.0390492359932088:0.00790513833992095:0.0597826086956522:0.136783733826248:0.362359550561798:0.0713719270420301:0.328621908127208:0.0657672849915683:0.320099255583127:0.075:0.433021806853583:0.524818401937046:0.524818401937046:0.259259259259259:0.483695652173913:0.0269360269360269:0.100486223662885:0.785507246376812:0.137870855148342:0.472340425531915:0.194331983805668:0.0830769230769231:0.418055555555556:0.546296296296296:0.247596153846154:0.52:0.39832285115304:0.601866251944012:0.234016887816647:0.214007782101167:0.153153153153153:0.137180700094607:0.0666666666666667:0.037037037037037:0.1:0.2:0.458333333333333:0.0588235294117647:0.111111111111111:0.333333333333333:0.181818181818182:0.473684210526316:0.5:0.2:0.136363636363636:0.0769230769230769:0.142857142857143:0.285714285714286:0.25:0.445714285714286:0.149377593360996:0.0227790432801822:0.182278481012658:0.540123456790123:0.021505376344086:0.541666666666667:0.00429184549356223:0.473684210526316:0.103508771929825:0.0930232558139535:0.391304347826087:0.072:0.0113636363636364:0.148837209302326:0.448051948051948:0.761038961038961:0.530373831775701:0.222857142857143:0.433862433862434:0.0810810810810811:0.0723327305605787:0.410714285714286:0.247910863509749:0.384615384615385:0.125:0.24:0.783582089552239:0.0646651270207852:0.445569620253165:0.754777070063694:0.165137614678899:0.10732538330494:0.0375:0.538461538461538:0.0981387478849408:0.029126213592233:0.0833333333333333:0.443514644351464:0.0917431192660551:0.03125:0.674418604651163:0.3125:0.375:0.314285714285714 R:204 cAa/cGa:203|Caa/Aaa:140|cAa/cTa:46|caA/caT:14|caA/caC:13|ggACaa/ggCAaa:2|cAa/cCa:2|Caa/Taa:1|CAa/AGa:1 1:115256529_252|1:115256530_143|1:115256528_27 skcm:787:186|thpa:486:43|mm:275:27|thpd:58:18|coadread:683:16|luad:2057:15|coad:712:13|mup:42:7|aml:198:6|blca:852:5|thap:33:5|read:149:5|rms:50:5|uec:339:5|nsgct:152:5|cll:283:4|ihch:104:4|lgsoc:17:3|sem:59:3|thhc:21:3|erms:8:3|lggnos:544:3|utuc:76:2|cup:135:2|thfo:5:2|sarcl:13:2|mfh:53:2|gbm:688:2|soc:468:2|stad:748:2|thym:125:2|es:229:1|npc:66:1|unk:146:1|panet:86:1|hnsc:643:1|armm:21:1|tmt:3:1|acrm:23:1|thyc:9:1|odg:36:1|paasc:8:1|hnmucm:11:1|blad:7:1|esca:556:1|mixed:3:1|chol:152:1|hcc:620:1|sarc:280:1|chrcc:88:1|aca:93:1 skin:974:187|thyroid:618:71|blood:890:37|bowel:1782:35|lung:2761:17|unk:357:11|softtissue:739:11|testis:217:9|bladder:958:8|cnsbrain:2270:6|ovaryfallopiantube:699:5|biliarytract:358:5|uterus:618:5|headandneck:988:3|thymus:162:3|esophagusstomach:1407:3|pancreas:1059:2|bone:297:1|liver:636:1|kidney:1304:1|adrenalgland:291:1 TTG|ACA|CTT|TCG|CCC|CCA 0.0120300464273379 0.0267810594223141 24592 "pancan,skin,thyroid,bowel,blood,lung,softtissue,testis,bladder,cnsbrain,biliarytract,ovaryfallopiantube,uterus,thymus,headandneck,esophagusstomach" 0 NRAS 61 0 FALSE NA 1 1.16795714944678 1.26187131041539 1.29838371117394 TRUE 165 257 RETAIN TRUE TRUE Q 0 skin skin:88|thyroid:54|blood:15|bowel:8|testis:5|biliarytract:4|bladder:4|lung:4|ovaryfallopiantube:4|softtissue:3|unk:3|uterus:3|cnsbrain:2|esophagusstomach:2|headandneck:2|bone:1|pancreas:1|thymus:1
NRAS 61 -1237.69143477067 422 Q:422 620 0.333333333333333 295|0.692307692307692:0.733333333333333:0.2:0.933333333333333:1:0.25:0.666666666666667:1:0.25:0.571428571428571:1:1:0.5:0.363636363636364:0.428571428571429:0.0833333333333333:1:1:1:1:0.5:1:0.125:0.363636363636364:0.173913043478261:0.25:1:0.8:0.153846153846154:0.857142857142857:0.5:0.5:0.5:1:0.272727272727273:0.214285714285714:1:0.5:1:1:0.2:0.333333333333333:0.6875:0.708333333333333:0.25:0.266666666666667:0.111111111111111:1:1:0.333333333333333:0.428571428571429:0.666666666666667:0.25:0.5:0.833333333333333:0.5:0.735294117647059:0.0476190476190476:0.1:0.133333333333333:0.230769230769231:0.25:1:0.5:0.294117647058824:0.217391304347826:0.46875:0.5:1:0.2:0.166666666666667:0.666666666666667:1:0.8:0.407407407407407:1:0.0212765957446809:0.285714285714286:0.0909090909090909:0.333333333333333:0.2:0.333333333333333:0.5:0.5:1:0.111111111111111:0.5:0.903846153846154:0.5:0.2:1:1:0.0909090909090909:0.4:0.428571428571429:0.0625:0.25:0.833333333333333:1:0.956521739130435:0.111111111111111:0.6:0.212765957446809:0.5:0.207547169811321:1:0.75:0.294117647058824:0.666666666666667:1:0.333333333333333:0.714285714285714:0.142857142857143:1:0.3:0.416666666666667:0.272727272727273:0.25:0.333333333333333:0.345454545454545:0.0952380952380952:0.166666666666667:0.111111111111111:0.454545454545455:0.0666666666666667:1:0.636363636363636:0.636363636363636:0.25:0.272727272727273:0.824324324324324:1:0.75:0.545454545454545:1:1:0.0769230769230769:0.363636363636364:0.290322580645161:0.333333333333333:0.179487179487179:1:0.0666666666666667:0.333333333333333:1:0.478260869565217:0.166666666666667:1:1:0.0276497695852535:0.0716845878136201:0.0263736263736264:0.933333333333333:1:0.5:1:1:0.8125:0.361788617886179:0.113761467889908:0.113761467889908:0.157894736842105:0.333333333333333:0.0555555555555556:0.0357142857142857:0.375:0.111111111111111:0.584415584415584:0.0350877192982456:0.751111111111111:0.761245674740484:0.164989939637827:0.196652719665272:0.135549872122762:0.172113289760349:0.0240963855421687:0.0620767494356659:0.142268041237113:0.147441457068517:0.147959183673469:0.038961038961039:0.686274509803922:0.0929054054054054:0.364787111622555:0.331306990881459:0.691449814126394:0.691449814126394:0.0769230769230769:0.347826086956522:0.117647058823529:0.148148148148148:0.05:0.290030211480363:0.680272108843537:0.188679245283019:0.0701754385964912:0.801526717557252:0.236842105263158:0.1953125:0.0539906103286385:0.015625:0.0390492359932088:0.00790513833992095:0.0597826086956522:0.136783733826248:0.362359550561798:0.0713719270420301:0.328621908127208:0.0657672849915683:0.320099255583127:0.075:0.433021806853583:0.524818401937046:0.524818401937046:0.259259259259259:0.483695652173913:0.0269360269360269:0.100486223662885:0.785507246376812:0.137870855148342:0.472340425531915:0.194331983805668:0.0830769230769231:0.418055555555556:0.546296296296296:0.247596153846154:0.52:0.39832285115304:0.601866251944012:0.234016887816647:0.214007782101167:0.153153153153153:0.137180700094607:0.0666666666666667:0.037037037037037:0.1:0.2:0.458333333333333:0.0588235294117647:0.111111111111111:0.333333333333333:0.181818181818182:0.473684210526316:0.5:0.2:0.136363636363636:0.0769230769230769:0.142857142857143:0.285714285714286:0.25:0.445714285714286:0.149377593360996:0.0227790432801822:0.182278481012658:0.540123456790123:0.021505376344086:0.541666666666667:0.00429184549356223:0.473684210526316:0.103508771929825:0.0930232558139535:0.391304347826087:0.072:0.0113636363636364:0.148837209302326:0.448051948051948:0.761038961038961:0.530373831775701:0.222857142857143:0.433862433862434:0.0810810810810811:0.0723327305605787:0.410714285714286:0.247910863509749:0.384615384615385:0.125:0.24:0.783582089552239:0.0646651270207852:0.445569620253165:0.754777070063694:0.165137614678899:0.10732538330494:0.0375:0.538461538461538:0.0981387478849408:0.029126213592233:0.0833333333333333:0.443514644351464:0.0917431192660551:0.03125:0.674418604651163:0.3125:0.375:0.314285714285714 K:142 cAa/cGa:203|Caa/Aaa:140|cAa/cTa:46|caA/caT:14|caA/caC:13|ggACaa/ggCAaa:2|cAa/cCa:2|Caa/Taa:1|CAa/AGa:1 1:115256529_252|1:115256530_143|1:115256528_27 skcm:787:186|thpa:486:43|mm:275:27|thpd:58:18|coadread:683:16|luad:2057:15|coad:712:13|mup:42:7|aml:198:6|blca:852:5|thap:33:5|read:149:5|rms:50:5|uec:339:5|nsgct:152:5|cll:283:4|ihch:104:4|lgsoc:17:3|sem:59:3|thhc:21:3|erms:8:3|lggnos:544:3|utuc:76:2|cup:135:2|thfo:5:2|sarcl:13:2|mfh:53:2|gbm:688:2|soc:468:2|stad:748:2|thym:125:2|es:229:1|npc:66:1|unk:146:1|panet:86:1|hnsc:643:1|armm:21:1|tmt:3:1|acrm:23:1|thyc:9:1|odg:36:1|paasc:8:1|hnmucm:11:1|blad:7:1|esca:556:1|mixed:3:1|chol:152:1|hcc:620:1|sarc:280:1|chrcc:88:1|aca:93:1 skin:974:187|thyroid:618:71|blood:890:37|bowel:1782:35|lung:2761:17|unk:357:11|softtissue:739:11|testis:217:9|bladder:958:8|cnsbrain:2270:6|ovaryfallopiantube:699:5|biliarytract:358:5|uterus:618:5|headandneck:988:3|thymus:162:3|esophagusstomach:1407:3|pancreas:1059:2|bone:297:1|liver:636:1|kidney:1304:1|adrenalgland:291:1 TTG|ACA|CTT|TCG|CCC|CCA 0.0120300464273379 0.0267810594223141 24592 "pancan,skin,thyroid,bowel,blood,lung,softtissue,testis,bladder,cnsbrain,biliarytract,ovaryfallopiantube,uterus,thymus,headandneck,esophagusstomach" 0 NRAS 61 0 FALSE NA 1 1.16795714944678 1.26187131041539 1.29838371117394 TRUE 165 257 RETAIN TRUE TRUE Q 0 skin skin:62|bowel:18|thyroid:17|blood:12|softtissue:6|lung:5|unk:5|bladder:3|cnsbrain:2|thymus:2|adrenalgland:1|biliarytract:1|esophagusstomach:1|headandneck:1|kidney:1|liver:1|ovaryfallopiantube:1|pancreas:1|testis:1|uterus:1
NRAS 61 -1237.69143477067 422 Q:422 620 0.333333333333333 295|0.692307692307692:0.733333333333333:0.2:0.933333333333333:1:0.25:0.666666666666667:1:0.25:0.571428571428571:1:1:0.5:0.363636363636364:0.428571428571429:0.0833333333333333:1:1:1:1:0.5:1:0.125:0.363636363636364:0.173913043478261:0.25:1:0.8:0.153846153846154:0.857142857142857:0.5:0.5:0.5:1:0.272727272727273:0.214285714285714:1:0.5:1:1:0.2:0.333333333333333:0.6875:0.708333333333333:0.25:0.266666666666667:0.111111111111111:1:1:0.333333333333333:0.428571428571429:0.666666666666667:0.25:0.5:0.833333333333333:0.5:0.735294117647059:0.0476190476190476:0.1:0.133333333333333:0.230769230769231:0.25:1:0.5:0.294117647058824:0.217391304347826:0.46875:0.5:1:0.2:0.166666666666667:0.666666666666667:1:0.8:0.407407407407407:1:0.0212765957446809:0.285714285714286:0.0909090909090909:0.333333333333333:0.2:0.333333333333333:0.5:0.5:1:0.111111111111111:0.5:0.903846153846154:0.5:0.2:1:1:0.0909090909090909:0.4:0.428571428571429:0.0625:0.25:0.833333333333333:1:0.956521739130435:0.111111111111111:0.6:0.212765957446809:0.5:0.207547169811321:1:0.75:0.294117647058824:0.666666666666667:1:0.333333333333333:0.714285714285714:0.142857142857143:1:0.3:0.416666666666667:0.272727272727273:0.25:0.333333333333333:0.345454545454545:0.0952380952380952:0.166666666666667:0.111111111111111:0.454545454545455:0.0666666666666667:1:0.636363636363636:0.636363636363636:0.25:0.272727272727273:0.824324324324324:1:0.75:0.545454545454545:1:1:0.0769230769230769:0.363636363636364:0.290322580645161:0.333333333333333:0.179487179487179:1:0.0666666666666667:0.333333333333333:1:0.478260869565217:0.166666666666667:1:1:0.0276497695852535:0.0716845878136201:0.0263736263736264:0.933333333333333:1:0.5:1:1:0.8125:0.361788617886179:0.113761467889908:0.113761467889908:0.157894736842105:0.333333333333333:0.0555555555555556:0.0357142857142857:0.375:0.111111111111111:0.584415584415584:0.0350877192982456:0.751111111111111:0.761245674740484:0.164989939637827:0.196652719665272:0.135549872122762:0.172113289760349:0.0240963855421687:0.0620767494356659:0.142268041237113:0.147441457068517:0.147959183673469:0.038961038961039:0.686274509803922:0.0929054054054054:0.364787111622555:0.331306990881459:0.691449814126394:0.691449814126394:0.0769230769230769:0.347826086956522:0.117647058823529:0.148148148148148:0.05:0.290030211480363:0.680272108843537:0.188679245283019:0.0701754385964912:0.801526717557252:0.236842105263158:0.1953125:0.0539906103286385:0.015625:0.0390492359932088:0.00790513833992095:0.0597826086956522:0.136783733826248:0.362359550561798:0.0713719270420301:0.328621908127208:0.0657672849915683:0.320099255583127:0.075:0.433021806853583:0.524818401937046:0.524818401937046:0.259259259259259:0.483695652173913:0.0269360269360269:0.100486223662885:0.785507246376812:0.137870855148342:0.472340425531915:0.194331983805668:0.0830769230769231:0.418055555555556:0.546296296296296:0.247596153846154:0.52:0.39832285115304:0.601866251944012:0.234016887816647:0.214007782101167:0.153153153153153:0.137180700094607:0.0666666666666667:0.037037037037037:0.1:0.2:0.458333333333333:0.0588235294117647:0.111111111111111:0.333333333333333:0.181818181818182:0.473684210526316:0.5:0.2:0.136363636363636:0.0769230769230769:0.142857142857143:0.285714285714286:0.25:0.445714285714286:0.149377593360996:0.0227790432801822:0.182278481012658:0.540123456790123:0.021505376344086:0.541666666666667:0.00429184549356223:0.473684210526316:0.103508771929825:0.0930232558139535:0.391304347826087:0.072:0.0113636363636364:0.148837209302326:0.448051948051948:0.761038961038961:0.530373831775701:0.222857142857143:0.433862433862434:0.0810810810810811:0.0723327305605787:0.410714285714286:0.247910863509749:0.384615384615385:0.125:0.24:0.783582089552239:0.0646651270207852:0.445569620253165:0.754777070063694:0.165137614678899:0.10732538330494:0.0375:0.538461538461538:0.0981387478849408:0.029126213592233:0.0833333333333333:0.443514644351464:0.0917431192660551:0.03125:0.674418604651163:0.3125:0.375:0.314285714285714 L:46 cAa/cGa:203|Caa/Aaa:140|cAa/cTa:46|caA/caT:14|caA/caC:13|ggACaa/ggCAaa:2|cAa/cCa:2|Caa/Taa:1|CAa/AGa:1 1:115256529_252|1:115256530_143|1:115256528_27 skcm:787:186|thpa:486:43|mm:275:27|thpd:58:18|coadread:683:16|luad:2057:15|coad:712:13|mup:42:7|aml:198:6|blca:852:5|thap:33:5|read:149:5|rms:50:5|uec:339:5|nsgct:152:5|cll:283:4|ihch:104:4|lgsoc:17:3|sem:59:3|thhc:21:3|erms:8:3|lggnos:544:3|utuc:76:2|cup:135:2|thfo:5:2|sarcl:13:2|mfh:53:2|gbm:688:2|soc:468:2|stad:748:2|thym:125:2|es:229:1|npc:66:1|unk:146:1|panet:86:1|hnsc:643:1|armm:21:1|tmt:3:1|acrm:23:1|thyc:9:1|odg:36:1|paasc:8:1|hnmucm:11:1|blad:7:1|esca:556:1|mixed:3:1|chol:152:1|hcc:620:1|sarc:280:1|chrcc:88:1|aca:93:1 skin:974:187|thyroid:618:71|blood:890:37|bowel:1782:35|lung:2761:17|unk:357:11|softtissue:739:11|testis:217:9|bladder:958:8|cnsbrain:2270:6|ovaryfallopiantube:699:5|biliarytract:358:5|uterus:618:5|headandneck:988:3|thymus:162:3|esophagusstomach:1407:3|pancreas:1059:2|bone:297:1|liver:636:1|kidney:1304:1|adrenalgland:291:1 TTG|ACA|CTT|TCG|CCC|CCA 0.0120300464273379 0.0267810594223141 24592 "pancan,skin,thyroid,bowel,blood,lung,softtissue,testis,bladder,cnsbrain,biliarytract,ovaryfallopiantube,uterus,thymus,headandneck,esophagusstomach" 0 NRAS 61 0 FALSE NA 1 1.16795714944678 1.26187131041539 1.29838371117394 TRUE 165 257 RETAIN TRUE TRUE Q 0 skin skin:24|bowel:7|lung:6|blood:2|cnsbrain:2|unk:2|bladder:1|softtissue:1|uterus:1
NRAS 61 -1237.69143477067 422 Q:422 620 0.333333333333333 295|0.692307692307692:0.733333333333333:0.2:0.933333333333333:1:0.25:0.666666666666667:1:0.25:0.571428571428571:1:1:0.5:0.363636363636364:0.428571428571429:0.0833333333333333:1:1:1:1:0.5:1:0.125:0.363636363636364:0.173913043478261:0.25:1:0.8:0.153846153846154:0.857142857142857:0.5:0.5:0.5:1:0.272727272727273:0.214285714285714:1:0.5:1:1:0.2:0.333333333333333:0.6875:0.708333333333333:0.25:0.266666666666667:0.111111111111111:1:1:0.333333333333333:0.428571428571429:0.666666666666667:0.25:0.5:0.833333333333333:0.5:0.735294117647059:0.0476190476190476:0.1:0.133333333333333:0.230769230769231:0.25:1:0.5:0.294117647058824:0.217391304347826:0.46875:0.5:1:0.2:0.166666666666667:0.666666666666667:1:0.8:0.407407407407407:1:0.0212765957446809:0.285714285714286:0.0909090909090909:0.333333333333333:0.2:0.333333333333333:0.5:0.5:1:0.111111111111111:0.5:0.903846153846154:0.5:0.2:1:1:0.0909090909090909:0.4:0.428571428571429:0.0625:0.25:0.833333333333333:1:0.956521739130435:0.111111111111111:0.6:0.212765957446809:0.5:0.207547169811321:1:0.75:0.294117647058824:0.666666666666667:1:0.333333333333333:0.714285714285714:0.142857142857143:1:0.3:0.416666666666667:0.272727272727273:0.25:0.333333333333333:0.345454545454545:0.0952380952380952:0.166666666666667:0.111111111111111:0.454545454545455:0.0666666666666667:1:0.636363636363636:0.636363636363636:0.25:0.272727272727273:0.824324324324324:1:0.75:0.545454545454545:1:1:0.0769230769230769:0.363636363636364:0.290322580645161:0.333333333333333:0.179487179487179:1:0.0666666666666667:0.333333333333333:1:0.478260869565217:0.166666666666667:1:1:0.0276497695852535:0.0716845878136201:0.0263736263736264:0.933333333333333:1:0.5:1:1:0.8125:0.361788617886179:0.113761467889908:0.113761467889908:0.157894736842105:0.333333333333333:0.0555555555555556:0.0357142857142857:0.375:0.111111111111111:0.584415584415584:0.0350877192982456:0.751111111111111:0.761245674740484:0.164989939637827:0.196652719665272:0.135549872122762:0.172113289760349:0.0240963855421687:0.0620767494356659:0.142268041237113:0.147441457068517:0.147959183673469:0.038961038961039:0.686274509803922:0.0929054054054054:0.364787111622555:0.331306990881459:0.691449814126394:0.691449814126394:0.0769230769230769:0.347826086956522:0.117647058823529:0.148148148148148:0.05:0.290030211480363:0.680272108843537:0.188679245283019:0.0701754385964912:0.801526717557252:0.236842105263158:0.1953125:0.0539906103286385:0.015625:0.0390492359932088:0.00790513833992095:0.0597826086956522:0.136783733826248:0.362359550561798:0.0713719270420301:0.328621908127208:0.0657672849915683:0.320099255583127:0.075:0.433021806853583:0.524818401937046:0.524818401937046:0.259259259259259:0.483695652173913:0.0269360269360269:0.100486223662885:0.785507246376812:0.137870855148342:0.472340425531915:0.194331983805668:0.0830769230769231:0.418055555555556:0.546296296296296:0.247596153846154:0.52:0.39832285115304:0.601866251944012:0.234016887816647:0.214007782101167:0.153153153153153:0.137180700094607:0.0666666666666667:0.037037037037037:0.1:0.2:0.458333333333333:0.0588235294117647:0.111111111111111:0.333333333333333:0.181818181818182:0.473684210526316:0.5:0.2:0.136363636363636:0.0769230769230769:0.142857142857143:0.285714285714286:0.25:0.445714285714286:0.149377593360996:0.0227790432801822:0.182278481012658:0.540123456790123:0.021505376344086:0.541666666666667:0.00429184549356223:0.473684210526316:0.103508771929825:0.0930232558139535:0.391304347826087:0.072:0.0113636363636364:0.148837209302326:0.448051948051948:0.761038961038961:0.530373831775701:0.222857142857143:0.433862433862434:0.0810810810810811:0.0723327305605787:0.410714285714286:0.247910863509749:0.384615384615385:0.125:0.24:0.783582089552239:0.0646651270207852:0.445569620253165:0.754777070063694:0.165137614678899:0.10732538330494:0.0375:0.538461538461538:0.0981387478849408:0.029126213592233:0.0833333333333333:0.443514644351464:0.0917431192660551:0.03125:0.674418604651163:0.3125:0.375:0.314285714285714 H:27 cAa/cGa:203|Caa/Aaa:140|cAa/cTa:46|caA/caT:14|caA/caC:13|ggACaa/ggCAaa:2|cAa/cCa:2|Caa/Taa:1|CAa/AGa:1 1:115256529_252|1:115256530_143|1:115256528_27 skcm:787:186|thpa:486:43|mm:275:27|thpd:58:18|coadread:683:16|luad:2057:15|coad:712:13|mup:42:7|aml:198:6|blca:852:5|thap:33:5|read:149:5|rms:50:5|uec:339:5|nsgct:152:5|cll:283:4|ihch:104:4|lgsoc:17:3|sem:59:3|thhc:21:3|erms:8:3|lggnos:544:3|utuc:76:2|cup:135:2|thfo:5:2|sarcl:13:2|mfh:53:2|gbm:688:2|soc:468:2|stad:748:2|thym:125:2|es:229:1|npc:66:1|unk:146:1|panet:86:1|hnsc:643:1|armm:21:1|tmt:3:1|acrm:23:1|thyc:9:1|odg:36:1|paasc:8:1|hnmucm:11:1|blad:7:1|esca:556:1|mixed:3:1|chol:152:1|hcc:620:1|sarc:280:1|chrcc:88:1|aca:93:1 skin:974:187|thyroid:618:71|blood:890:37|bowel:1782:35|lung:2761:17|unk:357:11|softtissue:739:11|testis:217:9|bladder:958:8|cnsbrain:2270:6|ovaryfallopiantube:699:5|biliarytract:358:5|uterus:618:5|headandneck:988:3|thymus:162:3|esophagusstomach:1407:3|pancreas:1059:2|bone:297:1|liver:636:1|kidney:1304:1|adrenalgland:291:1 TTG|ACA|CTT|TCG|CCC|CCA 0.0120300464273379 0.0267810594223141 24592 "pancan,skin,thyroid,bowel,blood,lung,softtissue,testis,bladder,cnsbrain,biliarytract,ovaryfallopiantube,uterus,thymus,headandneck,esophagusstomach" 0 NRAS 61 0 FALSE NA 1 1.16795714944678 1.26187131041539 1.29838371117394 TRUE 165 257 RETAIN TRUE TRUE Q 0 skin skin:12|blood:7|bowel:2|lung:2|testis:2|softtissue:1|unk:1

Indel

Hugo_Symbol     Amino_Acid_Position     log10_pvalue    Mutation_Count  Reference_Amino_Acid    Total_Mutations_in_Gene Median_Allele_Freq_Rank Allele_Freq_Rank        SNP_ID  Variant_Amino_Acid    Codon_Change    Genomic_Position        Detailed_Cancer_Types   Organ_Types     Tri-nucleotides Mutability      mu_protein      ccf     Total_Samples   indel_size      qvalue  tm   Is_repeat        seq     length  align100        pad12entropy    pad24entropy    pad36entropy    TP      reason  n_MSK   n_Retro judgement       inNBT   inOncokb        Samples
SMARCA4 546 -7.75235638169585 5 QK:5 101 NA NA :NA K546del:5 cAGAag/cag:5 19:11106926_5 lgg:536:4|dlbcl:246:1 cnsbrain:2283:4|lymph:366:1 NA 0.0573226243518208 0.0473351872460284 NA 24592 1 0.000230672905611517 SMARCA4 546 FALSE NA NA 1 0.91489630957268 1.2950060272429 1.33965330506364 FALSE LOCAL_ENTROPY 1 4 RETAIN FALSE FALSE cnsbrain:4|lymph:1
CDKN2A 27-42 -6.82111516846557 12 VRALLEA:4|LEAGALP:3|ALPN:1|EV:1|GA:1|PNAPN:1|RALLEA:1 219 NA NA :NA V28_E33del:4 gTGCGGGCGCTGCTGGAGGcg/gcg:4|cTGGAGGCGGGGGCGCTGCcc/ccc:3|GGGGCG/-:1|gCGCTGCCCAac/gac:1|gAGGtg/gtg:1|CGGGCGCTGCTGGAGGCG/-:1|ccCAACGCACCGAAt/cct:1 9:21974727_4|9:21974715_3|9:21974745_1|9:21974725_1|9:21974719_1|9:21974712_1|9:21974702_1 luad:2071:3|esca:556:2|blca:852:1|skcm:192:1|icemu:1:1|paad:932:1|mel:595:1|stad:748:1|hnsc:650:1 esophagusstomach:1413:3|lung:2767:3|skin:974:2|bladder:955:1|cervix:234:1|pancreas:1059:1|headandneck:988:1 NA 0.0573226243518208 0.0473351872460284 NA 24592 15 8.77193090544841e-05 CDKN2A 27-42 FALSE NA NA 1 0.857780912379927 1.13008762297022 1.1577633500238 FALSE LOCAL_ENTROPY 6 6 RETAIN FALSE FALSE cervix:1|esophagusstomach:1|lung:1|pancreas:1
CDKN2A 27-42 -6.82111516846557 12 VRALLEA:4|LEAGALP:3|ALPN:1|EV:1|GA:1|PNAPN:1|RALLEA:1 219 NA NA :NA L32_L37del:3 gTGCGGGCGCTGCTGGAGGcg/gcg:4|cTGGAGGCGGGGGCGCTGCcc/ccc:3|GGGGCG/-:1|gCGCTGCCCAac/gac:1|gAGGtg/gtg:1|CGGGCGCTGCTGGAGGCG/-:1|ccCAACGCACCGAAt/cct:1 9:21974727_4|9:21974715_3|9:21974745_1|9:21974725_1|9:21974719_1|9:21974712_1|9:21974702_1 luad:2071:3|esca:556:2|blca:852:1|skcm:192:1|icemu:1:1|paad:932:1|mel:595:1|stad:748:1|hnsc:650:1 esophagusstomach:1413:3|lung:2767:3|skin:974:2|bladder:955:1|cervix:234:1|pancreas:1059:1|headandneck:988:1 NA 0.0573226243518208 0.0473351872460284 NA 24592 15 8.77193090544841e-05 CDKN2A 27-42 FALSE NA NA 1 0.857780912379927 1.13008762297022 1.1577633500238 FALSE LOCAL_ENTROPY 6 6 RETAIN FALSE FALSE skin:2|esophagusstomach:1
CDKN2A 27-42 -6.82111516846557 12 VRALLEA:4|LEAGALP:3|ALPN:1|EV:1|GA:1|PNAPN:1|RALLEA:1 219 NA NA :NA A36_N39delinsD:1 gTGCGGGCGCTGCTGGAGGcg/gcg:4|cTGGAGGCGGGGGCGCTGCcc/ccc:3|GGGGCG/-:1|gCGCTGCCCAac/gac:1|gAGGtg/gtg:1|CGGGCGCTGCTGGAGGCG/-:1|ccCAACGCACCGAAt/cct:1 9:21974727_4|9:21974715_3|9:21974745_1|9:21974725_1|9:21974719_1|9:21974712_1|9:21974702_1 luad:2071:3|esca:556:2|blca:852:1|skcm:192:1|icemu:1:1|paad:932:1|mel:595:1|stad:748:1|hnsc:650:1 esophagusstomach:1413:3|lung:2767:3|skin:974:2|bladder:955:1|cervix:234:1|pancreas:1059:1|headandneck:988:1 NA 0.0573226243518208 0.0473351872460284 NA 24592 15 8.77193090544841e-05 CDKN2A 27-42 FALSE NA NA 0.857780912379927 1.13008762297022 1.1577633500238 FALSE LOCAL_ENTROPY 6 6 RETAIN FALSE FALSE lung:1

Parsing

From the file, we're mainly interested in the following columns:

  • Hugo_Symbol
  • Amino_Acid_Position
  • Mutation_Count
  • Reference_Amino_Acid
  • Variant_Amino_Acid
  • qvalue

We map the gene symbol onto the canonical transcripts (RefSeq & Ensembl) for that gene. For SNVs, we obtain position, ref and alt amino acid from source file and generate substitution notation. For indels, we get protein change notation from Reference_Amino_Acid column. Then we match each entry using these notations.

caution

We currently skip all variants labeled as splice from the source

JSON Output

The data source will be captured under the cancerHotspots key in the transcript section.

{
"transcript":"NM_002524.5",
"source":"RefSeq",
"bioType":"mRNA",
"aminoAcids":"Q/K",
"proteinPos":"61",
"geneId":"4893",
"hgnc":"NRAS",
"hgvsc":"NM_002524.5:c.181C>A",
"hgvsp":"NP_002515.1:p.(Gln61Lys)",
"isCanonical":true,
"proteinId":"NP_002515.1",
"cancerHotspots":{
"residue":"Q61",
"numSamples":422,
"numAltAminoAcidSamples":142,
"qValue":0
}
}
FieldTypeNotes
residuestring
numSamplesinthow many samples are associated with a variant at the same amino acid position
numAltAminoAcidSamplesinthow many samples are associated with a variant with the same position and alternate amino acid position
qValuedouble
- - + + \ No newline at end of file diff --git a/3.23/data-sources/clingen-dosage-json/index.html b/3.23/data-sources/clingen-dosage-json/index.html index fa82a2fe..10f96481 100644 --- a/3.23/data-sources/clingen-dosage-json/index.html +++ b/3.23/data-sources/clingen-dosage-json/index.html @@ -6,13 +6,13 @@ clingen-dosage-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

clingen-dosage-json

"clingenDosageSensitivityMap": [{
"chromosome": "15",
"begin": 30900686,
"end": 32153204,
"haploinsufficiency": "sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype",
"triplosensitivity": "little evidence suggesting dosage sensitivity is associated with clinical phenotype",
"reciprocalOverlap": 0.00147,
"annotationOverlap": 0.33994
},
{
"chromosome": "15",
"begin": 31727418,
"end": 32153204,
"haploinsufficiency": "sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype",
"triplosensitivity": "dosage sensitivity unlikely",
"reciprocalOverlap": 0.00147,
"annotationOverlap": 1
}]
FieldTypeNotes
clingenDosageSensitivityMapobject array
chromosomestringEnsembl-style chromosome names
begininteger1-based position
endinteger1-based position
haploinsufficiencystringsee possible values below
triplosensitivitystring(same as haploinsufficiency) 
reciprocalOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).
annotationOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).

haploinsufficiency and triplosensitivity

  • no evidence to suggest that dosage sensitivity is associated with clinical phenotype
  • little evidence suggesting dosage sensitivity is associated with clinical phenotype
  • emerging evidence suggesting dosage sensitivity is associated with clinical phenotype
  • sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype
  • gene associated with autosomal recessive phenotype
  • dosage sensitivity unlikely
- - + + \ No newline at end of file diff --git a/3.23/data-sources/clingen-gene-validity-json/index.html b/3.23/data-sources/clingen-gene-validity-json/index.html index 5f27326b..d238e6e9 100644 --- a/3.23/data-sources/clingen-gene-validity-json/index.html +++ b/3.23/data-sources/clingen-gene-validity-json/index.html @@ -6,13 +6,13 @@ clingen-gene-validity-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

clingen-gene-validity-json

"clingenGeneValidity":[
{
"diseaseId":"MONDO_0007893",
"disease":"Noonan syndrome with multiple lentigines",
"classification":"no reported evidence",
"classificationDate":"2018-06-07"
},
{
"diseaseId":"MONDO_0015280",
"disease":"cardiofaciocutaneous syndrome",
"classification":"no reported evidence",
"classificationDate":"2018-06-07"
}
]
FieldTypeNotes
clingenGeneValidityobject
diseaseIdstringMonarch Disease Ontology ID (MONDO)
diseasestringdisease label
classificationstringsee below for possible values
classificationDatestringyyyy-MM-dd

classification

  • no reported evidence
  • disputed
  • limited
  • moderate
  • definitive
  • strong
  • refuted
  • no known disease relationship
- - + + \ No newline at end of file diff --git a/3.23/data-sources/clingen-json/index.html b/3.23/data-sources/clingen-json/index.html index 19b788ff..5466f06c 100644 --- a/3.23/data-sources/clingen-json/index.html +++ b/3.23/data-sources/clingen-json/index.html @@ -6,13 +6,13 @@ clingen-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

clingen-json

"clingen":[
{
"chromosome":"17",
"begin":525,
"end":14667519,
"variantType":"copy_number_gain",
"id":"nsv996083",
"clinicalInterpretation":"pathogenic",
"observedGains":1,
"validated":true,
"phenotypes":[
"Intrauterine growth retardation"
],
"phenotypeIds":[
"HP:0001511",
"MedGen:C1853481"
],
"reciprocalOverlap":0.00131
},
{
"chromosome":"17",
"begin":45835,
"end":7600330,
"variantType":"copy_number_loss",
"id":"nsv869419",
"clinicalInterpretation":"pathogenic",
"observedLosses":1,
"validated":true,
"phenotypes":[
"Developmental delay AND/OR other significant developmental or morphological phenotypes"
],
"reciprocalOverlap":0.00254
}
]
FieldTypeNotes
clingenobject array
chromosomestringEnsembl-style chromosome names
begininteger1-based position
endinteger1-based position
variantTypestringAny of the sequence alterations defined here.
idstringIdentifier from the data source. Alternatively a VID
clinicalInterpretationstringsee possible values below
observedGainsintegerRange: 0 - (231 - 1). Only used if copy_number_variation, copy_number_loss, or copy_number_gain.
observedLossesintegerRange: 0 - (231 - 1). Only used if copy_number_variation, copy_number_loss, or copy_number_gain.
validatedboolean
phenotypesstring arrayDescription of the phenotype.
phenotypeIdsstring arrayDescription of the phenotype IDs.
reciprocalOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).

clinicalInterpretation

  • benign
  • curated benign
  • curated pathogenic
  • likely benign
  • likely pathogenic
  • path gain
  • path loss
  • pathogenic
  • uncertain
- - + + \ No newline at end of file diff --git a/3.23/data-sources/clingen/index.html b/3.23/data-sources/clingen/index.html index dc441895..4d23c05a 100644 --- a/3.23/data-sources/clingen/index.html +++ b/3.23/data-sources/clingen/index.html @@ -6,13 +6,13 @@ ClinGen | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

ClinGen

Overview

ClinGen is a National Institutes of Health (NIH)-funded resource dedicated to building a central resource that defines the clinical relevance of genes and variants for use in precision medicine and research.

Publication

Heidi L. Rehm, Ph.D., Jonathan S. Berg, M.D., Ph.D., Lisa D. Brooks, Ph.D., Carlos D. Bustamante, Ph.D., James P. Evans, M.D., Ph.D., Melissa J. Landrum, Ph.D., David H. Ledbetter, Ph.D., Donna R. Maglott, Ph.D., Christa Lese Martin, Ph.D., Robert L. Nussbaum, M.D., Sharon E. Plon, M.D., Ph.D., Erin M. Ramos, Ph.D., Stephen T. Sherry, Ph.D., and Michael S. Watson, Ph.D., for ClinGen. ClinGen The Clinical Genome Resource. N Engl J Med 2015; 372:2235-2242 June 4, 2015 DOI: 10.1056/NEJMsr1406261.

ISCA Regions

TSV Extraction

ClinGen contains only copy number variation variants, since the coordinates in ClinGen original file follow the same rule as BED format, the coordinates had to be adjusted to [BEGIN+1, END].

#bin    chrom   chromStart      chromEnd        name    score   strand  thickStart      thickEnd        attrCount       attrTags        attrVals
nsv530705 1 564405 8597804 0 1 copy_number_loss pathogenic False Developmental delay AND/OR other significant developmental or morphological phenotypes
nsv530706 1 564424 3262790 0 1 copy_number_loss pathogenic False Abnormal facial shape,Abnormality of cardiac morphology,Global developmental delay,Muscular hypotonia HP:0001252,HP:0001263,HP:0001627,HP:0001999,MedGen:CN001147,MedGen:CN001157,MedGen:CN001482,MedGen:CN001810
nsv530707 1 564424 7068738 0 1 copy_number_loss pathogenic False Abnormality of cardiac morphology,Cleft upper lip,Failure to thrive,Global developmental delay,Intrauterine growth retardation,Microcephaly,Short stature HP:0000204,HP:0000252,HP:0001263,HP:0001508,HP:0001511,HP:0001627,HP:0004322,MedGen:C0349588,MedGen:C1845868,MedGen:C1853481,MedGen:C2364119,MedGen:CN000197,MedGen:CN001157,MedGen:CN001482
nsv533512 1 564435 649748 0 1 copy_number_loss benign False Developmental delay AND/OR other significant developmental or morphological phenotypes
nsv931338 1 714078 4958499 0 1 copy_number_loss pathogenic False Developmental delay AND/OR other significant developmental or morphological phenotypes
nsv530300 1 728138 5066371 1 0 copy_number_gain pathogenic False Abnormality of cardiac morphology,Cleft palate,Global developmental delay HP:0000175,HP:0001263,HP:0001627,MedGen:C2240378,MedGen:CN001157,MedGen:CN001482

Status levels

  • benign
  • curated benign
  • curated pathogenic
  • likely benign
  • likely pathogenic
  • path gain
  • path loss
  • pathogenic
  • uncertain

Parsing

We parse the ClinGen tsv file and extract the following:

  • chrom
  • chromStart (note this a 0-based coordinate)
  • chromEnd
  • attrTags
  • attrVals

attrTags and attrVals are comma separated lists. attrTags contains the field keys and attrVals contains the field values. We will parse the following keys from the two fields:

  • parent (this will be used as the ID in our JSON output)
  • clinical_int
  • validated
  • phenotype (this should be a string array)
  • phenotype_id (this should be a string array)

Observed losses and observed gains will be calculated from entries that share a common parent ID.

  • variants with a common parent ID and same coordinates are grouped
    • calculated observed losses, observed gains for each group
    • Clinical significance and validation status are collapsed using the priority strategy described below
  • Variants with the same parent ID can have different coordinates (mapped to hg38)
    • nsv491508 : chr14:105583663-106881350 and chr14:105605043-106766076 (only one example)
    • we kept both variants

Conflict Resolution

Clinical significance priority

When there are a mixture of variants belonging to the same parent ID, we will choose the most pathogenic clinical significance from the available values. i.e. if 3 samples were deemed pathogenic and 2 samples were likely pathogenic, we would list the variant as pathogenic.

Priority (high to low)

  • Priority
  • Pathogenic
  • Likely pathogenic
  • Benign
  • Likely benign
  • Uncertain significance

Validation Priority

When there are a mixture of variants belonging to same parent ID, we will set the validation status to true if any of the variants were validated.

Download URL

https://cirm.ucsc.edu/cgi-bin/hgTrackUi?db=hg19&g=iscaComposite

JSON Output

"clingen":[
{
"chromosome":"17",
"begin":525,
"end":14667519,
"variantType":"copy_number_gain",
"id":"nsv996083",
"clinicalInterpretation":"pathogenic",
"observedGains":1,
"validated":true,
"phenotypes":[
"Intrauterine growth retardation"
],
"phenotypeIds":[
"HP:0001511",
"MedGen:C1853481"
],
"reciprocalOverlap":0.00131
},
{
"chromosome":"17",
"begin":45835,
"end":7600330,
"variantType":"copy_number_loss",
"id":"nsv869419",
"clinicalInterpretation":"pathogenic",
"observedLosses":1,
"validated":true,
"phenotypes":[
"Developmental delay AND/OR other significant developmental or morphological phenotypes"
],
"reciprocalOverlap":0.00254
}
]
FieldTypeNotes
clingenobject array
chromosomestringEnsembl-style chromosome names
begininteger1-based position
endinteger1-based position
variantTypestringAny of the sequence alterations defined here.
idstringIdentifier from the data source. Alternatively a VID
clinicalInterpretationstringsee possible values below
observedGainsintegerRange: 0 - (231 - 1). Only used if copy_number_variation, copy_number_loss, or copy_number_gain.
observedLossesintegerRange: 0 - (231 - 1). Only used if copy_number_variation, copy_number_loss, or copy_number_gain.
validatedboolean
phenotypesstring arrayDescription of the phenotype.
phenotypeIdsstring arrayDescription of the phenotype IDs.
reciprocalOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).

clinicalInterpretation

  • benign
  • curated benign
  • curated pathogenic
  • likely benign
  • likely pathogenic
  • path gain
  • path loss
  • pathogenic
  • uncertain

Dosage Sensitivity Map

The Clinical Genome Resource (ClinGen) consortium is curating genes and regions of the genome to assess whether there is evidence to support that these genes/regions are dosage sensitive and should be targeted on a cytogenomic array. Illumina Connected Annotations reports these annotations for overlapping SVs.

Publication

Riggs ER, Nelson T, Merz A, Ackley T, Bunke B, Collins CD, Collinson MN, Fan YS, Goodenberger ML, Golden DM, Haglund-Hazy L, Krgovic D, Lamb AN, Lewis Z, Li G, Liu Y, Meck J, Neufeld-Kaiser W, Runke CK, Sanmann JN, Stavropoulos DJ, Strong E, Su M, Tayeh MK, Kokalj Vokac N, Thorland EC, Andersen E, Martin CL. Copy number variant discrepancy resolution using the ClinGen dosage sensitivity map results in updated clinical interpretations in ClinVar. Hum Mutat. 2018 Nov;39(11):1650-1659. doi: 10.1002/humu.23610. PMID: 30095202; PMCID: PMC7374944.

TSV Source files

Regions

#ClinGen Region Curation Results
#07 May,2019
#Genomic Locations are reported on GRCh38 (hg38): GCF_000001405.36
#https://www.ncbi.nlm.nih.gov/projects/dbvar/clingen
#to create link: https://www.ncbi.nlm.nih.gov/projects/dbvar/clingen/clingen_region.cgi?id=key
#ISCA ID ISCA Region Name cytoBand Genomic Location Haploinsufficiency Score Haploinsufficiency Description Haploinsufficiency PMID1 Haploinsufficiency PMID2 Haploinsufficiency PMID3 Triplosensitivity Score Triplosensitivity Description Triplosensitivity PMID1 Triplosensitivity PMID2 Triplosensitivity PMID3 Date Last Evaluated Loss phenotype OMIM ID Triplosensitive phenotype OMIM ID
ISCA-46299 Xp11.22 region (includes HUWE1) Xp11.22 tbd 0 No evidence available 3 Sufficient evidence for dosage pathogenicity 22840365 20655035 26692240 2018-11-19
ISCA-46295 15q13.3 recurrent region (D-CHRNA7 to BP5) (includes CHRNA7 and OTUD7A) 15q13.3 chr15:31727418-32153204 3 Sufficient evidence for dosage pathogenicity 19898479 20236110 22775350 40 Dosage sensitivity unlikely 26968334 22420048 2018-05-10
ISCA-46291 7q11.23 recurrent distal region (includes HIP1, YWHAG) 7q11.23 chr7:75528718-76433859 2 Some evidence for dosage pathogenicity 21109226 16971481 1 Little evidence for dosage pathogenicity 21109226 27867344 2018-12-31
ISCA-46290 Xp11.22p11.23 recurrent region (includes SHROOM4) Xp11.22-p11.23 chrX: 48447780-52444264 0 No evidence available 3 Sufficient evidence for dosage pathogenicity 19716111 21418194 25425167 2017-12-14 300801

Genes

#ClinGen Gene Curation Results
#24 May,2019
#Genomic Locations are reported on GRCh37 (hg19): GCF_000001405.13
#https://www.ncbi.nlm.nih.gov/projects/dbvar/clingen
#to create link: https://www.ncbi.nlm.nih.gov/projects/dbvar/clingen/clingen_gene.cgi?sym=Gene Symbol
#Gene Symbol Gene ID cytoBand Genomic Location Haploinsufficiency Score Haploinsufficiency Description Haploinsufficiency PMID1 Haploinsufficiency PMID2 Haploinsufficiency PMID3 Triplosensitivity Score Triplosensitivity Description Triplosensitivity PMID1 Triplosensitivity PMID2 Triplosensitivity PMID3 Date Last Evaluated Loss phenotype OMIM ID Triplosensitive phenotype OMIM ID
A4GALT 53947 22q13.2 chr22:43088121-43117307 30 Gene associated with autosomal recessive phenotype 0 No evidence available 2014-12-11 111400
AAGAB 79719 15q23 chr15:67493013-67547536 3 Sufficient evidence for dosage pathogenicity 23064416 23000146 0 No evidence available 2013-02-28 148600

Dosage Rating System

RatingPossible Clinical Interpretation
0No evidence to suggest that dosage sensitivity is associated with clinical phenotype
1Little evidence suggesting dosage sensitivity is associated with clinical phenotype
2Emerging evidence suggesting dosage sensitivity is associated with clinical phenotype
3Sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype
30Gene associated with autosomal recessive phenotype
40Dosage sensitivity unlikely

Reference: https://www.ncbi.nlm.nih.gov/projects/dbvar/clingen/help.shtml

Download URL

ftp://ftp.clinicalgenome.org/

JSON Output

"clingenDosageSensitivityMap": [{
"chromosome": "15",
"begin": 30900686,
"end": 32153204,
"haploinsufficiency": "sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype",
"triplosensitivity": "little evidence suggesting dosage sensitivity is associated with clinical phenotype",
"reciprocalOverlap": 0.00147,
"annotationOverlap": 0.33994
},
{
"chromosome": "15",
"begin": 31727418,
"end": 32153204,
"haploinsufficiency": "sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype",
"triplosensitivity": "dosage sensitivity unlikely",
"reciprocalOverlap": 0.00147,
"annotationOverlap": 1
}]
FieldTypeNotes
clingenDosageSensitivityMapobject array
chromosomestringEnsembl-style chromosome names
begininteger1-based position
endinteger1-based position
haploinsufficiencystringsee possible values below
triplosensitivitystring(same as haploinsufficiency) 
reciprocalOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).
annotationOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).

haploinsufficiency and triplosensitivity

  • no evidence to suggest that dosage sensitivity is associated with clinical phenotype
  • little evidence suggesting dosage sensitivity is associated with clinical phenotype
  • emerging evidence suggesting dosage sensitivity is associated with clinical phenotype
  • sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype
  • gene associated with autosomal recessive phenotype
  • dosage sensitivity unlikely

Building the supplementary files

The gene dosage sensitivity .nga for Illumina Connected Annotations can be built using the SAUtils command's DosageSensitivity subcommand. The required data file is ClinGen_gene_curation_list_{ASSEMBLY}.tsv (url provided above) and its associated .version file.

NAME=ClinGen Dosage Sensitivity Map
VERSION=20211201
DATE=2021-12-01
DESCRIPTION=Dosage sensitivity map from ClinGen (dbVar)

Here is a sample run:

dotnet SAUtils.dll DosageSensitivity
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll dosagesensitivity [options]
Creates a gene annotation database from dbVar data

OPTIONS:
--tsv, -t <VALUE> input tsv file
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version

dotnet SAUtils.dll DosageSensitivity --out SupplementaryDatabase/64/GRCh37 --tsv ClinGen_gene_curation_list_GRCh37.tsv
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------


Time: 00:00:00.1

For building the .nsi files, we use the SAUtils command's DosageMapRegions subcommand. The required data file is ClinGen_region_curation_list_{ASSEMBLY}.tsv (url provided above) and its associated .version file.

NAME=ClinGen Dosage Sensitivity Map
VERSION=20211201
DATE=2021-12-01
DESCRIPTION=Dosage sensitivity map from ClinGen (dbVar)

Here is a sample run:

dotnet SAUtils.dll DosageMapRegions
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll dosagemapregions [options]
Creates an interval annotation database from dbVar data

OPTIONS:
--tsv, -t <VALUE> input tsv file
--ref, -r <filename> input reference filename
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version

dotnet SAUtils.dll DosageMapRegions --out SupplementaryDatabase/64/GRCh37 --ref References/7/Homo_sapiens.GRCh37.Nirvana.dat --tsv ClinGen_region_curation_list_GRCh37.tsv
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

Writing 505 intervals to database...

Time: 00:00:00.1

You can also use SAUtils command's subcommands AutoDownloadGenerate to generate ClinGen files. To use AutoDownloadGenerate, read more in SAUtils section.

Gene-Disease Validity

The ClinGen Gene-Disease Clinical Validity curation process involves evaluating the strength of evidence supporting or refuting a claim that variation in a particular gene causes a particular disease. Illumina Connected Annotations reports these annotations for genes in the genes section of the JSON.

Publication

Strande NT, Riggs ER, Buchanan AH, et al. Evaluating the Clinical Validity of Gene-Disease Associations: An Evidence-Based Framework Developed by the Clinical Genome Resource. Am J Hum Genet. 2017;100(6):895-906. doi:10.1016/j.ajhg.2017.04.015

Source TSV

The source data comes in a CSV file that we convert to a TSV.

CLINGEN GENE VALIDITY CURATIONS
FILE CREATED: 2019-05-28
WEBPAGE: https://search.clinicalgenome.org/kb/gene-validity
+++++++++++,++++++++++++++,+++++++++++++,++++++++++++++++++,+++++++++,++++++++++++++,+++++++++++++,+++++++++++++++++++
GENE SYMBOL,GENE ID (HGNC),DISEASE LABEL,DISEASE ID (MONDO),SOP,CLASSIFICATION,ONLINE REPORT,CLASSIFICATION DATE
+++++++++++,++++++++++++++,+++++++++++++,++++++++++++++++++,+++++++++,++++++++++++++,+++++++++++++,+++++++++++++++++++
A2ML1,HGNC:23336,Noonan syndrome with multiple lentigines,MONDO_0007893,SOP5,No Reported Evidence,https://search.clinicalgenome.org/kb/gene-validity/59b87033-dd91-4f1e-aec1-c9b1f5124b16--2018-06-07T14:37:47,2018-06-07T14:37:47.175Z
A2ML1,HGNC:23336,cardiofaciocutaneous syndrome,MONDO_0015280,SOP5,No Reported Evidence,https://search.clinicalgenome.org/kb/gene-validity/fc3c41d8-8497-489b-a350-c9e30016bc6a--2018-06-07T14:31:03,2018-06-07T14:31:03.696Z
A2ML1,HGNC:23336,Costello syndrome,MONDO_0009026,SOP5,No Reported Evidence,https://search.clinicalgenome.org/kb/gene-validity/ea72ba8d-cf62-44bc-86be-da64e3848eba--2018-06-07T14:34:05,2018-06-07T14:34:05.324Z

Download URL

https://search.clinicalgenome.org/kb/downloads#section_gene-disease-validity

Conflict Resolution

Multiple Classifications

Here is an example of multiple classifications.

$ grep MONDO_0010192 ClinGen-Gene-Disease-Summary-2019-12-02.csv  | grep EDNRB
EDNRB,HGNC:3180,Waardenburg syndrome type 4A,MONDO_0010192,SOP6,Moderate,https://search.clinicalgenome.org/kb/gene-validity/d7abbd45-7915-437b-849b-dea876bfc2f5--2018-05-08T04:00:00,2018-05-08T04:00:00.000Z
EDNRB,HGNC:3180,Waardenburg syndrome type 4A,MONDO_0010192,SOP6,Limited,https://search.clinicalgenome.org/kb/gene-validity/73ee9727-60c1-40fd-830f-08c2b513d2ee--2018-05-08T04:00:00,2018-05-08T04:00:00.000Z

In such cases, we select the more severe classification.

Multiple Dates

$ grep MONDO_0016419 ClinGen-Gene-Disease-Summary-2019-12-02.csv  | grep MUTYH
MUTYH,HGNC:7527,hereditary breast carcinoma,MONDO_0016419,SOP4,No Reported Evidence,https://search.clinicalgenome.org/kb/gene-validity/9904,2017-05-24T00:00:00
MUTYH,HGNC:7527,hereditary breast carcinoma,MONDO_0016419,SOP4,No Reported Evidence,https://search.clinicalgenome.org/kb/gene-validity/9902,2017-05-25T00:00:00

If the classifications are the same, we should select the latest classification date.

JSON Output

"clingenGeneValidity":[
{
"diseaseId":"MONDO_0007893",
"disease":"Noonan syndrome with multiple lentigines",
"classification":"no reported evidence",
"classificationDate":"2018-06-07"
},
{
"diseaseId":"MONDO_0015280",
"disease":"cardiofaciocutaneous syndrome",
"classification":"no reported evidence",
"classificationDate":"2018-06-07"
}
]
FieldTypeNotes
clingenGeneValidityobject
diseaseIdstringMonarch Disease Ontology ID (MONDO)
diseasestringdisease label
classificationstringsee below for possible values
classificationDatestringyyyy-MM-dd

classification

  • no reported evidence
  • disputed
  • limited
  • moderate
  • definitive
  • strong
  • refuted
  • no known disease relationship

Building the supplementary files

The gene disease validity .nga for Illumina Connected Annotations can be built using the SAUtils command's DiseaseValidity subcommand. The only required data file is Clingen-Gene-Disease-Summary-2021-12-01.tsv (url provided above) and its associated .version file.

NAME=ClinGen disease validity curations
VERSION=20211201
DATE=2021-12-01
DESCRIPTION=Disease validity curations from ClinGen (dbVar)

Here is a sample run:

 dotnet SAUtils.dll DiseaseValidity
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll diseasevalidity [options]
Creates a gene annotation database from ClinGen gene validity data

OPTIONS:
--csv, -i <VALUE> ClinGen gene validity file path
--cache, -c <directory>
input cache directory
--ref, -r <filename> input reference filename
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version

dotnet SAUtils.dll DiseaseValidity --tsv Clingen-Gene-Disease-Summary-2021-12-01.tsv \\
--uga Cache --out SupplementaryDatabase
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

Number of geneIds missing from the cache:0 (0%)

Time: 00:00:00.2

You can also use SAUtils command's subcommands AutoDownloadGenerate to generate ClinGen files. To use AutoDownloadGenerate, read more in SAUtils section.

- - + + \ No newline at end of file diff --git a/3.23/data-sources/clinvar-json/index.html b/3.23/data-sources/clinvar-json/index.html index 27bd34dc..65c92d0e 100644 --- a/3.23/data-sources/clinvar-json/index.html +++ b/3.23/data-sources/clinvar-json/index.html @@ -6,13 +6,13 @@ clinvar-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

clinvar-json

small variants:

"clinvar":[
{
"id":"VCV000036581.3",
"reviewStatus":"reviewed by expert panel",
"significance":[
"benign"
],
"refAllele":"G",
"altAllele":"A",
"lastUpdatedDate":"2020-03-01",
"isAlleleSpecific":true
},
{
"id":"RCV000030258.4",
"variationId":"VCV000036581.3",
"reviewStatus":"reviewed by expert panel",
"alleleOrigins":[
"germline"
],
"refAllele":"G",
"altAllele":"A",
"phenotypes":[
"Lynch syndrome"
],
"medGenIds":[
"C1333990"
],
"omimIds":[
"120435"
],
"significance":[
"benign"
],
"lastUpdatedDate":"2017-05-01",
"isAlleleSpecific":true
}
]

large variants:

"clinvar":[
{
"chromosome":"1",
"begin":629025,
"end":8537745,
"variantType":"copy_number_loss",
"id":"RCV000051993.4",
"variationId":"VCV000058242.1",
"reviewStatus":"criteria provided, single submitter",
"alleleOrigins":[
"not provided"
],
"phenotypes":[
"See cases"
],
"significance":[
"pathogenic"
],
"lastUpdatedDate":"2022-04-21",
"pubMedIds":[
"21844811"
]
},
{
"id":"VCV000058242.1",
"reviewStatus":"criteria provided, single submitter",
"significance":[
"pathogenic"
],
"lastUpdatedDate":"2022-04-21"
},
......
]
FieldTypeNotes
idstringClinVar ID
variationIdstringClinVar VCV ID
variantTypestringvariant type
reviewStatusstringsee possible values below
alleleOriginsstring arraysee possible values below
refAllelestring
altAllelestring
phenotypesstring array
medGenIdsstring arrayMedGen IDs
omimIdsstring arrayOMIM IDs
orphanetIdsstring arrayOrphanet IDs
significancestring arraysee possible values below
lastUpdatedDatestringyyyy-MM-dd
pubMedIdsstring arrayPubMed IDs
isAlleleSpecificbooltrue when the current variant alternate allele matches the ClinVar alternate allele

reviewStatus:

  • no assertion provided
  • no assertion criteria provided
  • criteria provided, single submitter
  • practice guideline
  • classified by multiple submitters
  • criteria provided, conflicting interpretations
  • criteria provided, multiple submitters, no conflicts
  • no interpretation for the single variant

alleleOrigins:

  • unknown
  • other
  • germline
  • somatic
  • inherited
  • paternal
  • maternal
  • de-novo
  • biparental
  • uniparental
  • not-tested
  • tested-inconclusive

significance:

  • uncertain significance
  • not provided
  • benign
  • likely benign
  • likely pathogenic
  • pathogenic
  • drug response
  • histocompatibility
  • association
  • risk factor
  • protective
  • affects
  • conflicting data from submitters
  • other
  • no interpretation for the single variant
  • conflicting interpretations of pathogenicity
- - + + \ No newline at end of file diff --git a/3.23/data-sources/clinvar/index.html b/3.23/data-sources/clinvar/index.html index 134d28d5..19df2b31 100644 --- a/3.23/data-sources/clinvar/index.html +++ b/3.23/data-sources/clinvar/index.html @@ -6,15 +6,15 @@ ClinVar | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

ClinVar

Overview

ClinVar is a freely accessible, public archive of reports of the relationships among human variations and phenotypes, with supporting evidence. ClinVar thus facilitates access to and communication about the relationships asserted between human variation and observed health status, and the history of that interpretation.

Publication

Melissa J Landrum, Jennifer M Lee, Mark Benson, Garth R Brown, Chen Chao, Shanmuga Chitipiralla, Baoshan Gu, Jennifer Hart, Douglas Hoffman, Wonhee Jang, Karen Karapetyan, Kenneth Katz, Chunlei Liu, Zenith Maddipatla, Adriana Malheiro, Kurt McDaniel, Michael Ovetsky, George Riley, George Zhou, J Bradley Holmes, Brandi L Kattman, Donna R Maglott, ClinVar: improving access to variant interpretations and supporting evidence, Nucleic Acids Research, 46, Issue D1, 4 January 2018, Pages D1062–D1067, https://doi.org/10.1093/nar/gkx1153

RCV File

Example

Here's a full RCV entry.

Parsing

In the following section, we discuss which field of the XML was used to extract information that is presented in the JSON output.

ID

<ClinVarSet>
<ReferenceClinVarAssertion>
<ClinVarAccession Acc="RCV000000001" Version="2">
</ClinVarSet>

The Acc and Version fields are merged to form the ID (RCV000000001.2)

LastUpdatedDate

<ClinVarSet>
<ReferenceClinVarAssertion DateCreated="2012-08-13" DateLastUpdated="2016-02-17" ID="57604" >
</ClinVarSet>

Significance

<ClinVarSet>
<ReferenceClinVarAssertion>
<ClinicalSignificance DateLastEvaluated="1996-04-01">
<ReviewStatus>no assertion criteria provided</ReviewStatus>
<Description>Pathogenic</Description>
</ClinicalSignificance>
</ClinVarSet>

ReviewStatus

<ClinVarSet>
<ReferenceClinVarAssertion>
<ClinicalSignificance DateLastEvaluated="1996-04-01">
<ReviewStatus>no assertion criteria provided</ReviewStatus>
<Description>Pathogenic</Description>
</ClinicalSignificance>
</ClinVarSet>

Phenotypes

<ReferenceClinVarAssertion>
<TraitSet Type="Disease" ID="62">
<Trait Type="Disease">
<Name>
<ElementValue Type="Preferred">Joubert syndrome 9</ElementValue>
</Name>
</Trait>
</TraitSet>
</ReferenceClinVarAssertion>

We only use the field with Type="Preferred". Multiple phenotypes may be reported

Location, Variant Type and Variant Id

<ReferenceClinVarAssertion>
<GenotypeSet Type="CompoundHeterozygote" ID="424709">
<MeasureSet Type="Variant" ID="81">
<Measure Type="single nucleotide variant" ID="15120">
<SequenceLocation Assembly="GRCh38" AssemblyAccessionVersion="GCF_000001405.38"
AssemblyStatus="current" Chr="10" Accession="NC_000010.11" start="89222510"
stop="89222510" display_start="89222510" display_stop="89222510" variantLength="1"
positionVCF="89222510" referenceAlleleVCF="C" alternateAlleleVCF="T"/>
<SequenceLocation Assembly="GRCh37" AssemblyAccessionVersion="GCF_000001405.25"
AssemblyStatus="previous" Chr="10" Accession="NC_000010.10" start="90982267"
stop="90982267" display_start="90982267" display_stop="90982267" variantLength="1"
positionVCF="90982267" referenceAlleleVCF="C" alternateAlleleVCF="T"/>
</Measure>
</MeasureSet>
</GenotypeSet>
</ReferenceClinVarAssertion>
  • The variant position is extracted from the fields for their respective assemblies.
  • Updated records contain positionVCF, referenceAlleleVCF and alternateAlleleVCF fields and when present, we use them to create the variant.
  • For older records, since "start' and "stop" fields are not always available, we use the "display_start" and "display_end" fields.
  • If a required allele is not available, we extract it from the reference sequence.
  • Only variants having a dbSNP id are extracted.
  • Note that a ClinVar accession may have multiple variants associated with it (possible in different locations)
  • VariantId is extracted from the MeasureSet attributes.
  • VariantType is extracted from the Measure attributes.
    unsupported variant types

    We currently don't support the following variant types:

    • Microsatellite
    • protein only
    • fusion
    • Complex
    • Variation
    • Translocation

MedGen, OMIM, Orphanet IDs

<ReferenceClinVarAssertion>
<TraitSet Type="Disease" ID="175">
<Trait ID="3036" Type="Disease">
<XRef ID="C0086651" DB="MedGen"/>
<XRef ID="309297" DB="Orphanet"/>
<XRef ID="582" DB="Orphanet"/>
<XRef Type="MIM" ID="253000" DB="OMIM"/>
</Trait>
</TraitSet>
</ReferenceClinVarAssertion>

AlleleOrigins

<ClinVarAssertion>
<Origin>germline</Origin>
</ClinVarAssertion>

We only extract all Allele Origins from Submissions (SCV) entries.

PubMedIds

<ClinVarAssertion>
<ClinicalSignificance DateLastEvaluated="1996-04-01">
<Citation Type="general">
<ID Source="PubMed">12114475</ID>
</Citation>
</ClinicalSignificance>
<AttributeSet>
<Attribute Type="AssertionMethod">LMM Criteria</Attribute>
<Citation>
<ID Source="PubMed">24033266</ID>
</Citation>
</AttributeSet>
<ObservedIn>
<ObservedData ID="9727445">
<Citation Type="general">
<ID Source="PubMed">9113933</ID>
</Citation>
</ObservedData>
</ObservedIn>
<Citation Type="general">
<ID Source="PubMed">23757202</ID>
</Citation>
</ClinVarAssertion>

We only extract all Pubmed Ids from Submissions (SCV) entries.

Parsing Significance

Extracting significance(s) may involve parsing multiple fields. Take the following snippets into consideration.

<ClinicalSignificance DateLastEvaluated="1996-04-01">
<ReviewStatus>no assertion criteria provided</ReviewStatus>
<Description>Pathogenic</Description>
</ClinicalSignificance>

<ClinicalSignificance DateLastEvaluated="2016-10-13">
<ReviewStatus>criteria provided, multiple submitters, no conflicts</ReviewStatus>
<Description>Pathogenic/Likely pathogenic</Description>
</ClinicalSignificance>

<ClinicalSignificance DateLastEvaluated="2012-06-07">
<ReviewStatus>no assertion criteria provided</ReviewStatus>
<Description>Conflicting interpretations of pathogenicity</Description>
<Explanation DataSource="ClinVar" Type="public">Pathogenic(1);Uncertain significance(1)</Explanation>
</ClinicalSignificance>

Given the evidence, we converted the significance field into an array of strings which may be parsed out of the Descriptions or Explanation fields.

Varying Delimiters

The delimiters in each field may vary. Currently, the delimiters for Description are , and /. The delimiters for Explanation are ; and /.

VCV File

Example

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ClinVarVariationRelease xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ftp.ncbi.nlm.nih.gov/pub/clinvar/xsd_public/clinvar_variation/variation_archive_1.4.xsd" ReleaseDate="2019-12-31">
<VariationArchive VariationID="431749" VariationName="GRCh37/hg19 1p36.31(chr1:6051187-6158763)" VariationType="copy number gain" DateCreated="2017-08-12" DateLastUpdated="2019-09-10" Accession="VCV000431749" Version="1" RecordType="included" NumberOfSubmissions="0" NumberOfSubmitters="0">
<RecordStatus>current</RecordStatus>
<Species>Homo sapiens</Species>
<IncludedRecord>
<SimpleAllele AlleleID="425239" VariationID="431749">
<GeneList>
<Gene Symbol="KCNAB2" FullName="potassium voltage-gated channel subfamily A regulatory beta subunit 2" GeneID="8514" HGNC_ID="HGNC:6229" Source="calculated" RelationshipType="genes overlapped by variant">
<Location>
<CytogeneticLocation>1p36.31</CytogeneticLocation>
<SequenceLocation Assembly="GRCh38" AssemblyAccessionVersion="GCF_000001405.38" AssemblyStatus="current" Chr="1" Accession="NC_000001.11" start="5992639" stop="6101186" display_start="5992639" display_stop="6101186" Strand="+"/>
<SequenceLocation Assembly="GRCh37" AssemblyAccessionVersion="GCF_000001405.25" AssemblyStatus="previous" Chr="1" Accession="NC_000001.10" start="6052357" stop="6161252" display_start="6052357" display_stop="6161252" Strand="+"/>
</Location>
<OMIM>601142</OMIM>
</Gene>
<Gene Symbol="NPHP4" FullName="nephrocystin 4" GeneID="261734" HGNC_ID="HGNC:19104" Source="calculated" RelationshipType="genes overlapped by variant">
<Location>
<CytogeneticLocation>1p36.31</CytogeneticLocation>
<SequenceLocation Assembly="GRCh38" AssemblyAccessionVersion="GCF_000001405.38" AssemblyStatus="current" Chr="1" Accession="NC_000001.11" start="5862810" stop="5992425" display_start="5862810" display_stop="5992425" Strand="-"/>
<SequenceLocation Assembly="GRCh37" AssemblyAccessionVersion="GCF_000001405.25" AssemblyStatus="previous" Chr="1" Accession="NC_000001.10" start="5922869" stop="6052532" display_start="5922869" display_stop="6052532" Strand="-"/>
</Location>
<OMIM>607215</OMIM>
</Gene>
</GeneList>
<Name>GRCh37/hg19 1p36.31(chr1:6051187-6158763)</Name>
<VariantType>copy number gain</VariantType>
<Location>
<CytogeneticLocation>1p36.31</CytogeneticLocation>
<SequenceLocation Assembly="GRCh37" AssemblyAccessionVersion="GCF_000001405.25" forDisplay="true" AssemblyStatus="previous" Chr="1" Accession="NC_000001.10" start="6051187" stop="6158763" display_start="6051187" display_stop="6158763"/> </Location>
<Interpretations>
<Interpretation NumberOfSubmissions="0" NumberOfSubmitters="0" Type="Clinical significance">
<Description>no interpretation for the single variant</Description>
</Interpretation>
</Interpretations>
<XRefList>
<XRef Type="Interpreted" ID="431733" DB="ClinVar"/>
</XRefList>
</SimpleAllele>
<ReviewStatus>no interpretation for the single variant</ReviewStatus>
<Interpretations>
<Interpretation NumberOfSubmissions="0" NumberOfSubmitters="0" Type="Clinical significance">
<Description>no interpretation for the single variant</Description>
</Interpretation>
</Interpretations>
<SubmittedInterpretationList>
<SCV Title="SUB1895145" Accession="SCV000296057" Version="1"/>
</SubmittedInterpretationList>
<InterpretedVariationList>
<InterpretedVariation VariationID="431733" Accession="VCV000431733" Version="1"/>
</InterpretedVariationList>
</IncludedRecord>
</VariationArchive>
</ClinVarVariationRelease>

Parsing

In the following section, we discuss which field of the XML was used to extract information that is presented in the JSON output.

id

<VariationArchive VariationID="431749" VariationName="GRCh37/hg19 1p36.31(chr1:6051187-6158763)" VariationType="copy number gain" DateCreated="2017-08-12" DateLastUpdated="2019-09-10" Accession="VCV000431749" Version="1" RecordType="included" NumberOfSubmissions="0" NumberOfSubmitters="0">

The Acc and Version fields are merged to form the ID (RCV000000001.2)

significance

<ClinVarVariationRelease>
<VariationArchive>
<IncludedRecord>
<SimpleAllele>
<Interpretations>
<Interpretation NumberOfSubmissions="0" NumberOfSubmitters="0" Type="Clinical significance">
<Description>no interpretation for the single variant</Description>
</Interpretation>
</Interpretations>
</SimpleAllele>
</IncludedRecord>
</VariationArchive>
</ClinVarVariationRelease>

May have multiple significances listed.

reviewStatus

<ClinVarVariationRelease>
<VariationArchive>
<IncludedRecord>
<ReviewStatus>no interpretation for the single variant</ReviewStatus>
</IncludedRecord>
</VariationArchive>
</ClinVarVariationRelease>

Known Issues

Known Issues
  • The XML file contains ~1k more entries (out of 162K) than the VCF file
  • The XML file does not have a field indicating that a record is associated with the reference base - something that was present in VCF
  • The XML file contains entries (e.g. RCV000016645 version=1) which have IUPAC ambiguous bases ("R", "Y", "H", etc.) as their alternate allele

Download URLs

ftp://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/ClinVarFullRelease_00-latest.xml.gz

https://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/clinvar_variation/ClinVarVariationRelease_00-latest.xml.gz

JSON Output

small variants:

"clinvar":[
{
"id":"VCV000036581.3",
"reviewStatus":"reviewed by expert panel",
"significance":[
"benign"
],
"refAllele":"G",
"altAllele":"A",
"lastUpdatedDate":"2020-03-01",
"isAlleleSpecific":true
},
{
"id":"RCV000030258.4",
"variationId":"VCV000036581.3",
"reviewStatus":"reviewed by expert panel",
"alleleOrigins":[
"germline"
],
"refAllele":"G",
"altAllele":"A",
"phenotypes":[
"Lynch syndrome"
],
"medGenIds":[
"C1333990"
],
"omimIds":[
"120435"
],
"significance":[
"benign"
],
"lastUpdatedDate":"2017-05-01",
"isAlleleSpecific":true
}
]

large variants:

"clinvar":[
{
"chromosome":"1",
"begin":629025,
"end":8537745,
"variantType":"copy_number_loss",
"id":"RCV000051993.4",
"variationId":"VCV000058242.1",
"reviewStatus":"criteria provided, single submitter",
"alleleOrigins":[
"not provided"
],
"phenotypes":[
"See cases"
],
"significance":[
"pathogenic"
],
"lastUpdatedDate":"2022-04-21",
"pubMedIds":[
"21844811"
]
},
{
"id":"VCV000058242.1",
"reviewStatus":"criteria provided, single submitter",
"significance":[
"pathogenic"
],
"lastUpdatedDate":"2022-04-21"
},
......
]
FieldTypeNotes
idstringClinVar ID
variationIdstringClinVar VCV ID
variantTypestringvariant type
reviewStatusstringsee possible values below
alleleOriginsstring arraysee possible values below
refAllelestring
altAllelestring
phenotypesstring array
medGenIdsstring arrayMedGen IDs
omimIdsstring arrayOMIM IDs
orphanetIdsstring arrayOrphanet IDs
significancestring arraysee possible values below
lastUpdatedDatestringyyyy-MM-dd
pubMedIdsstring arrayPubMed IDs
isAlleleSpecificbooltrue when the current variant alternate allele matches the ClinVar alternate allele

reviewStatus:

  • no assertion provided
  • no assertion criteria provided
  • criteria provided, single submitter
  • practice guideline
  • classified by multiple submitters
  • criteria provided, conflicting interpretations
  • criteria provided, multiple submitters, no conflicts
  • no interpretation for the single variant

alleleOrigins:

  • unknown
  • other
  • germline
  • somatic
  • inherited
  • paternal
  • maternal
  • de-novo
  • biparental
  • uniparental
  • not-tested
  • tested-inconclusive

significance:

  • uncertain significance
  • not provided
  • benign
  • likely benign
  • likely pathogenic
  • pathogenic
  • drug response
  • histocompatibility
  • association
  • risk factor
  • protective
  • affects
  • conflicting data from submitters
  • other
  • no interpretation for the single variant
  • conflicting interpretations of pathogenicity

Building the supplementary files

There are 2 ways of building your own OMIM supplementary files using SAUtils.

The first way is to use SAUtils command's subcommands clinvar. The ClinVar .nsa and .nsi for Illumina Connected Annotations can be built using the SAUtils command's clinvar subcommand.

The second way is to use SAUtils command's subcommands AutoDownloadGenerate. To use AutoDownloadGenerate, read more in SAUtils section.

Using clinvar subcommands and source data files

Two input .xml files and a .version file are required in order to build the .nsa and .nsi file. You should have the following files:

ClinVarFullRelease_00-latest.xml.gz     ClinVarVariationRelease_00-latest.xml.gz
ClinVarFullRelease_00-latest.xml.gz.version

The version file is a json file with the following format.

{
"name": "ClinVar",
"version": "20231230",
"description": "A freely accessible, public archive of reports of the relationships among human variations and phenotypes, with supporting evidence",
"releaseDate": "2024-01-10"
}

You have to adjust the version and release date according to the actual date of the ClinVar.

The help menu for the utility is as follows:

dotnet SAUtils.dll clinvar
---------------------------------------------------------------------------
SAUtils (c) 2022 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.18.1
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll clinvar [options]
Creates a supplementary database with ClinVar annotations

OPTIONS:
--ref, -r <VALUE> compressed reference sequence file
--rcv, -i <VALUE> ClinVar Full release XML file
--vcv, -c <VALUE> ClinVar Variation release XML file
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version

dotnet SAUtils.dll clinvar

Here is a sample execution:

dotnet SAUtils.dll clinvar \\
--ref ~/development/References/7/Homo_sapiens.GRCh38.Nirvana.dat --rcv ClinVarFullRelease_00-latest.xml.gz \\
--vcv ClinVarVariationRelease_00-latest.xml.gz --out ~/development/SupplementaryDatabase/63/GRCh38
---------------------------------------------------------------------------
SAUtils (c) 2022 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.18.1
---------------------------------------------------------------------------

Found 1535677 VCV records
Unknown vcv id:225946 found in RCV000211201.2
Unknown vcv id:225946 found in RCV000211253.2
Unknown vcv id:225946 found in RCV000211375.2
Unknown vcv id:976117 found in RCV001253316.1
Unknown vcv id:1321016 found in RCV001776995.2
3 unknown VCVs found in RCVs.
225946,976117,1321016
0 unknown VCVs found in RCVs.
Chromosome 1 completed in 00:00:15.1
Chromosome 2 completed in 00:00:20.0
Chromosome 3 completed in 00:00:09.7
Chromosome 4 completed in 00:00:05.9
Chromosome 5 completed in 00:00:09.8
Chromosome 6 completed in 00:00:08.3
Chromosome 7 completed in 00:00:08.7
Chromosome 8 completed in 00:00:06.2
Chromosome 9 completed in 00:00:08.6
Chromosome 10 completed in 00:00:07.0
Chromosome 11 completed in 00:00:11.7
Chromosome 12 completed in 00:00:08.0
Chromosome 13 completed in 00:00:06.3
Chromosome 14 completed in 00:00:06.0
Chromosome 15 completed in 00:00:06.6
Chromosome 16 completed in 00:00:10.8
Chromosome 17 completed in 00:00:13.8
Chromosome 18 completed in 00:00:02.9
Chromosome 19 completed in 00:00:08.7
Chromosome 20 completed in 00:00:03.6
Chromosome 21 completed in 00:00:02.4
Chromosome 22 completed in 00:00:03.6
Chromosome MT completed in 00:00:00.2
Chromosome X completed in 00:00:07.5
Chromosome Y completed in 00:00:00.0
Maximum bp shifted for any variant:2
Writing 37097 intervals to database...

Time: 00:13:26.9

- - + + \ No newline at end of file diff --git a/3.23/data-sources/cosmic-cancer-gene-census/index.html b/3.23/data-sources/cosmic-cancer-gene-census/index.html index 01f7a97d..03769968 100644 --- a/3.23/data-sources/cosmic-cancer-gene-census/index.html +++ b/3.23/data-sources/cosmic-cancer-gene-census/index.html @@ -6,13 +6,13 @@ cosmic-cancer-gene-census | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

cosmic-cancer-gene-census

   {
"name": "PRDM16",
"ensemblGeneId": "ENSG00000142611",
"ncbiGeneId": "63976",
"hgncId": 14000,
"cosmic": {
"tier": 1,
"roleInCancer": [
"oncogene",
"fusion"
]
}
}
FieldTypeNotes
roleInCancerstring arrayPossible roles in caner
tiernumberCosmic tiers [1, 2]
- - + + \ No newline at end of file diff --git a/3.23/data-sources/cosmic-gene-fusion-json/index.html b/3.23/data-sources/cosmic-gene-fusion-json/index.html index a17864cd..3c65fec1 100644 --- a/3.23/data-sources/cosmic-gene-fusion-json/index.html +++ b/3.23/data-sources/cosmic-gene-fusion-json/index.html @@ -6,13 +6,13 @@ cosmic-gene-fusion-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

cosmic-gene-fusion-json

   "cosmicGeneFusions":[
{
"id":"COSF881",
"numSamples":6,
"geneSymbols":[
"MYB",
"NFIB"
],
"hgvsr":"ENST00000341911.5(MYB):r.1_2368::ENST00000397581.2(NFIB):r.2592_3318",
"histologies":[
{
"name":"adenoid cystic carcinoma",
"numSamples":6
}
],
"sites":[
{
"name":"salivary gland (submandibular)",
"numSamples":1
},
{
"name":"salivary gland (parotid)",
"numSamples":1
},
{
"name":"salivary gland (nasal cavity)",
"numSamples":1
},
{
"name":"breast",
"numSamples":3
}
],
"pubMedIds":[
19841262
]
}
]
FieldTypeNotes
idstringCOSMIC fusion ID
numSamplesint
geneSymbolsstring array5' gene & 3' gene
hgvsrstringHGVS RNA translocation fusion notation
histologiescount arrayphenotypic descriptions
sitescount arraytissue types
pubMedIdsint arrayPubMed IDs

Count

FieldTypeNotes
namestringdescription
numSamplesint
- - + + \ No newline at end of file diff --git a/3.23/data-sources/cosmic-json/index.html b/3.23/data-sources/cosmic-json/index.html index 72dd7b17..af471a3e 100644 --- a/3.23/data-sources/cosmic-json/index.html +++ b/3.23/data-sources/cosmic-json/index.html @@ -6,13 +6,13 @@ cosmic-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

cosmic-json

{
"id":"COSV58272668",
"numSamples":8,
"refAllele":"-",
"altAllele":"CCT",
"histologies":[
{
"name":"carcinoma (serous carcinoma)",
"numSamples":2
},
{
"name":"meningioma (fibroblastic)",
"numSamples":1
},
{
"name":"carcinoma",
"numSamples":1
},
{
"name":"carcinoma (squamous cell carcinoma)",
"numSamples":1
},
{
"name":"meningioma (transitional)",
"numSamples":1
},
{
"name":"carcinoma (adenocarcinoma)",
"numSamples":1
},
{
"name":"other (neoplasm)",
"numSamples":1
}
],
"sites":[
{
"name":"ovary",
"numSamples":2
},
{
"name":"meninges",
"numSamples":2
},
{
"name":"thyroid",
"numSamples":2
},
{
"name":"cervix",
"numSamples":1
},
{
"name":"large intestine (colon)",
"numSamples":1
}
],
"pubMedIds":[
25738363,
27548314
],
"confirmedSomatic":true,
"drugResistance":true, /* not in this particular COSMIC variant */
"isAlleleSpecific":true
}
FieldTypeNotes
idstringCOSMIC Genomic Mutation ID
numSamplesint
refAllelestring
altAllelestring
histologiescount arrayphenotypic descriptions
sitescount arraytissue types
pubMedIdsint arrayPubMed IDs
confirmedSomaticbooltrue when the variant is a confirmed somatic variant
drugResistancebooltrue when the variant has been associated with drug resistance

Count

FieldTypeNotes
namestringdescription
numSamplesint
- - + + \ No newline at end of file diff --git a/3.23/data-sources/cosmic/index.html b/3.23/data-sources/cosmic/index.html index cdd5b213..6aa12f3d 100644 --- a/3.23/data-sources/cosmic/index.html +++ b/3.23/data-sources/cosmic/index.html @@ -6,8 +6,8 @@ COSMIC | IlluminaConnectedAnnotations - - + +
@@ -22,7 +22,7 @@ pair when it is released in the database. Currently COSMIC includes information on fusions involved in solid tumours and leukaemias.

TSV extraction

Example

SAMPLE_ID SAMPLE_NAME PRIMARY_SITE  SITE_SUBTYPE_1  SITE_SUBTYPE_2  SITE_SUBTYPE_3  PRIMARY_HISTOLOGY HISTOLOGY_SUBTYPE_1 HISTOLOGY_SUBTYPE_2 HISTOLOGY_SUBTYPE_3 FUSION_ID TRANSLOCATION_NAME  5'_CHROMOSOME 5'_STRAND 5'_GENE_ID  5'_GENE_NAME  5'_LAST_OBSERVED_EXON 5'_GENOME_START_FROM  5'_GENOME_START_TO  5'_GENOME_STOP_FROM 5'_GENOME_STOP_TO 3'_CHROMOSOME 3'_STRAND 3'_GENE_ID  3'_GENE_NAME  3'_FIRST_OBSERVED_EXON  3'_GENOME_START_FROM  3'_GENOME_START_TO  3'_GENOME_STOP_FROM 3'_GENOME_STOP_TO FUSION_TYPE PUBMED_PMID
749711 HCC1187 breast NS NS NS carcinoma ductal_carcinoma NS NS 665 ENST00000360863.10(RGS22):r.1_3555::ENST00000369518.1(SYCP1):r.2100_3452 8 - 197199 RGS22 22 99981937 99981937 100106116 100106116 1 + 212470 SYCP1_ENST00000369518 24 114944339 114944339 114995367 114995367 Inferred Breakpoint 20033038

Parsing

From the TSV file, we're mainly interested in the following columns:

info

For all the histologies and sites, we replace all the underlines with spaces. salivary_gland would become salivary gland.

Parsing

To create the gene fusion entries in Illumina Connected Annotations, we perform the following on each row in the TSV file:

Aggregating Histologies & Sites

Aggregating Histologies & Sites was previously described in the small variants section.

Known Issues

Known Issues

There are some issues with the HGVS RNA notation:

  • For coding transcripts, HGVS numbering should use CDS coordinates. Right now COSMIC is using cDNA coordinates for all their fusions.

Download URL

GRCh37

GRCh38

JSON Output

   "cosmicGeneFusions":[
{
"id":"COSF881",
"numSamples":6,
"geneSymbols":[
"MYB",
"NFIB"
],
"hgvsr":"ENST00000341911.5(MYB):r.1_2368::ENST00000397581.2(NFIB):r.2592_3318",
"histologies":[
{
"name":"adenoid cystic carcinoma",
"numSamples":6
}
],
"sites":[
{
"name":"salivary gland (submandibular)",
"numSamples":1
},
{
"name":"salivary gland (parotid)",
"numSamples":1
},
{
"name":"salivary gland (nasal cavity)",
"numSamples":1
},
{
"name":"breast",
"numSamples":3
}
],
"pubMedIds":[
19841262
]
}
]
FieldTypeNotes
idstringCOSMIC fusion ID
numSamplesint
geneSymbolsstring array5' gene & 3' gene
hgvsrstringHGVS RNA translocation fusion notation
histologiescount arrayphenotypic descriptions
sitescount arraytissue types
pubMedIdsint arrayPubMed IDs

Count

FieldTypeNotes
namestringdescription
numSamplesint

Cancer Gene Census

TSV Extraction

Example

GENE_NAME       CELL_TYPE       PUBMED_PMID     HALLMARK        IMPACT  DESCRIPTION     CELL_LINE
PRDM16 18496560 role in cancer oncogene oncogene
PRDM16 16015645 role in cancer fusion fusion

Parsing

To extract information about TSGs and oncogenes, the data based on the "role in cancer" attribute is filtered. For tumor suppressor genes, rows with the value "TSG" and for oncogenes, rows with the value "oncogene" are filtered. Some genes have both "TSG/oncogene" as their role, which indicates that they can act as both.

Columns

Only following columns are needed to gather required roles in cancer:

Possible Roles in Cancer

The file contained following number of instances for each role type

Role in cancerTotal Instances
fusion149
TSG195
oncogene181
Total525

CSV Extraction

COSMIC Tiers are extracted from cancer_gene_census.csv file:

Gene Symbol,Name,Entrez GeneId,Genome Location,Tier,Hallmark,Chr Band,Somatic,Germline,Tumour Types(Somatic),Tumour Types(Germline),Cancer Syndrome,Tissue Type,Molecular Genetics,Role in Cancer,Mutation Types,Translocation Partner,Other Germline Mut,Other Syndrome,COSMIC ID,cosmic gene name,Synonyms
"AR","Androgen Receptor ","367","X:67544036-67730619","1","Yes","Xq12","yes","yes","prostate","","","E","Dom","oncogene","Mis","","yes ","Androgen insensitivity, Hypospadias 1, X-linked, Spinal and bulbar muscular atrophy of Kennedy ","COSG292497","AR","367,AIS,AR,DHTR,ENSG00000169083.16,HUMARA,NR3C4,P10275,SBMA,SMAX1"
"FH","fumarate hydratase","2271","1:241497603-241519761","1","","1q43","","yes","","leiomyomatosis, renal","hereditary leiomyomatosis and renal cell cancer","E, M","Rec","TSG","Mis, N, F","","","","COSG255037","FH","2271,ENSG00000091483.6,FH,P07954"
"ALK","anaplastic lymphoma kinase (Ki-1)","238","2:29192774-29921566","1","Yes","2p23.2","yes","yes","ALCL, NSCLC, neuroblastoma, inflammatory myofibroblastic tumour, Spitzoid tumour","neuroblastoma","familial neuroblastoma","L, E, M","Dom","oncogene, fusion","T, Mis, A","NPM1, TPM3, TFG, TPM4, ATIC, CLTC, MSN, RNF213, CARS, EML4, KIF5B, C2orf22, DCTN1, HIP1, TPR, RANBP2, PPFIBP1, SEC31A, STRN, VCL, C2orf44, KLC1","","","COSG383409","ALK","238,ALK,CD246,ENSG00000171094.17,Q9UM73"
"APC","adenomatous polyposis of the colon gene","324","5:112737888-112846239","1","Yes","5q22.2","yes","yes","colorectal, pancreatic, desmoid, hepatoblastoma, glioma, other CNS","colorectal, pancreatic, desmoid, hepatoblastoma, glioma, other CNS","adenomatous polyposis coli; Turcot syndrome","E, M, O","Rec","TSG","D, Mis, N, F, S","","","","COSG208824","APC","324,APC,DP2,DP2.5,DP3,ENSG00000134982.16,P25054,PPP1R46"
Columns

Only following columns are needed to gather required roles in cancer:

First the tiers are found from the CSV; based on gene symbols, the tiers' information is added while parsing through the TSV

Known Issues

None

Download URL

JSON output

   {
"name": "PRDM16",
"ensemblGeneId": "ENSG00000142611",
"ncbiGeneId": "63976",
"hgncId": 14000,
"cosmic": {
"tier": 1,
"roleInCancer": [
"oncogene",
"fusion"
]
}
}
FieldTypeNotes
roleInCancerstring arrayPossible roles in caner
tiernumberCosmic tiers [1, 2]

Building the supplementary files

You can generate COSMIC supplementary annotation files if you have COSMIC account credentials. Please refer to SAUtils section for more details.

- - + + \ No newline at end of file diff --git a/3.23/data-sources/dann-json/index.html b/3.23/data-sources/dann-json/index.html index 8b072fb8..683055d1 100644 --- a/3.23/data-sources/dann-json/index.html +++ b/3.23/data-sources/dann-json/index.html @@ -6,13 +6,13 @@ dann-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

dann-json

"dannScore": 0.27
FieldTypeNotes
dannScorefloatRange: 0 - 1.0
- - + + \ No newline at end of file diff --git a/3.23/data-sources/dann/index.html b/3.23/data-sources/dann/index.html index 13073fa1..48960474 100644 --- a/3.23/data-sources/dann/index.html +++ b/3.23/data-sources/dann/index.html @@ -6,8 +6,8 @@ DANN | IlluminaConnectedAnnotations - - + +
@@ -15,7 +15,7 @@ CADD is an algorithm designed to annotate both coding and non-coding variants, and has been shown to outperform other annotation algorithms. DANN improves on CADD (which uses Support Vector Machines (SVMs)) by capturing non-linear relationships by using a deep neural network instead of SVMs. DANN achieves about a 19% relative reduction in the error rate and about a 14% relative increase in the area under the curve (AUC) metric over CADD’s SVM methodology.

Publication

Quang, Daniel, Yifei Chen, and Xiaohui Xie. DANN: a deep learning approach for annotating the pathogenicity of genetic variants. Bioinformatics 31.5 761-763 (2015). https://doi.org/10.1093/bioinformatics/btu703

TSV File

Example

chr     grch37_pos  ref     alt     DANN
1 10001 T A 0.16461391399220135
1 10001 T C 0.4396994049749739
1 10001 T G 0.38108629377072734
1 10002 A C 0.36182020272810128
1 10002 A G 0.44413258111779291
1 10002 A T 0.16812846819989813

Parsing

From the CSV file, we are interested in all columns:

GRCh38 liftover

The data is not available for GRCh38 on DANN website. We performed a liftover from GRCh37 to GRCh38 using crossmap.

Known Issues

None

Download URL

https://cbcl.ics.uci.edu/public_data/DANN/

JSON Output

"dannScore": 0.27
FieldTypeNotes
dannScorefloatRange: 0 - 1.0
- - + + \ No newline at end of file diff --git a/3.23/data-sources/dbsnp-json/index.html b/3.23/data-sources/dbsnp-json/index.html index c2578e8a..3c5b59c4 100644 --- a/3.23/data-sources/dbsnp-json/index.html +++ b/3.23/data-sources/dbsnp-json/index.html @@ -6,13 +6,13 @@ dbsnp-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

dbsnp-json

"dbsnp":[
"rs1042821"
]
FieldTypeNotes
dbsnpstring arraydbSNP rsIDs
- - + + \ No newline at end of file diff --git a/3.23/data-sources/dbsnp/index.html b/3.23/data-sources/dbsnp/index.html index bb898448..275c0e87 100644 --- a/3.23/data-sources/dbsnp/index.html +++ b/3.23/data-sources/dbsnp/index.html @@ -6,13 +6,13 @@ dbSNP | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

dbSNP

Overview

dbSNP contains human single nucleotide variations, microsatellites, and small-scale insertions and deletions along with publication, population frequency, molecular consequence, and genomic and RefSeq mapping information for both common variations and clinical mutations.

Publication

Sherry, S.T., Ward, M. and Sirotkin, K. (1999) dbSNP—Database for Single Nucleotide Polymorphisms and Other Classes of Minor Genetic Variation. Genome Res., 9, 677–679.

VCF File

Example

#CHROM  POS ID  REF ALT QUAL    FILTER  INFO
1 10177 rs367896724 A AC . . RS=367896724;RSPOS=10177;dbSNPBuildID=138; \
SSR=0;SAO=0;VP=0x050000020005130026000200;GENEINFO=DDX11L1:100287102;WGT=1; \
VC=DIV;R5;ASP;G5A;G5;KGPhase3;CAF=0.5747,0.4253;COMMON=1; \
TOPMED=0.76728147298674821,0.23271852701325178

Parsing

From the VCF file, we're mainly interested in the following:

  • rsID from the ID field
  • CAF from the INFO field

Global allele extraction

The global major and minor alleles are extracted based on the frequency of the alleles provided in the CAF field. The global minor allele frequency is the second highest value of the CAF comma delimited field (ignoring '.' values).

Tie Breaking: Global Major Allele

If there are two candidates for global major and the reference allele is one of them, we prefer the reference allele.

Tie Breaking: Global Minor Allele

If there are two candidates for global minor and the reference allele is one of them, we prefer the other allele. If the reference allele is not involved, they are chosen arbitrarily.

Equal Allele Frequency Example (2 alleles)

chr1    100 A   C   CAF=0.5,0.5

We will select A to be the global major allele and C to be the global minor allele.

Equal Allele Frequency Example (3 alleles)

chr1    100 A   C,T CAF=0.33,0.33,0.33

We will select A to be the global major allele and either C or T is chosen (arbitrarily) to be the global minor allele.

Equal Allele Frequency in Alternate Alleles

chr1    100 A   C,T CAF=0.2,0.4,0.4

We will select C or T to be arbitrarily assigned to be the global major or global minor allele.

Equal Allele Frequency Between Reference & Alternate Allele

chr1    100 A   C,T CAF=0.2,0.2,0.6

We will select T to be the global major allele and C to be the global minor allele.

Known Issues

Known Issues

If there are multiple entries with different CAF values for the same allele, we use the first CAF value.

Download URL

https://ftp.ncbi.nih.gov/snp/organisms/

JSON Output

"dbsnp":[
"rs1042821"
]
FieldTypeNotes
dbsnpstring arraydbSNP rsIDs

Building the supplementary files

You can generate dbSNP supplementary annotation files by yourself. Please refer to SAUtils section for more details.

- - + + \ No newline at end of file diff --git a/3.23/data-sources/decipher-json/index.html b/3.23/data-sources/decipher-json/index.html index ef552793..6bbd7ab5 100644 --- a/3.23/data-sources/decipher-json/index.html +++ b/3.23/data-sources/decipher-json/index.html @@ -6,13 +6,13 @@ decipher-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

decipher-json

"decipher":[
{
"chromosome":"1",
"begin":13516,
"end":91073,
"numDeletions":27,
"deletionFrequency":0.675,
"numDuplications":27,
"duplicationFrequency":0.675,
"sampleSize":40,
"reciprocalOverlap": 0.27555,
"annotationOverlap": 0.5901
}
],
FieldTypeNotes
chromosomeintEnsembl-style chromosome names
beginint1-based position
endint1-based position
numDeletionsint# of observed deletions
deletionFrequencyfloatdeletion frequency
numDuplicationsint# of observed duplications
duplicationFrequencyfloatduplication frequency
sampleSizeinttotal # of samples
reciprocalOverlapfloatRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap
annotationOverlapfloatRange: 0 - 1. E.g. 0.57 would indicate a 57% annotation overlap
- - + + \ No newline at end of file diff --git a/3.23/data-sources/decipher/index.html b/3.23/data-sources/decipher/index.html index 5365272e..478ad94c 100644 --- a/3.23/data-sources/decipher/index.html +++ b/3.23/data-sources/decipher/index.html @@ -6,14 +6,14 @@ DECIPHER | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

DECIPHER

Overview

DECIPHER (DatabasE of genomiC varIation and Phenotype in Humans using Ensembl Resources) is an interactive web-based database which incorporates a suite of tools designed to aid the interpretation of genomic variants.

DECIPHER enhances clinical diagnosis by retrieving information from a variety of bioinformatics resources relevant to the variant found in the patient. The patient's variant is displayed in the context of both normal variation and pathogenic variation reported at that locus thereby facilitating interpretation.

Publication

DECIPHER: Database of Chromosomal Imbalance and Phenotype in Humans using Ensembl Resources. Firth, H.V. et al., 2009. Am.J.Hum.Genet 84, 524-533 (DOI: dx.doi.org/10/1016/j.ajhg.2009.03.010)

TSV Extraction

#population_cnv_id  chr start   end deletion_observations   deletion_frequency  deletion_standard_error duplication_observations    duplication_frequency   duplication_standard_error  observations    frequency   standard_error  type    sample_size study
1 1 10529 177368 0 0 1 3 0.075 0.555277708 3 0.075 0.555277708 1 40 42M calls
2 1 13516 91073 0 0 1 27 0.675 0.109713431 27 0.675 0.109713431 1 40 42M calls
3 1 18888 35451 0 0 1 2 0.002366864 0.706269473 2 0.002366864 0.706269473 1 845 DDD

Parsing

We parse the DECIPHER tsv file and extract the following columns:

  • chr
  • start
  • end
  • deletion_observations
  • deletion_frequency
  • duplication_observations
  • duplication_frequency
  • sample_size

Download URL

https://www.deciphergenomics.org/files/downloads/population_cnv_grch38.txt.gz https://www.deciphergenomics.org/files/downloads/population_cnv_grch37.txt.gz

JSON output

"decipher":[
{
"chromosome":"1",
"begin":13516,
"end":91073,
"numDeletions":27,
"deletionFrequency":0.675,
"numDuplications":27,
"duplicationFrequency":0.675,
"sampleSize":40,
"reciprocalOverlap": 0.27555,
"annotationOverlap": 0.5901
}
],
FieldTypeNotes
chromosomeintEnsembl-style chromosome names
beginint1-based position
endint1-based position
numDeletionsint# of observed deletions
deletionFrequencyfloatdeletion frequency
numDuplicationsint# of observed duplications
duplicationFrequencyfloatduplication frequency
sampleSizeinttotal # of samples
reciprocalOverlapfloatRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap
annotationOverlapfloatRange: 0 - 1. E.g. 0.57 would indicate a 57% annotation overlap
- - + + \ No newline at end of file diff --git a/3.23/data-sources/fusioncatcher-json/index.html b/3.23/data-sources/fusioncatcher-json/index.html index 23b9c955..c0446612 100644 --- a/3.23/data-sources/fusioncatcher-json/index.html +++ b/3.23/data-sources/fusioncatcher-json/index.html @@ -6,13 +6,13 @@ fusioncatcher-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

fusioncatcher-json

   "fusionCatcher":[
{
"genes":{
"first":{
"hgnc":"ETV6",
"isOncogene":true
},
"second":{
"hgnc":"RUNX1"
},
"isParalogPair":true,
"isPseudogenePair":true,
"isReadthrough":true
},
"germlineSources":[
"1000 Genomes Project"
],
"somaticSources":[
"COSMIC",
"TCGA oesophageal carcinomas"
]
}
]
FieldTypeNotes
genesgenes object5' gene & 3' gene
germlineSourcesstring arraymatches in known germline data sources
somaticSourcesstring arraymatches in known somatic data sources

genes

FieldTypeNotes
firstgene object5' gene
secondgene object3' gene
isParalogPairbooltrue when both genes are paralogs for each other
isPseudogenePairbooltrue when both genes are pseudogenes for each other
isReadthroughbooltrue when this fusion gene is a readthrough event (both are on the same strand and there are no genes between them)

gene

FieldTypeNotes
hgncstringgene symbol. e.g. MSH6
isOncogenebooltrue when this gene is an oncogene
- - + + \ No newline at end of file diff --git a/3.23/data-sources/fusioncatcher/index.html b/3.23/data-sources/fusioncatcher/index.html index 53c6ee5c..473d76ff 100644 --- a/3.23/data-sources/fusioncatcher/index.html +++ b/3.23/data-sources/fusioncatcher/index.html @@ -6,13 +6,13 @@ FusionCatcher | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

FusionCatcher

Overview

FusionCatcher is a well-known tool that searches for somatic novel/known fusion genes, translocations, and/or chimeras in RNA-seq data. While FusionCatcher itself is not part of Illumina Connected Annotations, we have included a subset of their genomic databases in Illumina Connected Annotations.

Publication

Daniel Nicorici, Mihaela Şatalan, Henrik Edgren, Sara Kangaspeska, Astrid Murumägi, Olli Kallioniemi, Sami Virtanen, Olavi Kilkku. (2014) FusionCatcher – a tool for finding somatic fusion genes in paired-end RNA-sequencing data. bioRxiv 011650

Supported Data Sources

Oncogenes

The following data sources are aggregated and used to populate the isOncogene field in the gene JSON object:

DescriptionReferenceDataFusionCatcher filename
Bushmanbushmanlab.orgcancer_genes.txt
ONGENEJGGbioinfo-minzhao.orgoncogenes_more.txt
UniProt tumor genesNARuniprot.orgtumor_genes.txt

Germline

Illumina Connected Annotations labelReferenceDataFusionCatcher filename
1000 Genomes ProjectPLOS ONE1000genomes.txt
Healthy (strong support)banned.txt
Illumina Body Map 2.0EBIbodymap2.txt
CACGGenomicscacg.txt
ConjoinGPLOS ONEconjoing.txt
Healthy prefrontal cortexBMC Medical GenomicsNCBI GEOcortex.txt
Duplicated Genes DatabasePLOS ONEgenouest.orgdgd.txt
GTEx healthy tissuesgtexportal.orggtex.txt
Healthyhealthy.txt
Human Protein AtlasMCPEBIhpa.txt
Babiceanu non-cancer tissuesNARNARnon-cancer_tissues.txt
non-tumor cell linesnon-tumor_cells.txt
TumorFusions normalNARNARtcga-normal.txt

Somatic

Illumina Connected Annotations labelReferenceDataFusionCatcher filename
Alaei-Mahabadi 18 cancersPNAS18cancers.txt
DepMap CCLEdepmap.orgccle.txt
CCLE KlijnNature BiotechnologyNature Biotechnologyccle2.txt
CCLE VellichirammalMolecular Therapy Nucleic Acidsccle3.txt
Cancer Genome ProjectCOSMICcgp.txt
ChimerKB 4.0NARkobic.re.krchimerdb4kb.txt
ChimerPub 4.0NARkobic.re.krchimerdb4pub.txt
ChimerSeq 4.0NARkobic.re.krchimerdb4seq.txt
COSMICNARCOSMICcosmic.txt
Bao gliomasGenome Researchgliomas.txt
Knownknown.txt
Mitelman DBISB-CGCGoogle Cloudmitelman.txt
TCGA oesophageal carcinomasNatureoesophagus.txt
Bailey pancreatic cancersNatureNaturepancreases.txt
PCAWGCellICGCpcawg.txt
Robinson prostate cancersCellCellprostate_cancer.txt
TCGAcancer.govtcga.txt
TumorFusions tumorNARNARtcga-cancer.txt
TCGA GaoCellCelltcga2.txt
TCGA VellichirammalMolecular Therapy Nucleic Acidstcga3.txt
TICdbBMC Genomicsunav.eduticdb.txt

Gene Pair TSV File

Most of the data files in FusionCatcher are two-column TSV files containing the Ensembl gene IDs that are paired together.

Example

Here are the first few lines of the 1000genomes.txt file:

ENSG00000006210 ENSG00000102962
ENSG00000006652 ENSG00000181016
ENSG00000014138 ENSG00000149798
ENSG00000026297 ENSG00000071242
ENSG00000035499 ENSG00000155959
ENSG00000055211 ENSG00000131013
ENSG00000055332 ENSG00000179915
ENSG00000062485 ENSG00000257727
ENSG00000065978 ENSG00000166501
ENSG00000066044 ENSG00000104980

Parsing

In Illumina Connected Annotations, we will only import a gene pair if both Ensembl gene IDs are recognized from either our GRCh37 or GRCh38 cache files.

Gene TSV File

Some of the data files are single-column files containing Ensembl gene IDs. This is commonly used in the data files representing oncogene data sources.

Example

Here are the first few lines of the oncogenes_more.txt file:

ENSG00000000938
ENSG00000003402
ENSG00000005469
ENSG00000005884
ENSG00000006128
ENSG00000006453
ENSG00000006468
ENSG00000007350
ENSG00000008294
ENSG00000008952

Parsing

Known Issues

Known Issues

FusionCatcher also uses creates custom Ensembl genes (e.g. ENSG09000000002) to handle missing Ensembl genes. Illumina Connected Annotations will ignore these entries since we only include the gene IDs that are currently recognized by Illumina Connected Annotations.

I suspect that these were originally RefSeq genes and if so, we can support those directly in Illumina Connected Annotations in the future.

Download URL

https://sourceforge.net/projects/fusioncatcher/files/data

JSON Output

   "fusionCatcher":[
{
"genes":{
"first":{
"hgnc":"ETV6",
"isOncogene":true
},
"second":{
"hgnc":"RUNX1"
},
"isParalogPair":true,
"isPseudogenePair":true,
"isReadthrough":true
},
"germlineSources":[
"1000 Genomes Project"
],
"somaticSources":[
"COSMIC",
"TCGA oesophageal carcinomas"
]
}
]
FieldTypeNotes
genesgenes object5' gene & 3' gene
germlineSourcesstring arraymatches in known germline data sources
somaticSourcesstring arraymatches in known somatic data sources

genes

FieldTypeNotes
firstgene object5' gene
secondgene object3' gene
isParalogPairbooltrue when both genes are paralogs for each other
isPseudogenePairbooltrue when both genes are pseudogenes for each other
isReadthroughbooltrue when this fusion gene is a readthrough event (both are on the same strand and there are no genes between them)

gene

FieldTypeNotes
hgncstringgene symbol. e.g. MSH6
isOncogenebooltrue when this gene is an oncogene
- - + + \ No newline at end of file diff --git a/3.23/data-sources/gerp-json/index.html b/3.23/data-sources/gerp-json/index.html index 43c6402b..7ec85008 100644 --- a/3.23/data-sources/gerp-json/index.html +++ b/3.23/data-sources/gerp-json/index.html @@ -6,13 +6,13 @@ gerp-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

gerp-json

"gerpScore": 1.27
FieldTypeNotes
gerpScorefloatRange: -∞ to +∞
- - + + \ No newline at end of file diff --git a/3.23/data-sources/gerp/index.html b/3.23/data-sources/gerp/index.html index fa70af5c..e3d94f86 100644 --- a/3.23/data-sources/gerp/index.html +++ b/3.23/data-sources/gerp/index.html @@ -6,15 +6,15 @@ GERP | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

GERP

Overview

GERP identifies constrained elements in multiple alignments by quantifying substitution deficits. These deficits represent substitutions that would have occurred if the element were neutral DNA, but did not occur because the element has been under functional constraint (Rejected Substitutions). Illumina Connected Annotations uses GERP++ which is based on a significantly faster and more statistically robust maximum likelihood estimation procedure to compute expected rates of evolution.

Publication

Davydov, Eugene V., et al. "Identifying a high fraction of the human genome to be under selective constraint using GERP++." PLoS computational biology 6.12 e1001025 (2010). https://doi.org/10.1371/journal.pcbi.1001025

Source Files

Example GRCh37

GRCh37 file is a TSV format

chr     position    GERP
1 12177 0.83
1 12178 -0.206
1 12179 -0.492
1 12180 -1.66
1 12181 0.83
1 12182 0.83
1 12183 -0.417
1 12184 0.83

Example GRCh38

GRCh38 file is a lift-over BED format

chr     pos_start   pos_end     GERP
1 12646 12647 0.298
1 12647 12648 2.63
1 12648 12649 1.87
1 12649 12650 0.252
1 12650 12651 -2.06
1 12651 12652 2.61
1 12652 12653 3.97

Parsing

From the CSV file, we are interested in columns:

  • chr
  • position
  • GERP

Known Issues

None

Download URL

GRCh37

http://mendel.stanford.edu/SidowLab/downloads/gerp/index.html

GRCh38

The data is not available for GRCh38 on GERP++ website, and was obtained from https://personal.broadinstitute.org/konradk/loftee_data/GRCh38/

JSON Output

"gerpScore": 1.27
FieldTypeNotes
gerpScorefloatRange: -∞ to +∞
- - + + \ No newline at end of file diff --git a/3.23/data-sources/gme-json/index.html b/3.23/data-sources/gme-json/index.html index 654c31fd..9fcfa616 100644 --- a/3.23/data-sources/gme-json/index.html +++ b/3.23/data-sources/gme-json/index.html @@ -6,13 +6,13 @@ gme-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

gme-json

"gmeVariome":{
"allAc":10,
"allAn":202,
"allAf":0.049504,
"failedFilter":true
}
FieldTypeNotes
allAcintGME allele count
allAnintGME allele number
allAffloatGME allele frequency
failedFilterboolTrue if this variant failed any filters
- - + + \ No newline at end of file diff --git a/3.23/data-sources/gme/index.html b/3.23/data-sources/gme/index.html index b7e6dd8e..1ea964df 100644 --- a/3.23/data-sources/gme/index.html +++ b/3.23/data-sources/gme/index.html @@ -6,13 +6,13 @@ GME Variome | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

GME Variome

Overview

The Greater Middle East (GME) Variome Project is aimed at generating a coding base reference for the countries found in the Greater Middle East. Illumina Connected Annotations presents variant frequencies for the Greater Middle Eastern population.

Publication

Scott, E. M., Halees, A., Itan, Y., Spencer, E. G., He, Y., Azab, M. A., Gabriel, S. B., Belkadi, A., Boisson, B., Abel, L., Clark, A. G., Greater Middle East Variome Consortium, Alkuraya, F. S., Casanova, J. L., & Gleeson, J. G. (2016). Characterization of Greater Middle Eastern genetic variation for enhanced disease gene discovery. Nature genetics, 48(9), 1071–1076. https://doi.org/10.1038/ng.3592

TSV Extraction

chrom   pos     ref     alt     AA      filter  FunctionGVS     geneFunction    Gene    GeneID  SIFT_pred       GERP++  AF      GME_GC  GME_AC  GME_AF  NWA     NEA     AP      Israel  SD      TP      CA      FunctionGVS_new Priority        Polyphen2_HVAR_pred     LRT_pred        MutationTaster_pred     rsid    OMIM_MIM        OMIM_Disease    AA_AC   EA_AC   rsid_link       position_link
1 69134 A G A VQSRTrancheSNP99.90to100.00 nonsynonymous_SNV exonic OR4F5 79501 T 2.31 96:0:5 10,192 0.04950495049504951 4:0:0 59:0:2 12:0:0 0:0:0 6:0:0 9:0:2 13:0:2 nonsynonymous_SNV MODERATE B N N none - - none none - http://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&org=human&position=chr1%3A69134-69133
1 69270 A G A PASS synonymous_SNV exonic OR4F5 79501 . . 93:38:240 518,224 0.6981132075471698 5:5:11 63:30:86 12:5:28 1:0:2 2:2:18 7:3:46 7:2:52 synonymous_SNV LOW . . . rs201219564 - - none none http://www.ncbi.nlm.nih.gov/projects/SNP/snp_ref.cgi?searchType=adhoc_search&type=rs&rs=rs201219564 http://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&org=human&position=chr1%3A69270-69269
1 69428 T G T PASS nonsynonymous_SNV exonic OR4F5 79501 D 0.891 676:44:15 74,1396 0.050340136054421766 43:0:2 313:16:10 88:7:3 6:0:0 44:8:0 102:9:0 102:4:2 nonsynonymous_SNV MODERATE D N N rs140739101 - - 14,3808 313,6535 http://www.ncbi.nlm.nih.gov/projects/SNP/snp_ref.cgi?searchType=adhoc_search&type=rs&rs=rs140739101 http://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&org=human&position=chr1%3A69428-69427

Parsing

We parse the GME tsv file and extract the following columns:

  • chrom
  • pos
  • ref
  • alt
  • filter
  • GME_AC
  • GME_AF

GRCh37 liftover

The data is not available for GRCh38 on GME website. We performed a liftover from GRCh37 to GRCh38 using CrossMap.

Download URL

http://igm.ucsd.edu/gme/download.shtml

JSON output

"gmeVariome":{
"allAc":10,
"allAn":202,
"allAf":0.049504,
"failedFilter":true
}
FieldTypeNotes
allAcintGME allele count
allAnintGME allele number
allAffloatGME allele frequency
failedFilterboolTrue if this variant failed any filters
- - + + \ No newline at end of file diff --git a/3.23/data-sources/gnomad-lof-json/index.html b/3.23/data-sources/gnomad-lof-json/index.html index 69174a41..dad954ca 100644 --- a/3.23/data-sources/gnomad-lof-json/index.html +++ b/3.23/data-sources/gnomad-lof-json/index.html @@ -6,13 +6,13 @@ gnomad-lof-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

gnomad-lof-json

"gnomAD":{ 
"pLi":1.00e0,
"pNull":8.94e-40,
"pRec":1.84e-16,
"synZ":-8.44e-2,
"misZ":5.96e-1,
"loeuf":1.13e0
}
FieldTypeNotes
pLifloatprobability of being intolerant of a single loss-of-function variant (like haploinsufficient genes, observed ~ 0.1*expected)
pNullfloatprobability of being completely tolerant of loss of function variation (observed = expected)
pRecfloatprobability of being intolerant of two loss of function variants (like recessive genes, observed ~ 0.5*expected)
synZfloatcorrected synonymous Z score
misZfloatcorrected missense Z score
loeuffloatloss of function observed/expected upper bound fraction (LOEUF)
- - + + \ No newline at end of file diff --git a/3.23/data-sources/gnomad-small-variants-json/index.html b/3.23/data-sources/gnomad-small-variants-json/index.html index 79e0ccb9..b37afdc4 100644 --- a/3.23/data-sources/gnomad-small-variants-json/index.html +++ b/3.23/data-sources/gnomad-small-variants-json/index.html @@ -6,13 +6,13 @@ gnomad-small-variants-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

gnomad-small-variants-json

"gnomad":{ 
"coverage":20,
"allAf":0.190317,
"maleAf":0.193,
"femaleAf": 0.1935,
"afrAf":0.222876,
"amrAf":0.121394,
"easAf":0.239802,
"finAf":0.136833,
"nfeAf":0.181282,
"asjAf":0.258278,
"othAf":0.186094,
"allAn":30796,
"maleAn":15096,
"femaleAn":15700
"afrAn":8664,
"amrAn":832,
"easAn":1618,
"finAn":3486,
"nfeAn":14916,
"asjAn":302,
"othAn":978,
"allAc":5861,
"maleAc":2930,
"femaleAc": 2931,
"afrAc":1931,
"amrAc":101,
"easAc":388,
"finAc":477,
"nfeAc":2704,
"asjAc":78,
"othAc":182,
"allHc":561,
"afrHc":208,
"amrHc":6,
"easHc":42,
"finHc":31,
"nfeHc":242,
"asjHc":13,
"othHc":19,
"maleHc":280,
"femaleHc":281,
"controlsAllAf":0.190317,
"controlsAllAn":30796,
"controlsAllAc":5861,
"lowComplexityRegion":true,
"failedFilter":true
}
FieldTypeNotes
coverageintaverage coverage (non-negative integer values)
allAffloatallele frequency for all populations. Range: 0 - 1.0
maleAffloatallele frequency for male population. Range: 0 - 1.0
femaleAffloatallele frequency for female population. Range: 0 - 1.0
controlsAllAffloatallele frequency for the controls subset. Range: 0 - 1.0
allAcintallele count for all populations. Integer.
maleAcintallele count for male population. Integer.
femaleAcintallele count for female population. Integer.
controlsAllAcintallele count for the controls subset. Integer.
allAnintallele number for all populations. Non-zero integer.
maleAnintallele number for male population. Non-zero integer.
femaleAnintallele number for female population. Non-zero integer.
controlsAllAnintallele number for the controls subset. Non-zero integer.
allHcintcount of homozygous individuals for all populations. Non-negative integer.
maleHcintcount of homozygous individuals for male population. Non-negative integer.
femaleHcintcount of homozygous individuals for female population. Non-negative integer.
afrAffloatallele frequency for the African / African American population. Range: 0 - 1.0
afrAcintallele count for the African / African American population. Integer.
afrAnintallele number for the African / African American population. Non-zero integer.
afrHcintcount of homozygous individuals for African / African American population. Non-negative integer.
amrAffloatallele frequency for the Latino population. Range: 0 - 1.0
amrAcintallele count for the Latino population. Integer.
amrAnintallele number for the Latino population. Non-zero integer.
amrHcintcount of homozygous individuals for Latino population. Non-negative integer.
easAffloatallele frequency for the East Asian population. Range: 0 - 1.0
easAcintallele count for the East Asian population. Integer.
easAnintallele number for the East Asian population. Non-zero integer.
easHcintcount of homozygous individuals for East Asian population. Non-negative integer.
finAffloatallele frequency for the Finnish population. Range: 0 - 1.0
finAcintallele count for the Finnish population. Integer.
finAnintallele number for the Finnish population. Non-zero integer.
finHcintcount of homozygous individuals for Finnish population. Non-negative integer
nfeAffloatallele frequency for the Non-Finnish European population. Range: 0 - 1.0
nfeAcintallele count for the Non-Finnish European population. Integer.
nfeAnintallele number for the Non-Finnish European population. Non-zero integer.
nfeHcintcount of homozygous individuals for Non-Finnish European population. Non-negative integer
othAffloatallele frequency for the Other population. Range: 0 - 1.0
othAcintallele count for the Other population. Integer.
othAnintallele number for the Other population. Non-zero integer.
othHcintcount of homozygous individuals for Other population. Non-negative integer
asjAffloatallele frequency for the Ashkenazi Jewish population. Range: 0 - 1.0
asjAcintallele count for the Ashkenazi Jewish population Integer.
asjAnintallele number for the Ashkenazi Jewish population. Non-zero integer.
asjHcintcount of homozygous individuals for the Ashkenazi Jewish population. Non-negative integer
sasAffloatallele frequency for the South Asian population. Range: 0 - 1.0
sasAcintallele count for the South Asian population Integer.
sasAnintallele number for the South Asian population. Non-zero integer.
sasHcintcount of homozygous individuals for the South Asian population. Non-negative integer.
failedFilterboolTrue if this variant failed any filters (Note: we do not list the failed filters)
lowComplexityRegionboolTrue if this variant is located in a low complexity region.
- - + + \ No newline at end of file diff --git a/3.23/data-sources/gnomad-structural-variants-data_description/index.html b/3.23/data-sources/gnomad-structural-variants-data_description/index.html index 74e37b30..f4625cac 100644 --- a/3.23/data-sources/gnomad-structural-variants-data_description/index.html +++ b/3.23/data-sources/gnomad-structural-variants-data_description/index.html @@ -6,14 +6,14 @@ gnomad-structural-variants-data_description | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

gnomad-structural-variants-data_description

Bed Example

The bed file was obtained from original source for GRCh37

#chrom  start   end name    svtype  ALGORITHMS  BOTHSIDES_SUPPORT   CHR2    CPX_INTERVALS   CPX_TYPE    END2    ENDEVIDENCE HIGH_SR_BACKGROUND  PCRPLUS_DEPLETED    PESR_GT_OVERDISPERSION  POS2    PROTEIN_CODING__COPY_GAIN   PROTEIN_CODING__DUP_LOF PROTEIN_CODING__DUP_PARTIAL PROTEIN_CODING__INTERGENIC  PROTEIN_CODING__INTRONIC    PROTEIN_CODING__INV_SPAN    PROTEIN_CODING__LOF PROTEIN_CODING__MSV_EXON_OVR    PROTEIN_CODING__NEAREST_TSS PROTEIN_CODING__PROMOTER    PROTEIN_CODING__UTR SOURCE  STRANDS SVLEN   SVTYPE  UNRESOLVED_TYPE UNSTABLE_AF_PCRPLUS VARIABLE_ACROSS_BATCHES AN  AC  AF  N_BI_GENOS  N_HOMREF    N_HET   N_HOMALT    FREQ_HOMREF FREQ_HET    FREQ_HOMALT MALE_AN MALE_AC MALE_AF MALE_N_BI_GENOS MALE_N_HOMREF   MALE_N_HET  MALE_N_HOMALT   MALE_FREQ_HOMREF    MALE_FREQ_HET   MALE_FREQ_HOMALT    MALE_N_HEMIREF  MALE_N_HEMIALT  MALE_FREQ_HEMIREF   MALE_FREQ_HEMIALT   PAR FEMALE_AN   FEMALE_AC   FEMALE_AF   FEMALE_N_BI_GENOS   FEMALE_N_HOMREF FEMALE_N_HET    FEMALE_N_HOMALT FEMALE_FREQ_HOMREF  FEMALE_FREQ_HET FEMALE_FREQ_HOMALT  POPMAX_AF   AFR_AN  AFR_AC  AFR_AF  AFR_N_BI_GENOS  AFR_N_HOMREF    AFR_N_HET   AFR_N_HOMALT    AFR_FREQ_HOMREF AFR_FREQ_HEAFR_FREQ_HOMALT  AFR_MALE_AN AFR_MALE_AC AFR_MALE_AF AFR_MALE_N_BI_GENOS AFR_MALE_N_HOMREF   AFR_MALE_N_HET  AFR_MALE_N_HOMALT   AFR_MALE_FREQ_HOMREF    AFR_MALE_FREQ_HET   AFR_MALE_FREQ_HOMALT    AFR_MALE_N_HEMIREF  AFR_MALE_N_HEMIALT  AFR_MALE_FREQ_HEMIREF   AFR_MALE_FREQ_HEMIALT   AFR_FEMALE_AN   AFR_FEMALE_AC   AFR_FEMALE_AF   AFR_FEMALE_N_BI_GENOS   AFR_FEMALE_N_HOMREF AFR_FEMALE_N_HET    AFR_FEMALE_N_HOMALT AFR_FEMALE_FREQ_HOMREF  AFR_FEMALE_FREQ_HET AFR_FEMALE_FREQ_HOMALT  AMR_AN  AMR_AC  AMR_AF  AMR_N_BI_GENOS  AMR_N_HOMREF    AMR_N_HET   AMR_N_HOMALT    AMR_FREQ_HOMREF AMR_FREQ_HET    AMR_FREQ_HOMALT AMR_MALE_AN AMR_MALE_AC AMR_MALE_AF AMR_MALE_N_BI_GENOS AMR_MALE_N_HOMREF   AMR_MALE_N_HET  AMR_MALE_N_HOMALT   AMR_MALE_FREQ_HOMREF    AMR_MALE_FREQ_HET   AMR_MALE_FREQ_HOMALT    AMR_MALE_N_HEMIREF  AMR_MALE_N_HEMIALT  AMR_MALE_FREQ_HEMIREF   AMR_MALE_FREQ_HEMIALT   AMR_FEMALE_AN   AMR_FEMALE_AC   AMR_FEMALE_AF   AMR_FEMALE_N_BI_GENOS   AMR_FEMALE_N_HOMREF AMR_FEMALE_N_HET    AMR_FEMALE_N_HOMALT AMR_FEMALE_FREQ_HOMREF  AMR_FEMALE_FREQ_HET AMR_FEMALE_FREQ_HOMALT  EAS_AN  EAS_AC  EAS_AF  EAS_N_BI_GENOS  EAS_N_HOMREF    EAS_N_HET   EAS_N_HOMALT    EAS_FREQ_HOMREF EAS_FREQ_HET    EAS_FREQ_HOMALT EAS_MALE_AN EAS_MALE_AC EAS_MALE_AF EAS_MALE_N_BI_GENOS EAS_MALE_N_HOMREF   EAS_MALE_N_HET  EAS_MALE_N_HOMALT   EAS_MALE_FREQ_HOMREF    EAS_MALE_FREQ_HET   EAS_MALE_FREQ_HOMALT    EAS_MALE_N_HEMIREF  EAS_MALE_N_HEMIALT  EAS_MALE_FREQ_HEMIREF   EAS_MALE_FREQ_HEMIALT   EAS_FEMALE_AN   EAS_FEMALE_AC   EAS_FEMALE_AF   EAS_FEMALE_N_BI_GENOS   EAS_FEMALE_N_HOMREF EAS_FEMALE_N_HET    EAS_FEMALE_N_HOMALT EAS_FEMALE_FREQ_HOMREF  EAS_FEMALE_FREQ_HET EAS_FEMALE_FREQ_HOMALT  EUR_AN  EUR_AC  EUR_AF  EUR_N_BI_GENOS  EUR_N_HOMREF    EUR_N_HET   EUR_N_HOMALT    EUR_FREQ_HOMREF EUR_FREQ_HET    EUR_FREQ_HOMALT EUR_MALE_AN EUR_MALE_AC EUR_MALE_AF EUR_MALE_N_BI_GENOS EUR_MALE_N_HOMREF   EUR_MALE_N_HET  EUR_MALE_N_HOMALT   EUR_MALE_FREQ_HOMREF    EUR_MALE_FREQ_HET   EUR_MALE_FREQ_HOMALT    EUR_MALE_N_HEMIREF  EUR_MALE_N_HEMIALT  EUR_MALE_FREQ_HEMIREF   EUR_MALE_FREQ_HEMIALT   EUR_FEMALE_AN   EUR_FEMALE_AC   EUR_FEMALE_AF   EUR_FEMALE_N_BI_GENOS   EUR_FEMALE_N_HOMREF EUR_FEMALE_N_HET    EUR_FEMALE_N_HOMALT EUR_FEMALE_FREQ_HOMREF  EUR_FEMALE_FREQ_HET EUR_FEMALE_FREQ_HOMALT  OTH_AN  OTH_AC  OTH_AF  OTH_N_BI_GENOS  OTH_N_HOMREF    OTH_N_HET   OTH_N_HOMALT    OTH_FREQ_HOMREF OTH_FREQ_HET    OTH_FREQ_HOMALT OTH_MALE_AN OTH_MALE_AC OTH_MALE_AF OTH_MALE_N_BI_GENOS OTH_MALE_N_HOMREF   OTH_MALE_N_HET  OTH_MALE_N_HOMALT   OTH_MALE_FREQ_HOMREF    OTH_MALE_FREQ_HET   OTH_MALE_FREQ_HOMALT    OTH_MALE_N_HEMIREF  OTH_MALE_N_HEMIALT  OTH_MALE_FREQ_HEMIREF   OTH_MALE_FREQ_HEMIALT   OTH_FEMALE_AN   OTH_FEMALE_AC   OTH_FEMALE_AF   OTH_FEMALE_N_BI_GENOS   OTH_FEMALE_N_HOMREF OTH_FEMALE_N_HET    OTH_FEMALE_N_HOMALT OTH_FEMALE_FREQ_HOMREF  OTH_FEMALE_FREQ_HET OTH_FEMALE_FREQ_HOMALT  FILTER
1 10641 10642 gnomAD-SV_v2.1_BND_1_1 BND manta False 15 NA NA 10643 10643 PE,SR False False True 10642 NA NA NA False NA NA NA NA NA NA NA NA NA -1 BND SINGLE_ENDER_-- False False 21366 145 0.006785999983549118 10683 10543 135 5 0.9868950247764587 0.012636899948120117 0.00046803298755548894 10866 69 0.00634999992325902 5433 5366 65 2 0.987667977809906 0.011963900178670883 0.000368120992789045 NA NA NA NA False 10454 76 0.007269999943673615227 5154 70 3 0.9860339760780334 0.013392000459134579 0.0005739430198445916 0.015956999734044075 93972 0.007660999894142151 4699 4629 68 2 0.9851030111312866 0.014471200294792652 0.0004256220126990229 5154 33 0.006403000093996525 2577 2544 33 0 0.9871940016746521 0.012805599719285965 0.0NA NA NA NA 4232 39 0.009216000325977802 2116 2079 35 2 0.9825140237808228 0.01654059998691082 0.0009451800142414868 1910 7 0.003664999967440963 955 949 5 1 0.9937170147895813 0.00523559981957078 0.001047119963914156 950 4 0.004211000166833401 475 472 2 1 0.9936839938163757 0.00421052984893322 0.0021052600350230932 NA NA NA NA 952 3 0.0031510000117123127 476473 3 0 0.9936969876289368 0.006302520167082548 0.0 2296 31 0.013501999899744987 1148 11131 0 0.9729970097541809 0.02700350061058998 0.0 1312 13 0.009909000247716904 656 643 13 0.9801830053329468 0.01981710083782673 0.0 NA NA NA NA 976 18 0.018442999571561813 488470 18 0 0.9631149768829346 0.03688519820570946 0.0 7574 32 0.004224999807775021 3787 37528 2 0.9920780062675476 0.007393720094114542 0.0005281229969114065 3374 17 0.005038999952375889 1681671 15 1 0.9905160069465637 0.008891520090401173 0.000592768017668277 NA NA NA NA 41815 0.003587000072002411 2091 2077 13 1 0.9933050274848938 0.006217120215296745 0.00047823999193497188 3 0.015956999734044075 94 91 3 0 0.968084990978241 0.03191490098834038 0.0 76 0.026316000148653984 38 36 2 0 0.9473680257797241 0.05263160169124603 0.0 NA NA NA NA 112 1 0.008929000236093998 56 55 1 0 0.982142984867096 0.017857100814580917 0.0UNRESOLVED

TSV Example

The tsv was obtained from lifted over dataset created by dbVar for GRCh38

#variant_call_accession variant_call_id variant_call_type   experiment_id   sample_id   sampleset_id    assembly    chrcontig   outer_start start   inner_start inner_stop  stop    outer_stop  insertion_length    variant_region_acc  variant_region_id   copy_number description validation  zygosity    origin  phenotype   hgvs_name   placement_method    placement_rank  placements_per_assembly remap_alignment remap_best_within_cluster   remap_coverage  remap_diff_chr  remap_failure_code  allele_count    allele_frequency    allele_number
nssv15777856 gnomAD-SV_v2.1_CNV_10_564_alt_1 copy number variation 1 1 GRCh38.p12 10 736806 738184 nsv4039284 10__782746___784124______GRCh37.p13_copy_number_variation 0 Remapped BestAvailable Single First Pass 0 1 AC=21,AFR_AC=10,AMR_AC=9,EAS_AC=0,EUR_AC=2,OTH_AC=0AF=0.038889,AFR_AF=0.044643,AMR_AF=0.03913,EAS_AF=0,EUR_AF=0.023256,OTH_AF=0 AN=540,AFR_AN=224,AMR_AN=230,EAS_AN=0,EUR_AN=86,OTH_AN=0

Structural Variant Type Mapping

The source files represented the structural variants with keys using various naming conventions. In the Illumina Connected Annotations JSON output, these keys will be mapped according to the following.

Illumina Connected Annotations JSON SV Type KeyGRCh37 Source SV Type KeyGRCh38 Source SV Type Key
copy_number_variationcopy number variation
deletionDEL, CN=0deletion
duplicationDUPduplication
insertionINSinsertion
inversionINVinversion
mobile_element_insertionINS:MEmobile element insertion
mobile_element_insertionINS:ME:ALUalu insertion
mobile_element_insertionINS:ME:LINE1line1 insertion
mobile_element_insertionINS:ME:SVAsva insertion
structural alterationsequence alteration
complex_structural_alterationCPX
- - + + \ No newline at end of file diff --git a/3.23/data-sources/gnomad-structural-variants-json/index.html b/3.23/data-sources/gnomad-structural-variants-json/index.html index 0dc010a0..41a43bb0 100644 --- a/3.23/data-sources/gnomad-structural-variants-json/index.html +++ b/3.23/data-sources/gnomad-structural-variants-json/index.html @@ -6,13 +6,13 @@ gnomad-structural-variants-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

gnomad-structural-variants-json

"gnomAD-preview": [
{
"chromosome": "1",
"begin": 40001,
"end": 47200,
"variantId": "gnomAD-SV_v2.1_DUP_1_1",
"variantType": "duplication",
"failedFilter": true,
"allAf": 0.068963,
"afrAf": 0.135694,
"amrAf": 0.022876,
"easAf": 0.01101,
"eurAf": 0.007846,
"othAf": 0.017544,
"femaleAf": 0.065288,
"maleAf": 0.07255,
"allAc": 943,
"afrAc": 866,
"amrAc": 21,
"easAc": 17,
"eurAc": 37,
"othAc": 2,
"femaleAc": 442,
"maleAc": 499,
"allAn": 13674,
"afrAn": 6382,
"amrAn": 918,
"easAn": 1544,
"eurAn": 4716,
"othAn": 114,
"femaleAn": 6770,
"maleAn": 6878,
"allHc": 91,
"afrHc": 90,
"amrHc": 1,
"easHc": 0,
"eurHc": 0,
"othHc": 55,
"femaleHc": 44,
"maleHc": 47,
"reciprocalOverlap": 0.01839,
"annotationOverlap": 0.16667
}
]

FieldTypeNotes
chromosomestringchromosome number
beginintegerposition interval start
endintegerposition internal end
variantTypestringstructural variant type
variantIdstringgnomAD ID
allAffloating pointallele frequency for all populations. Range: 0 - 1.0
afrAffloating pointallele frequency for the African super population. Range: 0 - 1.0
amrAffloating pointallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
easAffloating pointallele frequency for the East Asian super population. Range: 0 - 1.0
eurAffloating pointallele frequency for the European super population. Range: 0 - 1.0
othAffloating pointallele frequency for all other populations. Range: 0 - 1.0
femaleAffloating pointallele frequency for female population. Range: 0 - 1.0
maleAffloating pointallele frequency for male population. Range: 0 - 1.0
allAcintegerallele count for all populations.
afrAcintegerallele count for the African super population.
amrAcintegerallele count for the Ad Mixed American super population.
easAcintegerallele count for the East Asian super population.
eurAcintegerallele count for the European super population.
othAcintegerallele count for all other populations.
maleAcintegerallele count for male population.
femaleAcintegerallele count for female population.
allAnintegerallele number for all populations.
afrAnintegerallele number for the African super population.
amrAnintegerallele number for the Ad Mixed American super population.
easAnintegerallele number for the East Asian super population.
eurAnintegerallele number for the European super population.
othAnintegerallele number for all other populations.
femaleAnintegerallele number for female population.
maleAnintegerallele number for male population.
allHcintegercount of homozygous individuals for all populations.
afrHcintegercount of homozygous individuals for the African / African American population.
amrHcintegercount of homozygous individuals for the Latino population.
easHcintegercount of homozygous individuals for the East Asian population.
eurAcintegercount of homozygous individuals for the European super population.
othHcintegercount of homozygous individuals for all other populations.
maleHcintegercount of homozygous individuals for male population.
femaleHcintegercount of homozygous individuals for female population.
failedFilterbooleanTrue if this variant failed any filters (Note: we do not list the failed filters)
reciprocalOverlapfloating pointReciprocal overlap. Range: 0 - 1.0
annotationOverlapfloating pointReciprocal overlap. Range: 0 - 1.0

Note: Following fields are not available in GRCh38 because the source file does not contain this information:

Field
femaleAf
maleAf
maleAc
femaleAc
femaleAn
maleAn
allHc
afrHc
amrHc
easHc
eurAc
othHc
maleHc
femaleHc
failedFilter
- - + + \ No newline at end of file diff --git a/3.23/data-sources/gnomad/index.html b/3.23/data-sources/gnomad/index.html index 49e76ba7..c788810f 100644 --- a/3.23/data-sources/gnomad/index.html +++ b/3.23/data-sources/gnomad/index.html @@ -6,8 +6,8 @@ gnomAD | IlluminaConnectedAnnotations - - + +
@@ -16,7 +16,7 @@ Currently, the annotations do not include translocation breakends. Future updates will include a better way of annotating the structural variants.

Source Files

Bed Example

The bed file was obtained from original source for GRCh37

#chrom  start   end name    svtype  ALGORITHMS  BOTHSIDES_SUPPORT   CHR2    CPX_INTERVALS   CPX_TYPE    END2    ENDEVIDENCE HIGH_SR_BACKGROUND  PCRPLUS_DEPLETED    PESR_GT_OVERDISPERSION  POS2    PROTEIN_CODING__COPY_GAIN   PROTEIN_CODING__DUP_LOF PROTEIN_CODING__DUP_PARTIAL PROTEIN_CODING__INTERGENIC  PROTEIN_CODING__INTRONIC    PROTEIN_CODING__INV_SPAN    PROTEIN_CODING__LOF PROTEIN_CODING__MSV_EXON_OVR    PROTEIN_CODING__NEAREST_TSS PROTEIN_CODING__PROMOTER    PROTEIN_CODING__UTR SOURCE  STRANDS SVLEN   SVTYPE  UNRESOLVED_TYPE UNSTABLE_AF_PCRPLUS VARIABLE_ACROSS_BATCHES AN  AC  AF  N_BI_GENOS  N_HOMREF    N_HET   N_HOMALT    FREQ_HOMREF FREQ_HET    FREQ_HOMALT MALE_AN MALE_AC MALE_AF MALE_N_BI_GENOS MALE_N_HOMREF   MALE_N_HET  MALE_N_HOMALT   MALE_FREQ_HOMREF    MALE_FREQ_HET   MALE_FREQ_HOMALT    MALE_N_HEMIREF  MALE_N_HEMIALT  MALE_FREQ_HEMIREF   MALE_FREQ_HEMIALT   PAR FEMALE_AN   FEMALE_AC   FEMALE_AF   FEMALE_N_BI_GENOS   FEMALE_N_HOMREF FEMALE_N_HET    FEMALE_N_HOMALT FEMALE_FREQ_HOMREF  FEMALE_FREQ_HET FEMALE_FREQ_HOMALT  POPMAX_AF   AFR_AN  AFR_AC  AFR_AF  AFR_N_BI_GENOS  AFR_N_HOMREF    AFR_N_HET   AFR_N_HOMALT    AFR_FREQ_HOMREF AFR_FREQ_HEAFR_FREQ_HOMALT  AFR_MALE_AN AFR_MALE_AC AFR_MALE_AF AFR_MALE_N_BI_GENOS AFR_MALE_N_HOMREF   AFR_MALE_N_HET  AFR_MALE_N_HOMALT   AFR_MALE_FREQ_HOMREF    AFR_MALE_FREQ_HET   AFR_MALE_FREQ_HOMALT    AFR_MALE_N_HEMIREF  AFR_MALE_N_HEMIALT  AFR_MALE_FREQ_HEMIREF   AFR_MALE_FREQ_HEMIALT   AFR_FEMALE_AN   AFR_FEMALE_AC   AFR_FEMALE_AF   AFR_FEMALE_N_BI_GENOS   AFR_FEMALE_N_HOMREF AFR_FEMALE_N_HET    AFR_FEMALE_N_HOMALT AFR_FEMALE_FREQ_HOMREF  AFR_FEMALE_FREQ_HET AFR_FEMALE_FREQ_HOMALT  AMR_AN  AMR_AC  AMR_AF  AMR_N_BI_GENOS  AMR_N_HOMREF    AMR_N_HET   AMR_N_HOMALT    AMR_FREQ_HOMREF AMR_FREQ_HET    AMR_FREQ_HOMALT AMR_MALE_AN AMR_MALE_AC AMR_MALE_AF AMR_MALE_N_BI_GENOS AMR_MALE_N_HOMREF   AMR_MALE_N_HET  AMR_MALE_N_HOMALT   AMR_MALE_FREQ_HOMREF    AMR_MALE_FREQ_HET   AMR_MALE_FREQ_HOMALT    AMR_MALE_N_HEMIREF  AMR_MALE_N_HEMIALT  AMR_MALE_FREQ_HEMIREF   AMR_MALE_FREQ_HEMIALT   AMR_FEMALE_AN   AMR_FEMALE_AC   AMR_FEMALE_AF   AMR_FEMALE_N_BI_GENOS   AMR_FEMALE_N_HOMREF AMR_FEMALE_N_HET    AMR_FEMALE_N_HOMALT AMR_FEMALE_FREQ_HOMREF  AMR_FEMALE_FREQ_HET AMR_FEMALE_FREQ_HOMALT  EAS_AN  EAS_AC  EAS_AF  EAS_N_BI_GENOS  EAS_N_HOMREF    EAS_N_HET   EAS_N_HOMALT    EAS_FREQ_HOMREF EAS_FREQ_HET    EAS_FREQ_HOMALT EAS_MALE_AN EAS_MALE_AC EAS_MALE_AF EAS_MALE_N_BI_GENOS EAS_MALE_N_HOMREF   EAS_MALE_N_HET  EAS_MALE_N_HOMALT   EAS_MALE_FREQ_HOMREF    EAS_MALE_FREQ_HET   EAS_MALE_FREQ_HOMALT    EAS_MALE_N_HEMIREF  EAS_MALE_N_HEMIALT  EAS_MALE_FREQ_HEMIREF   EAS_MALE_FREQ_HEMIALT   EAS_FEMALE_AN   EAS_FEMALE_AC   EAS_FEMALE_AF   EAS_FEMALE_N_BI_GENOS   EAS_FEMALE_N_HOMREF EAS_FEMALE_N_HET    EAS_FEMALE_N_HOMALT EAS_FEMALE_FREQ_HOMREF  EAS_FEMALE_FREQ_HET EAS_FEMALE_FREQ_HOMALT  EUR_AN  EUR_AC  EUR_AF  EUR_N_BI_GENOS  EUR_N_HOMREF    EUR_N_HET   EUR_N_HOMALT    EUR_FREQ_HOMREF EUR_FREQ_HET    EUR_FREQ_HOMALT EUR_MALE_AN EUR_MALE_AC EUR_MALE_AF EUR_MALE_N_BI_GENOS EUR_MALE_N_HOMREF   EUR_MALE_N_HET  EUR_MALE_N_HOMALT   EUR_MALE_FREQ_HOMREF    EUR_MALE_FREQ_HET   EUR_MALE_FREQ_HOMALT    EUR_MALE_N_HEMIREF  EUR_MALE_N_HEMIALT  EUR_MALE_FREQ_HEMIREF   EUR_MALE_FREQ_HEMIALT   EUR_FEMALE_AN   EUR_FEMALE_AC   EUR_FEMALE_AF   EUR_FEMALE_N_BI_GENOS   EUR_FEMALE_N_HOMREF EUR_FEMALE_N_HET    EUR_FEMALE_N_HOMALT EUR_FEMALE_FREQ_HOMREF  EUR_FEMALE_FREQ_HET EUR_FEMALE_FREQ_HOMALT  OTH_AN  OTH_AC  OTH_AF  OTH_N_BI_GENOS  OTH_N_HOMREF    OTH_N_HET   OTH_N_HOMALT    OTH_FREQ_HOMREF OTH_FREQ_HET    OTH_FREQ_HOMALT OTH_MALE_AN OTH_MALE_AC OTH_MALE_AF OTH_MALE_N_BI_GENOS OTH_MALE_N_HOMREF   OTH_MALE_N_HET  OTH_MALE_N_HOMALT   OTH_MALE_FREQ_HOMREF    OTH_MALE_FREQ_HET   OTH_MALE_FREQ_HOMALT    OTH_MALE_N_HEMIREF  OTH_MALE_N_HEMIALT  OTH_MALE_FREQ_HEMIREF   OTH_MALE_FREQ_HEMIALT   OTH_FEMALE_AN   OTH_FEMALE_AC   OTH_FEMALE_AF   OTH_FEMALE_N_BI_GENOS   OTH_FEMALE_N_HOMREF OTH_FEMALE_N_HET    OTH_FEMALE_N_HOMALT OTH_FEMALE_FREQ_HOMREF  OTH_FEMALE_FREQ_HET OTH_FEMALE_FREQ_HOMALT  FILTER
1 10641 10642 gnomAD-SV_v2.1_BND_1_1 BND manta False 15 NA NA 10643 10643 PE,SR False False True 10642 NA NA NA False NA NA NA NA NA NA NA NA NA -1 BND SINGLE_ENDER_-- False False 21366 145 0.006785999983549118 10683 10543 135 5 0.9868950247764587 0.012636899948120117 0.00046803298755548894 10866 69 0.00634999992325902 5433 5366 65 2 0.987667977809906 0.011963900178670883 0.000368120992789045 NA NA NA NA False 10454 76 0.007269999943673615227 5154 70 3 0.9860339760780334 0.013392000459134579 0.0005739430198445916 0.015956999734044075 93972 0.007660999894142151 4699 4629 68 2 0.9851030111312866 0.014471200294792652 0.0004256220126990229 5154 33 0.006403000093996525 2577 2544 33 0 0.9871940016746521 0.012805599719285965 0.0NA NA NA NA 4232 39 0.009216000325977802 2116 2079 35 2 0.9825140237808228 0.01654059998691082 0.0009451800142414868 1910 7 0.003664999967440963 955 949 5 1 0.9937170147895813 0.00523559981957078 0.001047119963914156 950 4 0.004211000166833401 475 472 2 1 0.9936839938163757 0.00421052984893322 0.0021052600350230932 NA NA NA NA 952 3 0.0031510000117123127 476473 3 0 0.9936969876289368 0.006302520167082548 0.0 2296 31 0.013501999899744987 1148 11131 0 0.9729970097541809 0.02700350061058998 0.0 1312 13 0.009909000247716904 656 643 13 0.9801830053329468 0.01981710083782673 0.0 NA NA NA NA 976 18 0.018442999571561813 488470 18 0 0.9631149768829346 0.03688519820570946 0.0 7574 32 0.004224999807775021 3787 37528 2 0.9920780062675476 0.007393720094114542 0.0005281229969114065 3374 17 0.005038999952375889 1681671 15 1 0.9905160069465637 0.008891520090401173 0.000592768017668277 NA NA NA NA 41815 0.003587000072002411 2091 2077 13 1 0.9933050274848938 0.006217120215296745 0.00047823999193497188 3 0.015956999734044075 94 91 3 0 0.968084990978241 0.03191490098834038 0.0 76 0.026316000148653984 38 36 2 0 0.9473680257797241 0.05263160169124603 0.0 NA NA NA NA 112 1 0.008929000236093998 56 55 1 0 0.982142984867096 0.017857100814580917 0.0UNRESOLVED

TSV Example

The tsv was obtained from lifted over dataset created by dbVar for GRCh38

#variant_call_accession variant_call_id variant_call_type   experiment_id   sample_id   sampleset_id    assembly    chrcontig   outer_start start   inner_start inner_stop  stop    outer_stop  insertion_length    variant_region_acc  variant_region_id   copy_number description validation  zygosity    origin  phenotype   hgvs_name   placement_method    placement_rank  placements_per_assembly remap_alignment remap_best_within_cluster   remap_coverage  remap_diff_chr  remap_failure_code  allele_count    allele_frequency    allele_number
nssv15777856 gnomAD-SV_v2.1_CNV_10_564_alt_1 copy number variation 1 1 GRCh38.p12 10 736806 738184 nsv4039284 10__782746___784124______GRCh37.p13_copy_number_variation 0 Remapped BestAvailable Single First Pass 0 1 AC=21,AFR_AC=10,AMR_AC=9,EAS_AC=0,EUR_AC=2,OTH_AC=0AF=0.038889,AFR_AF=0.044643,AMR_AF=0.03913,EAS_AF=0,EUR_AF=0.023256,OTH_AF=0 AN=540,AFR_AN=224,AMR_AN=230,EAS_AN=0,EUR_AN=86,OTH_AN=0

Structural Variant Type Mapping

The source files represented the structural variants with keys using various naming conventions. In the Illumina Connected Annotations JSON output, these keys will be mapped according to the following.

Illumina Connected Annotations JSON SV Type KeyGRCh37 Source SV Type KeyGRCh38 Source SV Type Key
copy_number_variationcopy number variation
deletionDEL, CN=0deletion
duplicationDUPduplication
insertionINSinsertion
inversionINVinversion
mobile_element_insertionINS:MEmobile element insertion
mobile_element_insertionINS:ME:ALUalu insertion
mobile_element_insertionINS:ME:LINE1line1 insertion
mobile_element_insertionINS:ME:SVAsva insertion
structural alterationsequence alteration
complex_structural_alterationCPX

Download URLs

GRCh37

The GRCh37 file was downloaded from the original source. Following table gives some essential data metrics:

https://storage.googleapis.com/gcp-public-data--gnomad/papers/2019-sv/gnomad_v2.1_sv.sites.bed.gz

GRCh38

Note: The data was unavailable from gnomAD 2.1 original source, however the lifted over structural variant dataset was created by dbVar and was obtained from them https://www.ncbi.nlm.nih.gov/sites/dbvarapp/studies/nstd166/.

Download URL

https://ftp.ncbi.nlm.nih.gov/pub/dbVar/data/Homo_sapiens/by_study/tsv/nstd166.GRCh38.variant_call.tsv.gz

JSON output

"gnomAD-preview": [
{
"chromosome": "1",
"begin": 40001,
"end": 47200,
"variantId": "gnomAD-SV_v2.1_DUP_1_1",
"variantType": "duplication",
"failedFilter": true,
"allAf": 0.068963,
"afrAf": 0.135694,
"amrAf": 0.022876,
"easAf": 0.01101,
"eurAf": 0.007846,
"othAf": 0.017544,
"femaleAf": 0.065288,
"maleAf": 0.07255,
"allAc": 943,
"afrAc": 866,
"amrAc": 21,
"easAc": 17,
"eurAc": 37,
"othAc": 2,
"femaleAc": 442,
"maleAc": 499,
"allAn": 13674,
"afrAn": 6382,
"amrAn": 918,
"easAn": 1544,
"eurAn": 4716,
"othAn": 114,
"femaleAn": 6770,
"maleAn": 6878,
"allHc": 91,
"afrHc": 90,
"amrHc": 1,
"easHc": 0,
"eurHc": 0,
"othHc": 55,
"femaleHc": 44,
"maleHc": 47,
"reciprocalOverlap": 0.01839,
"annotationOverlap": 0.16667
}
]

FieldTypeNotes
chromosomestringchromosome number
beginintegerposition interval start
endintegerposition internal end
variantTypestringstructural variant type
variantIdstringgnomAD ID
allAffloating pointallele frequency for all populations. Range: 0 - 1.0
afrAffloating pointallele frequency for the African super population. Range: 0 - 1.0
amrAffloating pointallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
easAffloating pointallele frequency for the East Asian super population. Range: 0 - 1.0
eurAffloating pointallele frequency for the European super population. Range: 0 - 1.0
othAffloating pointallele frequency for all other populations. Range: 0 - 1.0
femaleAffloating pointallele frequency for female population. Range: 0 - 1.0
maleAffloating pointallele frequency for male population. Range: 0 - 1.0
allAcintegerallele count for all populations.
afrAcintegerallele count for the African super population.
amrAcintegerallele count for the Ad Mixed American super population.
easAcintegerallele count for the East Asian super population.
eurAcintegerallele count for the European super population.
othAcintegerallele count for all other populations.
maleAcintegerallele count for male population.
femaleAcintegerallele count for female population.
allAnintegerallele number for all populations.
afrAnintegerallele number for the African super population.
amrAnintegerallele number for the Ad Mixed American super population.
easAnintegerallele number for the East Asian super population.
eurAnintegerallele number for the European super population.
othAnintegerallele number for all other populations.
femaleAnintegerallele number for female population.
maleAnintegerallele number for male population.
allHcintegercount of homozygous individuals for all populations.
afrHcintegercount of homozygous individuals for the African / African American population.
amrHcintegercount of homozygous individuals for the Latino population.
easHcintegercount of homozygous individuals for the East Asian population.
eurAcintegercount of homozygous individuals for the European super population.
othHcintegercount of homozygous individuals for all other populations.
maleHcintegercount of homozygous individuals for male population.
femaleHcintegercount of homozygous individuals for female population.
failedFilterbooleanTrue if this variant failed any filters (Note: we do not list the failed filters)
reciprocalOverlapfloating pointReciprocal overlap. Range: 0 - 1.0
annotationOverlapfloating pointReciprocal overlap. Range: 0 - 1.0

Note: Following fields are not available in GRCh38 because the source file does not contain this information:

Field
femaleAf
maleAf
maleAc
femaleAc
femaleAn
maleAn
allHc
afrHc
amrHc
easHc
eurAc
othHc
maleHc
femaleHc
failedFilter
- - + + \ No newline at end of file diff --git a/3.23/data-sources/mito-heteroplasmy/index.html b/3.23/data-sources/mito-heteroplasmy/index.html index ced3c469..b3852c65 100644 --- a/3.23/data-sources/mito-heteroplasmy/index.html +++ b/3.23/data-sources/mito-heteroplasmy/index.html @@ -6,13 +6,13 @@ Mitochondrial Heteroplasmy | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Mitochondrial Heteroplasmy

Overview

Mitochondrial Heteroplasmy is an aggregate population data set that characterizes the amount of heteroplasmy observed for each variant. The latest version of this data set is based on re-processed 1000 Genomes Project data using the Illumina DRAGEN pipeline.

JSON File

Example

{
"T:C":{
"ad":[
1,
1,
1,
1,
1,
1
],
"allele_type":"alt",
"vrf":[
0.002369668246445498,
0.0024937655860349127,
0.0016129032258064516,
0.0025188916876574307,
0.0022935779816513763,
0.002008032128514056
],
"vrf_stats":{
"kurtosis":38.889891511122556,
"max":0.0025188916876574307,
"mean":5.4052190471990743e-05,
"min":0.0,
"nobs":246,
"skewness":6.346664692283075,
"stdev":0.0003461416264750575,
"variance":1.1981402557879823e-07
}
}
}

Parsing

From the JSON file, we're mainly interested in the following keys:

  • variant (i.e. T:C)
  • ad
  • vrf
  • nobs (number of observations)
Adjusting for null observations

The nobs value indicates how many observations were made. Ideally this would have been represented in the ad and vrf arrays, but it's left as an exercise for the reader.

Binning VRF Data

The vrf (variant read frequency) array in the JSON object above is paired with with the ad array (allele depths) shown above.

The data in the JSON object has a crazy number of significant digits. This means that as the number of samples increase, this array will grow. To make this more future-proof, Illumina Connected Annotations bins everything according to 0.1% increments.

With the binned data, we end up having 775 distinct vrf values in the entire JSON file. This also means that the variant with the largest number of VRFs would originally have 246 entries, but due to binning this will decrease to 143.

Pre-processing the Data

The JSON file is converted into a small TSV file that is embedded in Illumina Connected Annotations. Here is an example of the TSV file:

#CHROM  POS REF ALT VRF_BINS    VRF_COUNTS
chrM 1 G . 0.981,0.987,0.988,0.989,0.99,0.991,0.992,0.993,0.994,0.995,0.996,0.997,0.998,0.999 1,2,2,4,7,8,11,19,43,60,48,64,499,1736
chrM 2 A . 0.981,0.987,0.988,0.989,0.99,0.991,0.992,0.993,0.994,0.995,0.996,0.997,0.998,0.999 1,2,2,4,7,8,11,19,43,60,48,64,499,1736

Algorithm

Illumina Connected Annotations will calculate mitochondrial heteroplasmy data for every sample in the VCF. Using the computed VRF for each sample, we compute where in the empirical mitochondrial heteroplasmy distribution that VRF occurs and express that as a percentile.

Percentiles

Illumina Connected Annotations uses the statistical definition of percentile (indicating the value below which a given percentage of observations in a group of observations falls). Unless the sample's VRF is higher than all the VRFs represented in the distribution, the range will be [0, 1).

Download URL

Unavailable

The original data set is only available internally at Illumina at the moment.

JSON Output

"samples":[
{
"genotype":"0/1",
"variantFrequencies":[
0.333,
0.5
],
],
"alleleDepths":[
10,
20,
30
],
"heteroplasmyPercentile":[
23.13,
12.65
]
}
]
FieldTypeNotes
heteroplasmyPercentilefloat arrayone percentile for each variant frequency (each alternate allele)
- - + + \ No newline at end of file diff --git a/3.23/data-sources/mitomap-small-variants-json/index.html b/3.23/data-sources/mitomap-small-variants-json/index.html index f94fe389..ecb3b6d9 100644 --- a/3.23/data-sources/mitomap-small-variants-json/index.html +++ b/3.23/data-sources/mitomap-small-variants-json/index.html @@ -6,13 +6,13 @@ mitomap-small-variants-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

mitomap-small-variants-json

"mitomap":[ 
{
"refAllele":"G",
"altAllele":"A",
"diseases":[
"Bipolar disorder",
"Melanoma"
],
"hasHomoplasmy":false,
"hasHeteroplasmy":true,
"status":"Reported",
"clinicalSignificance":"confirmed pathogenic",
"scorePercentile":83.30,
"numGenBankFullLengthSeqs":2,
"pubMedIds":["2316527","6299878","6301949"],
"isAlleleSpecific":true
}
]
FieldTypeNotes
refAllelestring
altAllelestring
diseasesstring arrayassociated diseases
hasHomoplasmyboolean
hasHeteroplasmyboolean
statusstringrecord status
clinicalSignificancestringpredicted pathogenicity
scorePercentilefloatMitoTIP score
numGenBankFullLengthSeqsinteger# of GenBank full-length sequences
pubMedIdsstring array
isAlleleSpecificbooleantrue when the current variant alternate allele matches the MITOMAP alternate allele
- - + + \ No newline at end of file diff --git a/3.23/data-sources/mitomap-structural-variants-json/index.html b/3.23/data-sources/mitomap-structural-variants-json/index.html index 6baf3e33..3493d1fb 100644 --- a/3.23/data-sources/mitomap-structural-variants-json/index.html +++ b/3.23/data-sources/mitomap-structural-variants-json/index.html @@ -6,13 +6,13 @@ mitomap-structural-variants-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

mitomap-structural-variants-json

"mitomap":[ 
{
"chromosome":"MT",
"begin":3166,
"end":14152,
"variantType":"deletion",
"reciprocalOverlap":0.18068,
"annotationOverlap":0.42405
}
]
FieldTypeNotes
chromosomestring
begininteger
endinteger
variantTypestring array
reciprocalOverlapfloatRange: 0 - 1. Specified up to 5 decimal places
annotationOverlapfloatRange: 0 - 1. Specified up to 5 decimal places
- - + + \ No newline at end of file diff --git a/3.23/data-sources/mitomap/index.html b/3.23/data-sources/mitomap/index.html index 82ea8b9d..da4b4196 100644 --- a/3.23/data-sources/mitomap/index.html +++ b/3.23/data-sources/mitomap/index.html @@ -6,13 +6,13 @@ MITOMAP | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

MITOMAP

Overview

MITOMAP provides a compendium of polymorphisms and mutations in human mitochondrial DNA.

Publication

Lott, M.T., Leipzig, J.N., Derbeneva, O., Xie, H.M., Chalkia, D., Sarmady, M., Procaccio, V., and Wallace, D.C. mtDNA variation and analysis using MITOMAP and MITOMASTER. Current Protocols in Bioinformatics 1(123):1.23.1-26 (2013). http://www.mitomap.org

Scraping HTML Pages

Example

MITOMAP is unique in that it doesn't offer the data in a downloadable format. As a result, the annotation content in Illumina Connected Annotations is scraped from the following MITOMAP pages:

  1. mtDNA Control Region Sequence Variants
  2. mtDNA Coding Region & RNA Sequence Variants
  3. Reported Mitochondrial DNA Base Substitution Diseases: rRNA/tRNA mutations
  4. Reported Mitochondrial DNA Base Substitution Diseases: Coding and Control Region Point Mutations
  5. Reported mtDNA Deletions
  6. mtDNA Simple Insertions

Parsing

Here's what the HTML code looks like:

["582","<a href='/MITOMAP/GenomeLoci#MTTF'>MT-TF</a>","Mitochondrial myopathy","T582C","tRNA Phe","-","+","Reported","<span style='display:inline-block;white-space:nowrap;'><a href='/cgi-bin/mitotip?pos=582&alt=C&quart=2'><u>72.90%</u></a> <i class='fa fa-arrow-up' style='color:orange' aria-hidden='true'></i></span>","0","<a href='/cgi-bin/print_ref_list?refs=90165,91590&title=RNA+Mutation+T582C' target='_blank'>2</a>"],
["583","<a href='/MITOMAP/GenomeLoci#MTTF'>MT-TF</a>","MELAS / MM & EXIT","G583A","tRNA Phe","-","+","Cfrm","<span style='display:inline-block;white-space:nowrap;'><a href='/cgi-bin/mitotip?pos=583&alt=A&quart=0'><u>93.10%</u></a> <i class='fa fa-arrow-up' style='color:red' aria-hidden='true'></i><i class='fa fa-arrow-up' style='color:red' aria-hidden='true'></i><i class='fa fa-arrow-up' style='color:red' aria-hidden='true'></i></span>","0","<a href='/cgi-bin/print_ref_list?refs=2066,90532,91590&title=RNA+Mutation+G583A' target='_blank'>3</a>"],

We're mainly interested in the following columns (numbers indicate the HTML page above):

  • Position1,2,3,4
  • Disease3,4
  • Nucleotide Change1,2
  • Allele3,4
  • Homoplasmy3,4
  • Heteroplasmy3,4
  • Status3,4
  • MitoTIP3,4
  • GB Seqs FL(CR)1,2,3,4
  • Deletion Junction5
  • Insert (nt)6
  • Insert Point (nt)6
  • References/Curated References1,2,3,4
MitoTIP

The MitoTIP information is used to populate the clinicalSignificance and scorePercentile JSON keys. The "frequency alert" entries are skipped since it's not directly relevant to clinical significance.

Left alignment

Many of the variants in MITOMAP have not been normalized. As part of our import procedure, we left align all insertions and deletions.

Variant Enumeration

Sometimes MITOMAP provides data that indicates that multiple values have been observed. Some examples of this are C-C(2-8) and A-AC or ACC. Alternate alleles containing IUPAC ambiguity codes are similarly enumerated.

Inversions

MITOMAP inversions are currently treated as MNVs.

Allele Parsing

The following MITOMAP allele parsing conventions are supported:

  • C123T
  • 16021_16022del
  • 8042del2
  • C9537insC
  • 3902_3908invACCTTGC
  • A-AC or ACC
  • C-C(2-8)
  • 8042delAT

PostgreSQL Dump File

Example

COPY mitomap.reference (id, authors, title, publication, editors, volume, number, pages, date, city, publisher, keywords, abstract, nlmid) FROM stdin;
1 Albring, M., Griffith, J. and Attardi, G. Association of a protein structure of probable membrane derivation with HeLa cell mitochondrial DNA near its origin of replication Proceedings of the National Academy of Sciences of the United States of America . 74 4 1348-1352 1977 . . Deoxyribonucleoproteins; DNA Replication; DNA, Mitochondrial; Hela Cells; Membrane Proteins; Microscopy, Electron; Molecular Weight; Neoplasm Proteins; Protein Binding Almost all (about 95 percent) of the mitochondrial DNA molecules released by Triton X-100 lysis of HeLa cell mitochondria in the presence of 0.15 M salt are associated with a single protein-containing structure varying in appearance between a 10-20 nm knob and a 100-500 nm membrane-like patch. Analysis by high resolution electron microscopy and by polyacrylamide gel electrophoresis after cleavage of mitochondrial DNA with the endonucleases EcoRI, HindIII, and Hpa II has shown that the protein structure is attached to the DNA in the region of the D-loop, and probably near the origin of mitochondrial DNA replication. The data strongly suggest that HeLa cell mitochondrial DNA is attached in vivo to the inner mitochondrial membrane at or near the origin of replication, and that a membrane fragment of variable size remains associated with the DNA during the isolation. After sodium dodecyl sulfate extraction of mitochondrial DNA, a small 5-10 nm protein is found at the same site on a fraction of the mitochondrial DNA molecules. 266177
2 Anderson, S., Bankier, A.T., Barrell, B.G., de Bruijn, M.H., Coulson, A.R., Drouin, J., Eperon, I.C., Nierlich, D.P., Roe, B.A., Sanger, F., Schreier, P.H., Smith, A.J., Staden, R., Young, I.G. Sequence and organization of the human mitochondrial genome Nature . 290 5806 457-465 1981 . . Base Sequence; Codon; DNA Replication; mtDNA; Evolution; Genes, Structural; Human; Nucleic Acid Precursors; Peptide Chain Initiation; Peptide Chain Termination; RNA, Ribosomal; RNA, Transfer; Transcription, Genetic The complete sequence of the 16,569-base pair human mitochondrial genome is presented. The genes for the 12S and 16S rRNAs, 22 tRNAs, cytochrome c oxidase subunits I, II and III, ATPase subunit 6, cytochrome b and eight other predicted protein coding genes have been located. The sequence shows extreme economy in that the genes have none or only a few noncoding bases between them, and in many cases the termination codons are not coded in the DNA but are created post- transcriptionally by polyadenylation of the mRNAs. 7219534

Parsing

From the PostgreSQL dump file, we're interested in parsing the mapping between reference IDs and the PubMed IDs:

  • id
  • nlmid
Why not use the PostgreSQL file for everything?

Ideally we would use this file for parsing all of our data, but the schema contains 80+ tables and we haven't invested the time yet to see how the tables are linked together to produce the 6 main HTML pages that we're interested in.

Known Issues

Duplicated records

Multiple records describing the same nucleotide change are merged into the same record. If any conflicting information is found (homoplasmy, heteroplasmy, status, clinical significance, score percentile, end coordinate, variant type), an exception is thrown.

  • For diseases and PubMed IDs, we take the union of the values in the duplicated records.
  • For full length GenBank sequences, we take the largest number from each of the duplicated records since it provides the strongest evidence for this variant.
Skipped records

Records that represent an alternate notation of the original variant are skipped. Similarly some variants with confusing alleles (T961delT+ / -C(n)ins) are also skipped.

Download URLs

JSON Output

Small Variants

"mitomap":[ 
{
"refAllele":"G",
"altAllele":"A",
"diseases":[
"Bipolar disorder",
"Melanoma"
],
"hasHomoplasmy":false,
"hasHeteroplasmy":true,
"status":"Reported",
"clinicalSignificance":"confirmed pathogenic",
"scorePercentile":83.30,
"numGenBankFullLengthSeqs":2,
"pubMedIds":["2316527","6299878","6301949"],
"isAlleleSpecific":true
}
]
FieldTypeNotes
refAllelestring
altAllelestring
diseasesstring arrayassociated diseases
hasHomoplasmyboolean
hasHeteroplasmyboolean
statusstringrecord status
clinicalSignificancestringpredicted pathogenicity
scorePercentilefloatMitoTIP score
numGenBankFullLengthSeqsinteger# of GenBank full-length sequences
pubMedIdsstring array
isAlleleSpecificbooleantrue when the current variant alternate allele matches the MITOMAP alternate allele

Structural Variants

"mitomap":[ 
{
"chromosome":"MT",
"begin":3166,
"end":14152,
"variantType":"deletion",
"reciprocalOverlap":0.18068,
"annotationOverlap":0.42405
}
]
FieldTypeNotes
chromosomestring
begininteger
endinteger
variantTypestring array
reciprocalOverlapfloatRange: 0 - 1. Specified up to 5 decimal places
annotationOverlapfloatRange: 0 - 1. Specified up to 5 decimal places
- - + + \ No newline at end of file diff --git a/3.23/data-sources/omim-json/index.html b/3.23/data-sources/omim-json/index.html index b2add2a0..b5c8a449 100644 --- a/3.23/data-sources/omim-json/index.html +++ b/3.23/data-sources/omim-json/index.html @@ -6,13 +6,13 @@ omim-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

omim-json

"omim":[ 
{
"mimNumber":600678,
"geneName":"MutS, E. coli, homolog of, 6",
"description":"The transcription factor p53 responds to diverse cellular stresses to regulate target genes that induce cell cycle arrest, apoptosis, senescence, DNA repair, or changes in metabolism. In addition, p53 appears to induce apoptosis through nontranscriptional cytoplasmic processes. In unstressed cells, p53 is kept inactive essentially through the actions of the ubiquitin ligase MDM2, which inhibits p53 transcriptional activity and ubiquitinates p53 to promote its degradation. Numerous posttranslational modifications modulate p53 activity, most notably phosphorylation and acetylation. Several less abundant p53 isoforms also modulate p53 activity. Activity of p53 is ubiquitously lost in human cancer either by mutation of the p53 gene itself or by loss of cell signaling upstream or downstream of p53 (Toledo and Wahl, 2006; Bourdon, 2007; Vousden and Lane, 2007)",
"phenotypes":[
{
"mimNumber":614350,
"phenotype":"Colorectal cancer, hereditary nonpolyposis, type 5",
"description":"Hereditary nonpolyposis colorectal cancer type 5 is a cancer predisposition syndrome ...",
"mapping":"molecular basis of the disorder is known",
"inheritances":[
"Autosomal dominant"
]
},
{
"mimNumber":608089,
"phenotype":"Endometrial cancer, familial",
"mapping":"molecular basis of the disorder is known"
},
{
"mimNumber":276300,
"phenotype":"Mismatch repair cancer syndrome",
"description":"Constitutional mismatch repair deficiency is a rare childhood cancer predisposition syndrome ...",
"mapping":"molecular basis of the disorder is known",
"inheritances":[
"Autosomal recessive"
],
"comments" : [
"contribute to susceptibility to multifactorial disorders or to susceptibility to infection",
"unconfirmed or possibly spurious mapping"
]
}
]
}
]
FieldTypeNotes
mimNumberintOMIM ID for gene
geneNamestringgene name
descriptionstring
phenotypesobject arraysee Phenotype entry below

Phenotype

FieldTypeNotes
mimNumberint
phenotypestring
descriptionstring
mappingstringsee possible values below
inheritancestring arraysee possible values below
commentsstring arraysee possible values below

Mapping

  1. disorder was positioned by mapping of the wild type gene
  2. disease phenotype itself was mapped
  3. molecular basis of the disorder is known
  4. disorder is a chromosome deletion or duplication syndrome

Inheritance

  • autosomal recessive
  • autosomal dominant

Comments

  • contributes to the susceptibility to multifactorial disorders
  • variations that lead to apparently abnormal laboratory test values
  • unconfirmed mapping
- - + + \ No newline at end of file diff --git a/3.23/data-sources/omim/index.html b/3.23/data-sources/omim/index.html index 4675eff3..44d98818 100644 --- a/3.23/data-sources/omim/index.html +++ b/3.23/data-sources/omim/index.html @@ -6,8 +6,8 @@ OMIM | IlluminaConnectedAnnotations - - + +
@@ -17,7 +17,7 @@ 4 to disorder is a chromosome deletion or duplication syndrome

Phenotype character to comment

? to unconfirmed or possibly spurious mapping
[/] to nondiseases
{/} to contribute to susceptibility to multifactorial disorders or to susceptibility to infection

There are different types of link in the OMIM description section. For example, in above JSON response, we have the description of MIM entry 100640:

The ALDH1A1 gene encodes a liver cytosolic isoform of acetaldehyde dehydrogenase ({EC 1.2.1.3}), an enzyme involved in the major pathway of alcohol metabolism after alcohol dehydrogenase (ADH, see {103700}). See also liver mitochondrial ALDH2 ({100650}), variation in which has been implicated in different responses to alcohol ingestion.\n\nALDH1 is associated with a low Km for NAD, a high Km for acetaldehyde, and is strongly inactivated by disulfiram. ALDH2 is associated with a high Km for NAD, and low Km for acetaldehyde, and is insensitive to inhibition by disulfiram ({4:Hsu et al., 1985}).

As the descriptions will be shown as plain text, we remove the curry brackets surrounding links and try to make the text still readable with minimal modifications. Briefly:

Here is a list of examples about how the description section supposed to be processed:

Original textProcessed text
({516030}, {516040}, and {516050})
(e.g., D1, {168461}; D2, {123833}; D3, {123834})(e.g., D1; D2; D3)
(desmocollins; see DSC2, {125645})(desmocollins; see DSC2)
(e.g., see {102700}, {300755})
(ADH, see {103700}). See also liver mitochondrial ALDH2 ({100650})(ADH). See also liver mitochondrial ALDH2
(see, e.g., CACNA1A; {601011})(see, e.g., CACNA1A)
(e.g., GSTA1; {138359}), mu (e.g., {138350})(e.g., GSTA1), mu
(NFKB; see {164011})(NFKB)
(see ISGF3G, {147574})(see ISGF3G)
(DCK; {EC 2.7.1.74}; {125450})(DCK; EC 2.7.1.74)

JSON output

"omim":[ 
{
"mimNumber":600678,
"geneName":"MutS, E. coli, homolog of, 6",
"description":"The transcription factor p53 responds to diverse cellular stresses to regulate target genes that induce cell cycle arrest, apoptosis, senescence, DNA repair, or changes in metabolism. In addition, p53 appears to induce apoptosis through nontranscriptional cytoplasmic processes. In unstressed cells, p53 is kept inactive essentially through the actions of the ubiquitin ligase MDM2, which inhibits p53 transcriptional activity and ubiquitinates p53 to promote its degradation. Numerous posttranslational modifications modulate p53 activity, most notably phosphorylation and acetylation. Several less abundant p53 isoforms also modulate p53 activity. Activity of p53 is ubiquitously lost in human cancer either by mutation of the p53 gene itself or by loss of cell signaling upstream or downstream of p53 (Toledo and Wahl, 2006; Bourdon, 2007; Vousden and Lane, 2007)",
"phenotypes":[
{
"mimNumber":614350,
"phenotype":"Colorectal cancer, hereditary nonpolyposis, type 5",
"description":"Hereditary nonpolyposis colorectal cancer type 5 is a cancer predisposition syndrome ...",
"mapping":"molecular basis of the disorder is known",
"inheritances":[
"Autosomal dominant"
]
},
{
"mimNumber":608089,
"phenotype":"Endometrial cancer, familial",
"mapping":"molecular basis of the disorder is known"
},
{
"mimNumber":276300,
"phenotype":"Mismatch repair cancer syndrome",
"description":"Constitutional mismatch repair deficiency is a rare childhood cancer predisposition syndrome ...",
"mapping":"molecular basis of the disorder is known",
"inheritances":[
"Autosomal recessive"
],
"comments" : [
"contribute to susceptibility to multifactorial disorders or to susceptibility to infection",
"unconfirmed or possibly spurious mapping"
]
}
]
}
]
FieldTypeNotes
mimNumberintOMIM ID for gene
geneNamestringgene name
descriptionstring
phenotypesobject arraysee Phenotype entry below

Phenotype

FieldTypeNotes
mimNumberint
phenotypestring
descriptionstring
mappingstringsee possible values below
inheritancestring arraysee possible values below
commentsstring arraysee possible values below

Mapping

  1. disorder was positioned by mapping of the wild type gene
  2. disease phenotype itself was mapped
  3. molecular basis of the disorder is known
  4. disorder is a chromosome deletion or duplication syndrome

Inheritance

Comments

Building the supplementary files

There are 2 ways of building your own OMIM supplementary files using SAUtils.

The first way is to use SAUtils command's subcommands downloadOMIM and omim.

The second way is to use SAUtils command's subcommands AutoDownloadGenerate. To use AutoDownloadGenerate, read more in SAUtils section.

Using subcommands downloadOMIM and omim

The first step in builing the OMIM .nga files is to use the SAUtils command's subcommand downloadOMIM to download the necessary data. In order to download the data the user must possess an API key obtained from OMIM. This key has to be set as the environment variable OmimApiKey.

export OmimApiKey=<users-omim-api-key>
SAUtils.dll downloadOMIM
---------------------------------------------------------------------------
SAUtils (c) 2024 Illumina, Inc.
3.23.0
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll downloadomim [options]
Download the OMIM gene annotation data

OPTIONS:
--cache, -c <directory>
input cache directory
--ref, -r <filename> input reference filename
--in, -i <path> input configuration JSON path (optional)
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version

dotnet SAUtils.dll downloadOMIM --ref References/7/Homo_sapiens.GRCh38.Nirvana.dat --uga Cache/ --out ExternalDataSources/OMIM/2021-06-14

---------------------------------------------------------------------------
SAUtils (c) 2024 Illumina, Inc.
3.23.0
---------------------------------------------------------------------------

Gene Symbol Update Statistics
============================================
{
"NumGeneSymbolsUpToDate": 16978,
"NumGeneSymbolsUpdated": 60,
"NumGenesWhereBothIdsAreNull": 0,
"NumGeneSymbolsNotInCache": 105,
"NumUnresolvedGeneSymbolConflicts": 0
}

Once the download has succeeded, the nga files can be produced using the SAUtils command's subcommand omim.

dotnet SAUtils.dll omim
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------

USAGE: dotnet SAUtils.dll omim [options]
Creates a gene annotation database from OMIM data

OPTIONS:
--m2g, -m <VALUE> MimToGeneSymbol tsv file
--json, -j <VALUE> OMIM entry json file
--out, -o <VALUE> output directory
--help, -h displays the help menu
--version, -v displays the version


dotnet SAUtils.dll omim --m2g ExternalDataSources/OMIM/2021-06-14/MimToGeneSymbol.tsv --json ExternalDataSources/OMIM/2021-06-14/MimEntries.json.gz --out SupplementaryDatabase/63/
---------------------------------------------------------------------------
SAUtils (c) 2023 Illumina, Inc.
Stromberg, Roy, Platzer, Siddiqui, Ouyang, et al 3.21.0-0-gd2a0e953
---------------------------------------------------------------------------


Time: 00:00:04.5
- - + + \ No newline at end of file diff --git a/3.23/data-sources/phylop-json/index.html b/3.23/data-sources/phylop-json/index.html index 3fd02da1..9d2f8466 100644 --- a/3.23/data-sources/phylop-json/index.html +++ b/3.23/data-sources/phylop-json/index.html @@ -6,13 +6,13 @@ phylop-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

phylop-json

"variants":[
{
"vid":"2:48010488:A",
"chromosome":"chr2",
"begin":48010488,
"end":48010488,
"refAllele":"G",
"altAllele":"A",
"variantType":"SNV",
"phylopScore":0.459
}
]
FieldTypeNotes
phylopScorefloatrange: -14.08 to 6.424
- - + + \ No newline at end of file diff --git a/3.23/data-sources/phylop/index.html b/3.23/data-sources/phylop/index.html index 69458533..6b3e94f3 100644 --- a/3.23/data-sources/phylop/index.html +++ b/3.23/data-sources/phylop/index.html @@ -6,8 +6,8 @@ PhyloP | IlluminaConnectedAnnotations - - + +
@@ -15,7 +15,7 @@ It enriches that with human genetic variants, these elements influence gene expression and impact complex traits and diseases.

PhyloP Primate is only available for GRCh38 assembly.

BigWig File

The original file is primates_msa.phylop.conacc.lrt.bw which is a bigwig file. This file was converted to wig file using: (https://genome.ucsc.edu/goldenPath/help/bigWig.html) After conversion the wig file provides the scores in the following format:

0.14
0.074
-2.487
0.073
0.052
0.073
fixedStep chrom=chr1 start=10558 step=1 span=1
-1.991
0.052
-2.047
0.052
0.052
0.074
-1.992
0.074
0.052
0.073
0.074
0.052
0.074
-2.05
-2.059
0.074
0.074
0.074

JSON Output

Unlike other supplemetary datasources, phyloP scores are reported in the variants section.

 "variants": [
{
"vid": "1-64927-G-T",
"chromosome": "chr1",
"begin": 64927,
"end": 64927,
"refAllele": "G",
"altAllele": "T",
"variantType": "SNV",
"hgvsg": "NC_000001.11:g.64927G>T",
"phyloPPrimateScore": 0.151
}
]
FieldTypeNotes
phyloPPrimateScorefloatrange: -20 to 1.951

PhyloP

PhyloP (phylogenetic p-values) conservation scores are obtained from the [PHAST package] (http://compgen.bscb.cornell.edu/phast/) for multiple alignments of vertebrate genomes to the human genome. For GRCh38, the multiple alignments are against 19 mammals and for GRCh37, it is against 45 vertebrate genomes.

WigFix File

The data is provided in WigFix files which is a text file that provides conservation scores for contiguous intervals in the following format:

fixedStep chrom=chr1 start=10918 step=1
0.064
0.058
0.064
0.058
0.064
0.064
fixedStep chrom=chr1 start=34045 step=1
0.111
0.100
0.111
0.111
0.100
0.111
0.111
0.111
0.100
0.111
-1.636

We convert them to binary files with indexes for fast query. Note that these are scores for genomic positions and are reported only for SNVs.

Download URL

GRCh37: http://hgdownload.cse.ucsc.edu/goldenpath/hg19/phyloP46way/vertebrate/

GRCh38: http://hgdownload.cse.ucsc.edu/goldenPath/hg38/phyloP20way/

JSON Output

Unlike other supplemetary datasources, phyloP scores are reported in the variants section.

"variants":[
{
"vid":"2:48010488:A",
"chromosome":"chr2",
"begin":48010488,
"end":48010488,
"refAllele":"G",
"altAllele":"A",
"variantType":"SNV",
"phylopScore":0.459
}
]
FieldTypeNotes
phylopScorefloatrange: -14.08 to 6.424
- - + + \ No newline at end of file diff --git a/3.23/data-sources/phylopprimate-json/index.html b/3.23/data-sources/phylopprimate-json/index.html index bf8428c4..de279a28 100644 --- a/3.23/data-sources/phylopprimate-json/index.html +++ b/3.23/data-sources/phylopprimate-json/index.html @@ -6,13 +6,13 @@ phylopprimate-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

phylopprimate-json

 "variants": [
{
"vid": "1-64927-G-T",
"chromosome": "chr1",
"begin": 64927,
"end": 64927,
"refAllele": "G",
"altAllele": "T",
"variantType": "SNV",
"hgvsg": "NC_000001.11:g.64927G>T",
"phyloPPrimateScore": 0.151
}
]
FieldTypeNotes
phyloPPrimateScorefloatrange: -20 to 1.951
- - + + \ No newline at end of file diff --git a/3.23/data-sources/primate-ai-json/index.html b/3.23/data-sources/primate-ai-json/index.html index c6d8e951..6c81a3f2 100644 --- a/3.23/data-sources/primate-ai-json/index.html +++ b/3.23/data-sources/primate-ai-json/index.html @@ -6,13 +6,13 @@ primate-ai-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

primate-ai-json

"primateAI-3D": [
{
"aminoAcidPosition": 2,
"refAminoAcid": "V",
"altAminoAcid": "M",
"score": 0.616944,
"scorePercentile": 0.52,
"classification": "pathogenic",
"ensemblTranscriptId": "ENST00000335137.4",
"refSeqTranscriptId": "NM_001005484.1"
}
]
FieldTypeNotes
aminoAcidPositionintAmino Acid Position (1-based)
refAminoAcidstringReference Amino Acid
altAminoAcidstringAlternate Amino Acid
ensemblTranscriptIdstringTranscript ID (Ensembl)
refSeqTranscriptIdstringTranscript ID (RefSeq)
scorePercentilefloatrange: 0 - 1.0
scorefloatrange: 0 - 1.0
classificationstringpathogenic or benign classification
- - + + \ No newline at end of file diff --git a/3.23/data-sources/primate-ai/index.html b/3.23/data-sources/primate-ai/index.html index 6b8a8fde..006f7e61 100644 --- a/3.23/data-sources/primate-ai/index.html +++ b/3.23/data-sources/primate-ai/index.html @@ -6,8 +6,8 @@ Primate AI-3D | IlluminaConnectedAnnotations - - + +
@@ -18,7 +18,7 @@ The file is not sorted, therefore it must first be sorted. Also note that certain RefSeq transcripts appear not to have been mapped during the lift-over process.

Pre-processing

Sorting

gzcat PrimateAI-3D.hg19.txt.gz | sort -t $'\t'  -k1,1 -k2,2n | gzip > PrimateAI-3D.hg19_sorted.tsv.gz

SA Generation

dotnet SAUtils.dll \
PrimateAi \
--r "${References}/Homo_sapiens.GRCh38.Nirvana.dat" \
--i "${ExternalDataSources}/PrimateAI/3D/PrimateAI-3D.hg38.txt.gz" \
--o "${SaUtilsOutput]"

Known Issues

Known Issues

Some transcript IDs defined in the data file are obsolete, retired, or updated. They are not removed or modified by Illumina Connected Annotations, and are passed as-is from the PrimateAI-3D data source.

Example:

ENST00000643905.1 transcript is retired according to Ensembl

NM_182838.2 transcript is removed because it is a pseudo-gene according to RefSeq

Download URL

https://primad.basespace.illumina.com/

JSON Output

"primateAI-3D": [
{
"aminoAcidPosition": 2,
"refAminoAcid": "V",
"altAminoAcid": "M",
"score": 0.616944,
"scorePercentile": 0.52,
"classification": "pathogenic",
"ensemblTranscriptId": "ENST00000335137.4",
"refSeqTranscriptId": "NM_001005484.1"
}
]
FieldTypeNotes
aminoAcidPositionintAmino Acid Position (1-based)
refAminoAcidstringReference Amino Acid
altAminoAcidstringAlternate Amino Acid
ensemblTranscriptIdstringTranscript ID (Ensembl)
refSeqTranscriptIdstringTranscript ID (RefSeq)
scorePercentilefloatrange: 0 - 1.0
scorefloatrange: 0 - 1.0
classificationstringpathogenic or benign classification
- - + + \ No newline at end of file diff --git a/3.23/data-sources/revel-json/index.html b/3.23/data-sources/revel-json/index.html index 8aa96a68..e245281f 100644 --- a/3.23/data-sources/revel-json/index.html +++ b/3.23/data-sources/revel-json/index.html @@ -6,13 +6,13 @@ revel-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

revel-json

"revel":{ 
"score":0.027
}
FieldTypeNotes
scorefloatRange: 0 - 1.0
- - + + \ No newline at end of file diff --git a/3.23/data-sources/revel/index.html b/3.23/data-sources/revel/index.html index 9da486f1..ba672cd3 100644 --- a/3.23/data-sources/revel/index.html +++ b/3.23/data-sources/revel/index.html @@ -6,13 +6,13 @@ REVEL | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

REVEL

Overview

REVEL is an ensemble method for predicting the pathogenicity of missense variants based on a combination of scores from 13 individual tools: MutPred, FATHMM v2.3, VEST 3.0, PolyPhen-2, SIFT, PROVEAN, MutationAssessor, MutationTaster, LRT, GERP++, SiPhy, phyloP, and phastCons.

Publication

Ioannidis, N. M. et al. REVEL: An Ensemble Method for Predicting the Pathogenicity of Rare Missense Variants. The American Journal of Human Genetics 99, 877-885 (2016). https://doi.org/10.1016/j.ajhg.2016.08.016

CSV File

Example

chr,hg19_pos,grch38_pos,ref,alt,aaref,aaalt,REVEL
1,35142,35142,G,A,T,M,0.027
1,35142,35142,G,C,T,R,0.035
1,35142,35142,G,T,T,K,0.043
1,35143,35143,T,A,T,S,0.018
1,35143,35143,T,C,T,A,0.034

Parsing

From the CSV file, we're mainly interested in the following columns:

  • chr
  • hg19_pos
  • grch38_pos
  • ref
  • alt
  • REVEL

Known Issues

Sorting

Since the input file contains positions for both GRCh37 and GRCh38, we split it into two TSV files (for the sake of better readability) with identical format. The positions for GRCh37 were sorted but not for GRCh38. So we re-sort the variants by position in the GRCh38 file.

Conflicting Scores

When there are multiple scores available for the same variant (i.e. the same position with the same alternative allele), we pick the highest score.

Download URL

https://sites.google.com/site/revelgenomics/downloads

JSON Output

"revel":{ 
"score":0.027
}
FieldTypeNotes
scorefloatRange: 0 - 1.0
- - + + \ No newline at end of file diff --git a/3.23/data-sources/splice-ai-json/index.html b/3.23/data-sources/splice-ai-json/index.html index 36739c8c..53d84fc7 100644 --- a/3.23/data-sources/splice-ai-json/index.html +++ b/3.23/data-sources/splice-ai-json/index.html @@ -6,13 +6,13 @@ splice-ai-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

splice-ai-json

"spliceAI":[ 
{
"hgnc":"BLCAP",
"acceptorGainDistance":-3,
"acceptorGainScore":0.3,
"donorLossDistance":7,
"donorLossScore":0.9
},
{
"hgnc":"NNAT",
"acceptorGainDistance":-1,
"acceptorGainScore":0.2,
"donorGainDistance":-2,
"donorGainScore":0.3
}
]
FieldTypeNotes
hgncstringHGNC gene symbol
acceptorGainDistanceint± bp from current position
acceptorGainScorefloatrange: 0 - 1.0. 1 decimal place
acceptorLossDistanceint± bp from current position
acceptorLossScorefloatrange: 0 - 1.0. 1 decimal place
donorGainDistanceint± bp from current position
donorGainScorefloatrange: 0 - 1.0. 1 decimal place
donorLossDistanceint± bp from current position
donorLossScorefloatrange: 0 - 1.0. 1 decimal place
- - + + \ No newline at end of file diff --git a/3.23/data-sources/splice-ai/index.html b/3.23/data-sources/splice-ai/index.html index 88cde0ea..3b2a9d51 100644 --- a/3.23/data-sources/splice-ai/index.html +++ b/3.23/data-sources/splice-ai/index.html @@ -6,13 +6,13 @@ Splice AI | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Splice AI

Overview

SpliceAI, a 32-layer deep neural network, predicts splicing from a pre-mRNA sequence.

Publication

K. Jaganathan, et al. Predicting splicing from primary sequence with deep learning. Cell, 176 (3) (2019), pp. 535-548 e24

Professional data source

This is a Professional data source and is not available freely. Please contact annotation_support@illumina.com if you would like to obtain it.

VCF File

Example

##fileformat=VCFv4.0
##assembly=GRCh37/hg19
##INFO=<ID=SYMBOL,Number=1,Type=String,Description="HGNC gene symbol">
##INFO=<ID=STRAND,Number=1,Type=String,Description="+ or - depending on whether the gene lies in the positive or negative strand">
##INFO=<ID=TYPE,Number=1,Type=String,Description="E or I depending on whether the variant position is exonic or intronic (GENCODE V24lift37 canonical annotation)">
##INFO=<ID=DIST,Number=1,Type=Integer,Description="Distance between the variant position and the closest splice site (GENCODE V24lift37 canonical annotation)">
##INFO=<ID=DS_AG,Number=1,Type=Float,Description="Delta score (acceptor gain)">
##INFO=<ID=DS_AL,Number=1,Type=Float,Description="Delta score (acceptor loss)">
##INFO=<ID=DS_DG,Number=1,Type=Float,Description="Delta score (donor gain)">
##INFO=<ID=DS_DL,Number=1,Type=Float,Description="Delta score (donor loss)">
##INFO=<ID=DP_AG,Number=1,Type=Integer,Description="Delta position (acceptor gain) relative to the variant position">
##INFO=<ID=DP_AL,Number=1,Type=Integer,Description="Delta position (acceptor loss) relative to the variant position">
##INFO=<ID=DP_DG,Number=1,Type=Integer,Description="Delta position (donor gain) relative to the variant position">
##INFO=<ID=DP_DL,Number=1,Type=Integer,Description="Delta position (donor loss) relative to the variant position">
#CHROM POS ID REF ALT QUAL FILTER INFO
10 92946 . C T . . SYMBOL=TUBB8;STRAND=-;TYPE=E;DIST=-53;DS_AG=0.0000;DS_AL=0.0000;DS_DG=0.0000;DS_DL=0.0000;DP_AG=-26;DP_AL=-10;DP_DG=3;DP_DL=35
10 92946 . C G . . SYMBOL=TUBB8;STRAND=-;TYPE=E;DIST=-53;DS_AG=0.0008;DS_AL=0.0000;DS_DG=0.0003;DS_DL=0.0000;DP_AG=34;DP_AL=-27;DP_DG=35;DP_DL=1
10 92946 . C A . . SYMBOL=TUBB8;STRAND=-;TYPE=E;DIST=-53;DS_AG=0.0004;DS_AL=0.0000;DS_DG=0.0001;DS_DL=0.0000;DP_AG=-10;DP_AL=-48;DP_DG=35;DP_DL=-21
10 92947 . A C . . SYMBOL=TUBB8;STRAND=-;TYPE=E;DIST=-54;DS_AG=0.0002;DS_AL=0.0000;DS_DG=0.0000;DS_DL=0.0000;DP_AG=-49;DP_AL=-11;DP_DG=0;DP_DL=34
10 92947 . A T . . SYMBOL=TUBB8;STRAND=-;TYPE=E;DIST=-54;DS_AG=0.0002;DS_AL=0.0000;DS_DG=0.0000;DS_DL=0.0000;DP_AG=33;DP_AL=-11;DP_DG=-22;DP_DL=34
10 92947 . A G . . SYMBOL=TUBB8;STRAND=-;TYPE=E;DIST=-54;DS_AG=0.0006;DS_AL=0.0000;DS_DG=0.0001;DS_DL=0.0000;DP_AG=33;DP_AL=-11;DP_DG=34;DP_DL=32

Parsing

From the VCF file, we're mainly interested in the following columns:

  • DS_AG - Δ score (acceptor gain)
  • DS_AL - Δ score (acceptor loss)
  • DS_DG - Δ score (donor gain)
  • DS_DL - Δ score (donor loss)
  • DP_AG - Δ position (acceptor gain) relative to the variant position
  • DP_AL - Δ position (acceptor loss) relative to the variant position
  • DP_DG - Δ position (donor gain) relative to the variant position
  • DP_DL - Δ position (donor loss) relative to the variant position

The Splice AI team suggests the following interpretation for the scores:

RangeConfidencePathogenicity
0 ≤ x < 0.1lowlikely benign
0.1 ≤ x ≤ 0.5mediumlikely pathogenic
x > 0.5highpathogenic

Pre-processing

Filtering

Splice AI provides a comprehensive list of entries throughout the genome. However, many of the entries have little value. I.e. observing low splice scores in intergenic regions. Not only do these extra entries require more storage, but the unused content has a negative impact on annotation speed.

As a result, Illumina Connected Annotations filters out all the values in the low confidence tier except for regions within 15 bp of nascent splice sites. For those regions, we found it useful to see if Splice AI predicted an interruption of the splicing mechanism.

Download URL

https://basespace.illumina.com/s/5u6ThOblecrh

JSON Output

"spliceAI":[ 
{
"hgnc":"BLCAP",
"acceptorGainDistance":-3,
"acceptorGainScore":0.3,
"donorLossDistance":7,
"donorLossScore":0.9
},
{
"hgnc":"NNAT",
"acceptorGainDistance":-1,
"acceptorGainScore":0.2,
"donorGainDistance":-2,
"donorGainScore":0.3
}
]
FieldTypeNotes
hgncstringHGNC gene symbol
acceptorGainDistanceint± bp from current position
acceptorGainScorefloatrange: 0 - 1.0. 1 decimal place
acceptorLossDistanceint± bp from current position
acceptorLossScorefloatrange: 0 - 1.0. 1 decimal place
donorGainDistanceint± bp from current position
donorGainScorefloatrange: 0 - 1.0. 1 decimal place
donorLossDistanceint± bp from current position
donorLossScorefloatrange: 0 - 1.0. 1 decimal place
- - + + \ No newline at end of file diff --git a/3.23/data-sources/topmed-json/index.html b/3.23/data-sources/topmed-json/index.html index 481518dc..49ea93cf 100644 --- a/3.23/data-sources/topmed-json/index.html +++ b/3.23/data-sources/topmed-json/index.html @@ -6,13 +6,13 @@ topmed-json | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

topmed-json

"topmed":{ 
"allAc":20,
"allAn":125568,
"allAf":0.000159,
"allHc":0,
"failedFilter":true
}
FieldTypeNotes
allAcintTOPMed allele count
allAnintTOPMed allele number. Non-zero integer.
allAffloatTOPMed allele frequency (computed by Illumina Connected Annotations)
allHcintTOPMed homozygous count
failedFilterboolTrue if this variant failed any filters
- - + + \ No newline at end of file diff --git a/3.23/data-sources/topmed/index.html b/3.23/data-sources/topmed/index.html index 8f0d8838..cab06170 100644 --- a/3.23/data-sources/topmed/index.html +++ b/3.23/data-sources/topmed/index.html @@ -6,13 +6,13 @@ TOPMed | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

TOPMed

Overview

The Trans-Omics for Precision Medicine (TOPMed) program, sponsored by the National Institutes of Health (NIH) National Heart, Lung and Blood Institute (NHLBI), is part of a broader Precision Medicine Initiative, which aims to provide disease treatments tailored to an individual’s unique genes and environment. TOPMed contributes to this Initiative through the integration of whole-genome sequencing (WGS) and other omics (e.g., metabolic profiles, epigenomics, protein and RNA expression patterns) data with molecular, behavioral, imaging, environmental, and clinical data.

Publication

Kowalski, M.H., Qian, H., Hou, Z., Rosen, J.D., Tapia, A.L., Shan, Y., Jain, D., Argos, M., Arnett, D.K., Avery, C. and Barnes, K.C., 2019. Use of> 100,000 NHLBI Trans-Omics for Precision Medicine (TOPMed) Consortium whole genome sequences improves imputation quality and detection of rare variant associations in admixed African and Hispanic/Latino populations. PLoS genetics, 15(12), p.e1008500.

VCF extraction

We currently extract the following fields from TOPMed VCF file:

##INFO=<ID=AN,Number=1,Type=Integer,Description="Number of Alleles in Samples with Coverage">
##INFO=<ID=AC,Number=A,Type=Integer,Description="Alternate Allele Counts in Samples with Coverage">
##INFO=<ID=AF,Number=A,Type=Float,Description="Alternate Allele Frequencies">
##INFO=<ID=Het,Number=A,Type=Integer,Description="Number of samples with heterozygous genotype calls">
##INFO=<ID=Hom,Number=A,Type=Integer,Description="Number of samples with homozygous alternate genotype calls">

Example:

chr1    10132   TOPMed_freeze_5?chr1:10,132     T       C       255     SVM     VRT=1;NS=62784;AN=125568;AC=32;AF=0.000254842;Het=32;Hom=0      NA:FRQ  125568:0.000254842

GRCh37 liftover

The data is not available for GRCh37 on TOPMed website. We performed a liftover from GRCh38 to GRCh37 using dbSNP ids.

Download URL

https://bravo.sph.umich.edu/freeze5/hg38/download

JSON output

"topmed":{ 
"allAc":20,
"allAn":125568,
"allAf":0.000159,
"allHc":0,
"failedFilter":true
}
FieldTypeNotes
allAcintTOPMed allele count
allAnintTOPMed allele number. Non-zero integer.
allAffloatTOPMed allele frequency (computed by Illumina Connected Annotations)
allHcintTOPMed homozygous count
failedFilterboolTrue if this variant failed any filters
- - + + \ No newline at end of file diff --git a/3.23/file-formats/custom-annotations/index.html b/3.23/file-formats/custom-annotations/index.html index 719a88b5..1515086f 100644 --- a/3.23/file-formats/custom-annotations/index.html +++ b/3.23/file-formats/custom-annotations/index.html @@ -6,8 +6,8 @@ Custom Annotations | IlluminaConnectedAnnotations - - + +
@@ -34,7 +34,7 @@ chromosome, svLength, cytogeneticBand, etc. The title should also not conflict with other data source keys like clingen or dgv.

caution

Care should be taken not to annotate using multiple custom annotations that all use the same title.

Genome Assemblies

The following genome assemblies can be specified:

Matching Criteria

The matching criteria instructs how Illumina Connected Annotations should match a VCF variant to the custom annotation.

The following matching criteria can be specified:

Categories

Categories are not used by Illumina Connected Annotations, but are often used by downstream tools. Categories provide hints for how those tools should filter or display the annotation data.

When a category is specified, Illumina Connected Annotations will provide additional validation for those fields. The following table describes each category:

CategoryDescriptionValidation
AlleleCountallele counts for a specific populationSee the supported populations below
AlleleNumberallele numbers for a specific populationSee the supported populations below
AlleleFrequencyallele frequencies for a specific populationSee the supported populations below
PredictionACMG-style pathogenicity classificationsbenign (B)
likely benign (LB)
VUS
likely pathogenic (LP)
pathogenic (P)
Filterfree text that signals downstream tools to add the column to the filterMax 20 characters
Descriptionfree-text descriptionMax 100 characters
Identifierany IDMax 50 characters
HomozygousCountcount of homozygous individuals for a specific populationSee the supported populations below
Scoreany score valueAny double-precision floating point number

Descriptions

Descriptions are used to add more context to the categories. For now, descriptions are mainly used to associate allele counts, numbers, and frequencies with their respective populations.

Populations

The following populations were specified in the HapMap project, 1000 Genomes Project, ExAC, and gnomAD.

Population CodeSuper-population CodeDescription
ACBAFRAfrican Caribbeans in Barbados
AFRAFRAfrican
ALLALLAll populations
AMRAMRAd Mixed American
ASJAshkenazi Jewish
ASWAFRAmericans of African Ancestry in SW USA
BEBSASBengali from Bangladesh
CDXEASChinese Dai in Xishuangbanna, China
CEUEURUtah Residents (CEPH) with Northern and Western European Ancestry
CHBEASHan Chinese in Beijing, China
CHSEASSouthern Han Chinese
CLMAMRColombians from Medellin, Colombia
EASEASEast Asian
ESNAFREsan in Nigeria
EUREUREuropean
FINEURFinnish in Finland
GBREURBritish in England and Scotland
GIHSASGujarati Indian from Houston, Texas
GWDAFRGambian in Western Divisions in the Gambia
IBSEURIberian population in Spain
ITUSASIndian Telugu from the UK
JPTEASJapanese in Tokyo, Japan
KHVEASKinh in Ho Chi Minh City, Vietnam
LWKAFRLuhya in Webuye, Kenya
MAGAFRMandinka in the Gambia
MKKAFRMaasai in Kinyawa, Kenya
MSLAFRMende in Sierra Leone
MXLAMRMexican Ancestry from Los Angeles, USA
NFEEUREuropean (Non-Finnish)
OTHOTHOther
PELAMRPeruvians from Lima, Peru
PJLSASPunjabi from Lahore, Pakistan
PURAMRPuerto Ricans from Puerto Rico
SASSASSouth Asian
STUSASSri Lankan Tamil from the UK
TSIEURToscani in Italia
YRIAFRYoruba in Ibadan, Nigeria

Data Types

Each custom annotation can be one of the following data types:

tip

For boolean variables, only keys with a true value will be output to the JSON object.

Using SAUtils

Illumina Connected Annotations includes a tool called SAUtils that converts various data sources into Illumina Connected Annotations's native binary format. The sub-commands customvar and customgene are used to specify a variant file or a gene file respectively.

Convert Variant File

dotnet bin/Release/netcoreapp2.1/SAUtils.dll customvar \
-r Data/References/Homo_sapiens.GRCh37.Nirvana.dat \
-i MyDataSource.tsv \
-o SupplementaryAnnotation

Convert Gene File

dotnet bin/Release/netcoreapp2.1/SAUtils.dll customgene \
-r Data/References/Homo_sapiens.GRCh37.Nirvana.dat \
-c Data/Cache \
-i MyDataSource.tsv \
-o SupplementaryAnnotation
- - + + \ No newline at end of file diff --git a/3.23/file-formats/illumina-annotator-json-file-format/index.html b/3.23/file-formats/illumina-annotator-json-file-format/index.html index 9bd487f1..777f50e6 100644 --- a/3.23/file-formats/illumina-annotator-json-file-format/index.html +++ b/3.23/file-formats/illumina-annotator-json-file-format/index.html @@ -6,13 +6,13 @@ Illumina Connected Annotations JSON File Format | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Illumina Connected Annotations JSON File Format

Overview

Conventions

In the Illumina Connected Annotations JSON representation, we try to maximize the amount of useful information that is relayed in the output file. As such, we have several conventions that are useful to know about:

  • With boolean key/value pairs, we only output the keys that have a true value. I.e. there's no reason to display "isStructuralVariant":false a few million times when annotating a small variant VCF.
  • When transferring data from the VCF file to the JSON (e.g. for allele depths (AD)), it is common to use a period (.) as a placeholder for missing data in the VCF file. Illumina Connected Annotations treats periods like empty or null strings and therefore will not output those entries.

JSON Layout

info

In general, each position corresponds to a row in the original VCF file.

For each gene that was referenced in the transcripts found in the positions section, there will be additional gene-level annotation in the gene section.

Parsing

info

We've put together a new section that discusses how to parse our JSON files easily using examples in a Python Jupyter notebook and a R version as well. In addition, we have information about how to quickly dump content from our JSON file using a tabix-like utility called JASIX.

{
"header":{
"annotator":"IlluminaConnectedAnnotations 3.0.0-alpha.5+g6c52e247",
"creationTime":"2017-06-14 15:53:13",
"genomeAssembly":"GRCh37",
"dataSources":[
{
"name":"OMIM",
"version":"unknown",
"description":"An Online Catalog of Human Genes and Genetic Disorders",
"releaseDate":"2017-05-03"
},
{
"name":"VEP",
"version":"84",
"description":"BothRefSeqAndEnsembl",
"releaseDate":"2017-01-16"
},
{
"name":"ClinVar",
"version":"20170503",
"description":"A freely accessible, public archive of reports of the relationships among human variations and phenotypes, with supporting evidence",
"releaseDate":"2017-05-03"
},
{
"name":"phyloP",
"version":"hg19",
"description":"46 way conservation score between humans and 45 other vertebrates",
"releaseDate":"2009-11-10"
}
],
"samples":[
"NA12878",
"NA12891",
"NA12892"
]
},
FieldTypeNotes
annotatorstringthe name of the annotator and the current version
creationTimestringyyyy-MM-dd hh:mm:ss
genomeAssemblystringsee possible values below
schemaVersionintegerincremented whenever the core structure of the JSON file introduces breaking changes
dataVersionstring
dataSourcesobject arraysee Data Source entry below
samplesstring arraythe order of these sample names will be used throughout the JSON file when enumerating samples

Data Source

FieldTypeNotes
namestring
versionstring
descriptionstringoptional description of the data source
releaseDatestringyyyy-MM-dd

Genome Assemblies

  • GRCh37
  • GRCh38
  • hg19
  • SARSCoV2

Positions

"positions":[
{
"chromosome":"chr2",
"position":48010488,
"id": "4"
"repeatUnit":"GGCCCC",
"refRepeatCount":3,
"svEnd":48020488,
"refAllele":"G",
"altAlleles":[
"A",
"GT"
],
"quality":461,
"filters":[
"PASS"
],
"ciPos":[
-170,
170
],
"ciEnd":[
-175,
175
],
"svLength":1000,
"strandBias":1.23,
"jointSomaticNormalQuality":29,
"cytogeneticBand":"2p16.3",
FieldTypeVariant TypeNotes
chromosomestringallexactly as displayed in the vcf
positionintegerallexactly as displayed in the vcf (1-based notation). Range: 1 - 250 million
idstringallprovided from ID column in the VCF file, this field will be omitted if empty or has "." value
repeatUnitstringSTRprovided by ExpansionHunter
refRepeatCountintegerSTRprovided by ExpansionHunter
svEndintegerSV
refAllelestringallexactly as displayed in the vcf
altAllelestring arrayallexactly as displayed in the vcf
qualityfloatallexactly as displayed in the vcf (Normally an integer, but some variant callers using floating point. Has been observed as high as 500k)
filtersstring arrayallexactly as displayed in the vcf
ciPosinteger arraySV
ciEndinteger arraySV
svLengthintegerSV
strandBiasfloatsmall variantprovided by GATK (from SB)
jointSomaticNormalQualityintegerSVprovided by the Manta variant caller (SOMATICSCORE)
cytogeneticBandstringalle.g. 17p13.1

ClinGen

"clingen":[
{
"chromosome":"17",
"begin":525,
"end":14667519,
"variantType":"copy_number_gain",
"id":"nsv996083",
"clinicalInterpretation":"pathogenic",
"observedGains":1,
"validated":true,
"phenotypes":[
"Intrauterine growth retardation"
],
"phenotypeIds":[
"HP:0001511",
"MedGen:C1853481"
],
"reciprocalOverlap":0.00131
},
{
"chromosome":"17",
"begin":45835,
"end":7600330,
"variantType":"copy_number_loss",
"id":"nsv869419",
"clinicalInterpretation":"pathogenic",
"observedLosses":1,
"validated":true,
"phenotypes":[
"Developmental delay AND/OR other significant developmental or morphological phenotypes"
],
"reciprocalOverlap":0.00254
}
]
FieldTypeNotes
clingenobject array
chromosomestringEnsembl-style chromosome names
begininteger1-based position
endinteger1-based position
variantTypestringAny of the sequence alterations defined here.
idstringIdentifier from the data source. Alternatively a VID
clinicalInterpretationstringsee possible values below
observedGainsintegerRange: 0 - (231 - 1). Only used if copy_number_variation, copy_number_loss, or copy_number_gain.
observedLossesintegerRange: 0 - (231 - 1). Only used if copy_number_variation, copy_number_loss, or copy_number_gain.
validatedboolean
phenotypesstring arrayDescription of the phenotype.
phenotypeIdsstring arrayDescription of the phenotype IDs.
reciprocalOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).

clinicalInterpretation

  • benign
  • curated benign
  • curated pathogenic
  • likely benign
  • likely pathogenic
  • path gain
  • path loss
  • pathogenic
  • uncertain
"clingenDosageSensitivityMap": [{
"chromosome": "15",
"begin": 30900686,
"end": 32153204,
"haploinsufficiency": "sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype",
"triplosensitivity": "little evidence suggesting dosage sensitivity is associated with clinical phenotype",
"reciprocalOverlap": 0.00147,
"annotationOverlap": 0.33994
},
{
"chromosome": "15",
"begin": 31727418,
"end": 32153204,
"haploinsufficiency": "sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype",
"triplosensitivity": "dosage sensitivity unlikely",
"reciprocalOverlap": 0.00147,
"annotationOverlap": 1
}]
FieldTypeNotes
clingenDosageSensitivityMapobject array
chromosomestringEnsembl-style chromosome names
begininteger1-based position
endinteger1-based position
haploinsufficiencystringsee possible values below
triplosensitivitystring(same as haploinsufficiency) 
reciprocalOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).
annotationOverlapfloating pointRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap. Specified up to 5 decimal places (Not reported for Insertions).

haploinsufficiency and triplosensitivity

  • no evidence to suggest that dosage sensitivity is associated with clinical phenotype
  • little evidence suggesting dosage sensitivity is associated with clinical phenotype
  • emerging evidence suggesting dosage sensitivity is associated with clinical phenotype
  • sufficient evidence suggesting dosage sensitivity is associated with clinical phenotype
  • gene associated with autosomal recessive phenotype
  • dosage sensitivity unlikely

1000 Genomes (SV)

"oneKg":[
{
"chromosome":"1",
"begin":1595369,
"end":1612441,
"variantType": "copy_number_variation",
"id": "esv3635753;esv3635754;esv3635755;esv3635756;esv3635757",
"allAn": 5008,
"allAc": 2702,
"allAf": 0.539537,
"afrAf": 0.6052,
"amrAf": 0.3675,
"eurAf": 0.5357,
"easAf": 0.5368,
"sasAf": 0.5797,
"reciprocalOverlap": 0.07555
}
],
FieldTypeNotes
chromosomestring
begininteger
endinteger
variantTypestring
idstring
allAnintegerallele number for all populations. Non-zero integer.
allAcintegerallele count for all populations. Integer.
allAffloating pointallele frequency for all populations. Range: 0 - 1.0
afrAffloating pointallele frequency for the African super population. Range: 0 - 1.0
amrAffloating pointallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
eurAffloating pointallele frequency for the European super population. Range: 0 - 1.0
easAffloating pointallele frequency for the East Asian super population. Range: 0 - 1.0
sasAffloating pointallele frequency for the South Asian super population. Range: 0 - 1.0
reciprocalOverlapfloating pointrange: 0 - 1.

gnomAD (SV)

"gnomAD-preview": [
{
"chromosome": "1",
"begin": 40001,
"end": 47200,
"variantId": "gnomAD-SV_v2.1_DUP_1_1",
"variantType": "duplication",
"failedFilter": true,
"allAf": 0.068963,
"afrAf": 0.135694,
"amrAf": 0.022876,
"easAf": 0.01101,
"eurAf": 0.007846,
"othAf": 0.017544,
"femaleAf": 0.065288,
"maleAf": 0.07255,
"allAc": 943,
"afrAc": 866,
"amrAc": 21,
"easAc": 17,
"eurAc": 37,
"othAc": 2,
"femaleAc": 442,
"maleAc": 499,
"allAn": 13674,
"afrAn": 6382,
"amrAn": 918,
"easAn": 1544,
"eurAn": 4716,
"othAn": 114,
"femaleAn": 6770,
"maleAn": 6878,
"allHc": 91,
"afrHc": 90,
"amrHc": 1,
"easHc": 0,
"eurHc": 0,
"othHc": 55,
"femaleHc": 44,
"maleHc": 47,
"reciprocalOverlap": 0.01839,
"annotationOverlap": 0.16667
}
]

FieldTypeNotes
chromosomestringchromosome number
beginintegerposition interval start
endintegerposition internal end
variantTypestringstructural variant type
variantIdstringgnomAD ID
allAffloating pointallele frequency for all populations. Range: 0 - 1.0
afrAffloating pointallele frequency for the African super population. Range: 0 - 1.0
amrAffloating pointallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
easAffloating pointallele frequency for the East Asian super population. Range: 0 - 1.0
eurAffloating pointallele frequency for the European super population. Range: 0 - 1.0
othAffloating pointallele frequency for all other populations. Range: 0 - 1.0
femaleAffloating pointallele frequency for female population. Range: 0 - 1.0
maleAffloating pointallele frequency for male population. Range: 0 - 1.0
allAcintegerallele count for all populations.
afrAcintegerallele count for the African super population.
amrAcintegerallele count for the Ad Mixed American super population.
easAcintegerallele count for the East Asian super population.
eurAcintegerallele count for the European super population.
othAcintegerallele count for all other populations.
maleAcintegerallele count for male population.
femaleAcintegerallele count for female population.
allAnintegerallele number for all populations.
afrAnintegerallele number for the African super population.
amrAnintegerallele number for the Ad Mixed American super population.
easAnintegerallele number for the East Asian super population.
eurAnintegerallele number for the European super population.
othAnintegerallele number for all other populations.
femaleAnintegerallele number for female population.
maleAnintegerallele number for male population.
allHcintegercount of homozygous individuals for all populations.
afrHcintegercount of homozygous individuals for the African / African American population.
amrHcintegercount of homozygous individuals for the Latino population.
easHcintegercount of homozygous individuals for the East Asian population.
eurAcintegercount of homozygous individuals for the European super population.
othHcintegercount of homozygous individuals for all other populations.
maleHcintegercount of homozygous individuals for male population.
femaleHcintegercount of homozygous individuals for female population.
failedFilterbooleanTrue if this variant failed any filters (Note: we do not list the failed filters)
reciprocalOverlapfloating pointReciprocal overlap. Range: 0 - 1.0
annotationOverlapfloating pointReciprocal overlap. Range: 0 - 1.0

Note: Following fields are not available in GRCh38 because the source file does not contain this information:

Field
femaleAf
maleAf
maleAc
femaleAc
femaleAn
maleAn
allHc
afrHc
amrHc
easHc
eurAc
othHc
maleHc
femaleHc
failedFilter

MITOMAP (SV)

"mitomap":[ 
{
"chromosome":"MT",
"begin":3166,
"end":14152,
"variantType":"deletion",
"reciprocalOverlap":0.18068,
"annotationOverlap":0.42405
}
]
FieldTypeNotes
chromosomestring
begininteger
endinteger
variantTypestring array
reciprocalOverlapfloatRange: 0 - 1. Specified up to 5 decimal places
annotationOverlapfloatRange: 0 - 1. Specified up to 5 decimal places

Samples

"samples":[
{
"genotype":"0/1",
"variantFrequencies":[
0.333,
0.5
],
"totalDepth":57,
"genotypeQuality":12,
"copyNumber":3,
"repeatUnitCounts":[
10,
20
],
"alleleDepths":[
10,
20,
30
],
"failedFilter":true,
"splitReadCounts":[
10,
20
],
"pairedEndReadCounts":[
10,
20
],
"isDeNovo":true,
"diseaseAffectedStatuses":[
"-"
],
"artifactAdjustedQualityScore":89.3,
"likelihoodRatioQualityScore":78.2,
"heteroplasmyPercentile":[
23.13,
12.65
]
}
]
FieldTypeVCFNotes
genotypestringGT
variantFrequenciesfloat arrayVF, ADrange: 0 - 1.0. One value per alternate allele
totalDepthintegerDPnon-negative integer values
genotypeQualityintegerGQnon-negative integer values. Typically maxes out at 99
copyNumberintegerCNnon-negative integer values
minorHaplotypeCopyNumberintegerMCNnon-negative integer values
repeatUnitCountsinteger arrayREPCNExpansionHunter-specific
alleleDepthsinteger arrayADnon-negative integer values
failedFilterboolFT
splitReadCountsinteger arraySRManta-specific
pairedEndReadCountsinteger arrayPRManta-specific
isDeNovoboolDN
deNovoQualityfloatDQ
diseaseAffectedStatusesstring arrayDSTExpansionHunter-specific
artifactAdjustedQualityScorefloatAQPEPE-specific. Range: 0 - 100.0
likelihoodRatioQualityScorefloatLQPEPE-specific. Range: 0 - 100.0
lossOfHeterozygosityboolCN, MCN
somaticQualityfloatSQ
heteroplasmyPercentilefloatVFrange: 0 - 100. 2 decimal places. One value per alternate allele
binCountintegerBCnon-negative integer values
Empty Samples

If a sample does not contain any entries, we will create a sample object that contains the isEmpty key. This ensures that sample ordering is preserved while indicating that a sample is intentionally empty.

"samples":[
{
"isEmpty":true
}
],

Variants

"variants":[
{
"vid":"2-48010488-G-A",
"chromosome":"chr2",
"begin":48010488,
"end":48010488,
"isReferenceMinorAllele":true,
"isStructuralVariant":true,
"refAllele":"G",
"altAllele":"A",
"variantType":"SNV",
"hgvsg":"NC_000002.11:g.48010488G>A",
"phylopScore":0.459
FieldTypeNotes
vidstringsee Variant Identifiers
chromosomestring
beginint1-based non-negative integer values. Range: 1 - 250 million
endint1-based non-negative integer values. Range: 1 - 250 million
isReferenceMinorAllelebooltrue when this is a reference minor allele
isStructuralVariantbooltrue when the variant is a structural variant
inLowComplexityRegionbooltrue when the variant lies in a low complexity region (gnomAD low complexity regions)
refAllelestringparsimonious representation of the reference allele
altAllelestringparsimonious representation of the alternate allele.
variantTypestringuses Sequence Ontology sequence alterations
hgvsgstringHGVS g. notation
phylopScorefloatphyloP conservation score. Range: -14.08 to 6.424
Reference Minor Alleles

Illumina Connected Annotations supports annotating reference minor alleles. In such a case, refAllele will be replaced by the global major allele and altAllele will be replaced with the original reference allele.

Transcripts

"transcripts":[
{
"transcript":"ENST00000445503.1",
"source":"Ensembl",
"bioType":"nonsense_mediated_decay",
"codons":"gGg/gAg",
"aminoAcids":"G/E",
"cdnaPos":"268",
"cdsPos":"116",
"exons":"1/9",
"introns":"1/8",
"proteinPos":"39",
"geneId":"ENSG00000116062",
"hgnc":"MSH6",
"consequence":[
"missense_variant",
"NMD_transcript_variant"
],
"impact": "moderate",
"hgvsc":"ENST00000445503.1:c.116G>A",
"hgvsp":"ENSP00000405294.1:p.(Gly39Glu)",
"geneFusion":{
"exon":6,
"intron":5,
"fusions":[
{
"hgvsc":"ETV6{ENST00000396373.4}:c.1_1009+3402_RUNX1{ENST00000437180.1}:c.58+568_1443",
"exon":3,
"intron":2
},
{
"hgvsc":"ETV6{ENST00000396373.4}:c.1_1009+3402_RUNX1{ENST00000300305.3}:c.58+568_1443",
"exon":2,
"intron":1
}
]
},
"isCanonical":true,
"proteinId":"ENSP00000405294.1",
"completeOverlap":true
}
]
FieldTypeNotes
transcriptstringtranscript ID. e.g. ENST00000445503.1
sourcestringRefSeq / Ensembl
bioTypestringdescriptions of the biotypes from Ensembl
codonsstring
aminoAcidsstring
cdnaPosstring
cdsPosstring
exonsstringexons affected by the variant
intronsstringintrons affected by the variant
proteinPosstring
geneIdstringgene ID. e.g. ENSG00000116062
hgncstringgene symbol. e.g. MSH6
consequencestring arraySequence Ontology Consequences
impactstringSee Consequence Impact for details
hgvscstringHGVS coding nomenclature
hgvspstringHGVS protein nomenclature
geneFusionobjectsee Gene Fusions entry below
isCanonicalbooltrue when this is a canonical transcript
isManeSelectbooltrue when this is a MANE select transcript
proteinIdstringprotein ID. E.g. ENSP00000405294.1
completeOverlapbooltrue when this transcript is completely overlapped by the variant
cancerHotspotsstring arraysee Cancer Hotspots entry below
MANE Select

MANE select tags are only available for RefSeq transcripts on GRCh38.

Amino Acid Conservation

"aminoAcidConservation": {
"scores": [0.34]
}
FieldTypeNotes
aminoAcidConservationobject
scoresobject array of doublespercent conserved with respect to human amino acid residue. Range: 0.01 - 1.00

Gene Fusions

FieldTypeNotes
exonintactual exon where the breakpoint was located
intronintactual intron where the breakpoint was located
fusionsobject arraysee Fusion entry below

Fusion

FieldTypeNotes
exonintactual exon where the other breakpoint was located
intronintactual intron where the other breakpoint was located
hgvscstringHGVS coding nomenclature describing the two genes and the transcripts that are fused along with

Cancer Hotspots

FieldTypeNotes
residuestring
numSamplesinthow many samples are associated with a variant at the same amino acid position
numAltAminoAcidSamplesinthow many samples are associated with a variant with the same position and alternate amino acid position
qValuedouble

Regulatory Regions

"regulatoryRegions":[
{
"id":"ENSR00001542175",
"type":"promoter",
"consequence":[
"regulatory_region_variant"
]
}
]
FieldTypeNotes
idstring
typestringsee possible values below
consequencestring arraysee possible values below

Regulatory Types

  • CTCF_binding_site
  • enhancer
  • open_chromatin_region
  • promoter
  • promoter_flanking_region
  • TF_binding_site

Regulatory Consequences

  • regulatory_region_variant
  • regulatory_region_ablation
  • regulatory_region_amplification
  • regulatory_region_truncation

ClinVar

small variants:

"clinvar":[
{
"id":"VCV000036581.3",
"reviewStatus":"reviewed by expert panel",
"significance":[
"benign"
],
"refAllele":"G",
"altAllele":"A",
"lastUpdatedDate":"2020-03-01",
"isAlleleSpecific":true
},
{
"id":"RCV000030258.4",
"variationId":"VCV000036581.3",
"reviewStatus":"reviewed by expert panel",
"alleleOrigins":[
"germline"
],
"refAllele":"G",
"altAllele":"A",
"phenotypes":[
"Lynch syndrome"
],
"medGenIds":[
"C1333990"
],
"omimIds":[
"120435"
],
"significance":[
"benign"
],
"lastUpdatedDate":"2017-05-01",
"isAlleleSpecific":true
}
]

large variants:

"clinvar":[
{
"chromosome":"1",
"begin":629025,
"end":8537745,
"variantType":"copy_number_loss",
"id":"RCV000051993.4",
"variationId":"VCV000058242.1",
"reviewStatus":"criteria provided, single submitter",
"alleleOrigins":[
"not provided"
],
"phenotypes":[
"See cases"
],
"significance":[
"pathogenic"
],
"lastUpdatedDate":"2022-04-21",
"pubMedIds":[
"21844811"
]
},
{
"id":"VCV000058242.1",
"reviewStatus":"criteria provided, single submitter",
"significance":[
"pathogenic"
],
"lastUpdatedDate":"2022-04-21"
},
......
]
FieldTypeNotes
idstringClinVar ID
variationIdstringClinVar VCV ID
variantTypestringvariant type
reviewStatusstringsee possible values below
alleleOriginsstring arraysee possible values below
refAllelestring
altAllelestring
phenotypesstring array
medGenIdsstring arrayMedGen IDs
omimIdsstring arrayOMIM IDs
orphanetIdsstring arrayOrphanet IDs
significancestring arraysee possible values below
lastUpdatedDatestringyyyy-MM-dd
pubMedIdsstring arrayPubMed IDs
isAlleleSpecificbooltrue when the current variant alternate allele matches the ClinVar alternate allele

reviewStatus:

  • no assertion provided
  • no assertion criteria provided
  • criteria provided, single submitter
  • practice guideline
  • classified by multiple submitters
  • criteria provided, conflicting interpretations
  • criteria provided, multiple submitters, no conflicts
  • no interpretation for the single variant

alleleOrigins:

  • unknown
  • other
  • germline
  • somatic
  • inherited
  • paternal
  • maternal
  • de-novo
  • biparental
  • uniparental
  • not-tested
  • tested-inconclusive

significance:

  • uncertain significance
  • not provided
  • benign
  • likely benign
  • likely pathogenic
  • pathogenic
  • drug response
  • histocompatibility
  • association
  • risk factor
  • protective
  • affects
  • conflicting data from submitters
  • other
  • no interpretation for the single variant
  • conflicting interpretations of pathogenicity

1000 Genomes

"oneKg":{
"allAf":0.200879,
"afrAf":0.210287,
"amrAf":0.139769,
"easAf":0.275794,
"eurAf":0.181909,
"sasAf":0.173824,
"allAn":5008,
"afrAn":1322,
"amrAn":694,
"easAn":1008,
"eurAn":1006,
"sasAn":978,
"allAc":1006,
"afrAc":278,
"amrAc":97,
"easAc":278,
"eurAc":183,
"sasAc":170
}
FieldTypeNotes
allAffloatallele frequency for all populations. Range: 0 - 1.0
allAcintallele count for all populations. Integer.
allAnintallele number for all populations. Non-zero integer.
afrAffloatallele frequency for the African super population. Range: 0 - 1.0
afrAcintallele count for the African super population. Integer.
afrAnintallele number for the African super population. Non-zero integer.
amrAffloatallele frequency for the Ad Mixed American super population. Range: 0 - 1.0
amrAcintallele count for the Ad Mixed American super population. Integer.
amrAnintallele number for the Ad Mixed American super population. Non-zero integer.
easAffloatallele frequency for the East Asian super population. Range: 0 - 1.0
easAcintallele count for the East Asian super population. Integer.
easAnintallele number for the East Asian super population. Non-zero integer.
eurAffloatallele frequency for the European super population. Range: 0 - 1.0
eurAcintallele count for the European super population. Integer.
eurAnintallele number for the European super population. Non-zero integer.
sasAffloatallele frequency for the South Asian super population. Range: 0 - 1.0
sasAcintallele count for the South Asian super population. Integer.
sasAnintallele number for the South Asian super population. Non-zero integer.

DANN

"dannScore": 0.27
FieldTypeNotes
dannScorefloatRange: 0 - 1.0

dbSNP

"dbsnp":[
"rs1042821"
]
FieldTypeNotes
dbsnpstring arraydbSNP rsIDs

DECIPHER

"decipher":[
{
"chromosome":"1",
"begin":13516,
"end":91073,
"numDeletions":27,
"deletionFrequency":0.675,
"numDuplications":27,
"duplicationFrequency":0.675,
"sampleSize":40,
"reciprocalOverlap": 0.27555,
"annotationOverlap": 0.5901
}
],
FieldTypeNotes
chromosomeintEnsembl-style chromosome names
beginint1-based position
endint1-based position
numDeletionsint# of observed deletions
deletionFrequencyfloatdeletion frequency
numDuplicationsint# of observed duplications
duplicationFrequencyfloatduplication frequency
sampleSizeinttotal # of samples
reciprocalOverlapfloatRange: 0 - 1. E.g. 0.57 would indicate a 57% reciprocal overlap
annotationOverlapfloatRange: 0 - 1. E.g. 0.57 would indicate a 57% annotation overlap

GERP

"gerpScore": 1.27
FieldTypeNotes
gerpScorefloatRange: -∞ to +∞

GME Variome

"gmeVariome":{
"allAc":10,
"allAn":202,
"allAf":0.049504,
"failedFilter":true
}
FieldTypeNotes
allAcintGME allele count
allAnintGME allele number
allAffloatGME allele frequency
failedFilterboolTrue if this variant failed any filters

gnomAD

"gnomad":{ 
"coverage":20,
"allAf":0.190317,
"maleAf":0.193,
"femaleAf": 0.1935,
"afrAf":0.222876,
"amrAf":0.121394,
"easAf":0.239802,
"finAf":0.136833,
"nfeAf":0.181282,
"asjAf":0.258278,
"othAf":0.186094,
"allAn":30796,
"maleAn":15096,
"femaleAn":15700
"afrAn":8664,
"amrAn":832,
"easAn":1618,
"finAn":3486,
"nfeAn":14916,
"asjAn":302,
"othAn":978,
"allAc":5861,
"maleAc":2930,
"femaleAc": 2931,
"afrAc":1931,
"amrAc":101,
"easAc":388,
"finAc":477,
"nfeAc":2704,
"asjAc":78,
"othAc":182,
"allHc":561,
"afrHc":208,
"amrHc":6,
"easHc":42,
"finHc":31,
"nfeHc":242,
"asjHc":13,
"othHc":19,
"maleHc":280,
"femaleHc":281,
"controlsAllAf":0.190317,
"controlsAllAn":30796,
"controlsAllAc":5861,
"lowComplexityRegion":true,
"failedFilter":true
}
FieldTypeNotes
coverageintaverage coverage (non-negative integer values)
allAffloatallele frequency for all populations. Range: 0 - 1.0
maleAffloatallele frequency for male population. Range: 0 - 1.0
femaleAffloatallele frequency for female population. Range: 0 - 1.0
controlsAllAffloatallele frequency for the controls subset. Range: 0 - 1.0
allAcintallele count for all populations. Integer.
maleAcintallele count for male population. Integer.
femaleAcintallele count for female population. Integer.
controlsAllAcintallele count for the controls subset. Integer.
allAnintallele number for all populations. Non-zero integer.
maleAnintallele number for male population. Non-zero integer.
femaleAnintallele number for female population. Non-zero integer.
controlsAllAnintallele number for the controls subset. Non-zero integer.
allHcintcount of homozygous individuals for all populations. Non-negative integer.
maleHcintcount of homozygous individuals for male population. Non-negative integer.
femaleHcintcount of homozygous individuals for female population. Non-negative integer.
afrAffloatallele frequency for the African / African American population. Range: 0 - 1.0
afrAcintallele count for the African / African American population. Integer.
afrAnintallele number for the African / African American population. Non-zero integer.
afrHcintcount of homozygous individuals for African / African American population. Non-negative integer.
amrAffloatallele frequency for the Latino population. Range: 0 - 1.0
amrAcintallele count for the Latino population. Integer.
amrAnintallele number for the Latino population. Non-zero integer.
amrHcintcount of homozygous individuals for Latino population. Non-negative integer.
easAffloatallele frequency for the East Asian population. Range: 0 - 1.0
easAcintallele count for the East Asian population. Integer.
easAnintallele number for the East Asian population. Non-zero integer.
easHcintcount of homozygous individuals for East Asian population. Non-negative integer.
finAffloatallele frequency for the Finnish population. Range: 0 - 1.0
finAcintallele count for the Finnish population. Integer.
finAnintallele number for the Finnish population. Non-zero integer.
finHcintcount of homozygous individuals for Finnish population. Non-negative integer
nfeAffloatallele frequency for the Non-Finnish European population. Range: 0 - 1.0
nfeAcintallele count for the Non-Finnish European population. Integer.
nfeAnintallele number for the Non-Finnish European population. Non-zero integer.
nfeHcintcount of homozygous individuals for Non-Finnish European population. Non-negative integer
othAffloatallele frequency for the Other population. Range: 0 - 1.0
othAcintallele count for the Other population. Integer.
othAnintallele number for the Other population. Non-zero integer.
othHcintcount of homozygous individuals for Other population. Non-negative integer
asjAffloatallele frequency for the Ashkenazi Jewish population. Range: 0 - 1.0
asjAcintallele count for the Ashkenazi Jewish population Integer.
asjAnintallele number for the Ashkenazi Jewish population. Non-zero integer.
asjHcintcount of homozygous individuals for the Ashkenazi Jewish population. Non-negative integer
sasAffloatallele frequency for the South Asian population. Range: 0 - 1.0
sasAcintallele count for the South Asian population Integer.
sasAnintallele number for the South Asian population. Non-zero integer.
sasHcintcount of homozygous individuals for the South Asian population. Non-negative integer.
failedFilterboolTrue if this variant failed any filters (Note: we do not list the failed filters)
lowComplexityRegionboolTrue if this variant is located in a low complexity region.

MITOMAP

"mitomap":[ 
{
"refAllele":"G",
"altAllele":"A",
"diseases":[
"Bipolar disorder",
"Melanoma"
],
"hasHomoplasmy":false,
"hasHeteroplasmy":true,
"status":"Reported",
"clinicalSignificance":"confirmed pathogenic",
"scorePercentile":83.30,
"numGenBankFullLengthSeqs":2,
"pubMedIds":["2316527","6299878","6301949"],
"isAlleleSpecific":true
}
]
FieldTypeNotes
refAllelestring
altAllelestring
diseasesstring arrayassociated diseases
hasHomoplasmyboolean
hasHeteroplasmyboolean
statusstringrecord status
clinicalSignificancestringpredicted pathogenicity
scorePercentilefloatMitoTIP score
numGenBankFullLengthSeqsinteger# of GenBank full-length sequences
pubMedIdsstring array
isAlleleSpecificbooleantrue when the current variant alternate allele matches the MITOMAP alternate allele

Primate AI

"primateAI-3D": [
{
"aminoAcidPosition": 2,
"refAminoAcid": "V",
"altAminoAcid": "M",
"score": 0.616944,
"scorePercentile": 0.52,
"classification": "pathogenic",
"ensemblTranscriptId": "ENST00000335137.4",
"refSeqTranscriptId": "NM_001005484.1"
}
]
FieldTypeNotes
aminoAcidPositionintAmino Acid Position (1-based)
refAminoAcidstringReference Amino Acid
altAminoAcidstringAlternate Amino Acid
ensemblTranscriptIdstringTranscript ID (Ensembl)
refSeqTranscriptIdstringTranscript ID (RefSeq)
scorePercentilefloatrange: 0 - 1.0
scorefloatrange: 0 - 1.0
classificationstringpathogenic or benign classification

REVEL

"revel":{ 
"score":0.027
}
FieldTypeNotes
scorefloatRange: 0 - 1.0

Splice AI

"spliceAI":[ 
{
"hgnc":"BLCAP",
"acceptorGainDistance":-3,
"acceptorGainScore":0.3,
"donorLossDistance":7,
"donorLossScore":0.9
},
{
"hgnc":"NNAT",
"acceptorGainDistance":-1,
"acceptorGainScore":0.2,
"donorGainDistance":-2,
"donorGainScore":0.3
}
]
FieldTypeNotes
hgncstringHGNC gene symbol
acceptorGainDistanceint± bp from current position
acceptorGainScorefloatrange: 0 - 1.0. 1 decimal place
acceptorLossDistanceint± bp from current position
acceptorLossScorefloatrange: 0 - 1.0. 1 decimal place
donorGainDistanceint± bp from current position
donorGainScorefloatrange: 0 - 1.0. 1 decimal place
donorLossDistanceint± bp from current position
donorLossScorefloatrange: 0 - 1.0. 1 decimal place

TOPMed

"topmed":{ 
"allAc":20,
"allAn":125568,
"allAf":0.000159,
"allHc":0,
"failedFilter":true
}
FieldTypeNotes
allAcintTOPMed allele count
allAnintTOPMed allele number. Non-zero integer.
allAffloatTOPMed allele frequency (computed by Illumina Connected Annotations)
allHcintTOPMed homozygous count
failedFilterboolTrue if this variant failed any filters

Genes

Illumina Connected Annotations repots gene annotations for all genes that have an overlapping variant with the exception of flanking variants (i.e. variants that only cause upstream_gene_variant or downstream_gene_variant).

"genes":[
{
"name":"MSH6",
"hgncId":7329,
"summary":"This gene encodes a member of the DNA mismatch repair MutS family. In E. coli, the MutS protein helps in the recognition of mismatched nucleotides prior to their repair. A highly conserved region of approximately 150 aa, called the Walker-A adenine nucleotide binding motif, exists in MutS homologs. The encoded protein heterodimerizes with MSH2 to form a mismatch recognition complex that functions as a bidirectional molecular switch that exchanges ADP and ATP as DNA mismatches are bound and dissociated. Mutations in this gene may be associated with hereditary nonpolyposis colon cancer, colorectal cancer, and endometrial cancer. Transcripts variants encoding different isoforms have been described. [provided by RefSeq, Jul 2013]",
/* this is where gene-level data sources can be found e.g. OMIM */
}
]
FieldTypeNotes
namestringHGNC gene symbol
hgncIdintHGNC ID
summarystringshort description of the gene from OMIM

OMIM

"omim":[ 
{
"mimNumber":600678,
"geneName":"MutS, E. coli, homolog of, 6",
"description":"The transcription factor p53 responds to diverse cellular stresses to regulate target genes that induce cell cycle arrest, apoptosis, senescence, DNA repair, or changes in metabolism. In addition, p53 appears to induce apoptosis through nontranscriptional cytoplasmic processes. In unstressed cells, p53 is kept inactive essentially through the actions of the ubiquitin ligase MDM2, which inhibits p53 transcriptional activity and ubiquitinates p53 to promote its degradation. Numerous posttranslational modifications modulate p53 activity, most notably phosphorylation and acetylation. Several less abundant p53 isoforms also modulate p53 activity. Activity of p53 is ubiquitously lost in human cancer either by mutation of the p53 gene itself or by loss of cell signaling upstream or downstream of p53 (Toledo and Wahl, 2006; Bourdon, 2007; Vousden and Lane, 2007)",
"phenotypes":[
{
"mimNumber":614350,
"phenotype":"Colorectal cancer, hereditary nonpolyposis, type 5",
"description":"Hereditary nonpolyposis colorectal cancer type 5 is a cancer predisposition syndrome ...",
"mapping":"molecular basis of the disorder is known",
"inheritances":[
"Autosomal dominant"
]
},
{
"mimNumber":608089,
"phenotype":"Endometrial cancer, familial",
"mapping":"molecular basis of the disorder is known"
},
{
"mimNumber":276300,
"phenotype":"Mismatch repair cancer syndrome",
"description":"Constitutional mismatch repair deficiency is a rare childhood cancer predisposition syndrome ...",
"mapping":"molecular basis of the disorder is known",
"inheritances":[
"Autosomal recessive"
],
"comments" : [
"contribute to susceptibility to multifactorial disorders or to susceptibility to infection",
"unconfirmed or possibly spurious mapping"
]
}
]
}
]
FieldTypeNotes
mimNumberintOMIM ID for gene
geneNamestringgene name
descriptionstring
phenotypesobject arraysee Phenotype entry below

Phenotype

FieldTypeNotes
mimNumberint
phenotypestring
descriptionstring
mappingstringsee possible values below
inheritancestring arraysee possible values below
commentsstring arraysee possible values below

Mapping

  1. disorder was positioned by mapping of the wild type gene
  2. disease phenotype itself was mapped
  3. molecular basis of the disorder is known
  4. disorder is a chromosome deletion or duplication syndrome

Inheritance

  • autosomal recessive
  • autosomal dominant

Comments

  • contributes to the susceptibility to multifactorial disorders
  • variations that lead to apparently abnormal laboratory test values
  • unconfirmed mapping

gnomAD LoF Gene Metrics

"gnomAD":{ 
"pLi":1.00e0,
"pNull":8.94e-40,
"pRec":1.84e-16,
"synZ":-8.44e-2,
"misZ":5.96e-1,
"loeuf":1.13e0
}
FieldTypeNotes
pLifloatprobability of being intolerant of a single loss-of-function variant (like haploinsufficient genes, observed ~ 0.1*expected)
pNullfloatprobability of being completely tolerant of loss of function variation (observed = expected)
pRecfloatprobability of being intolerant of two loss of function variants (like recessive genes, observed ~ 0.5*expected)
synZfloatcorrected synonymous Z score
misZfloatcorrected missense Z score
loeuffloatloss of function observed/expected upper bound fraction (LOEUF)

ClinGen Disease Validity

"clingenGeneValidity":[
{
"diseaseId":"MONDO_0007893",
"disease":"Noonan syndrome with multiple lentigines",
"classification":"no reported evidence",
"classificationDate":"2018-06-07"
},
{
"diseaseId":"MONDO_0015280",
"disease":"cardiofaciocutaneous syndrome",
"classification":"no reported evidence",
"classificationDate":"2018-06-07"
}
]
FieldTypeNotes
clingenGeneValidityobject
diseaseIdstringMonarch Disease Ontology ID (MONDO)
diseasestringdisease label
classificationstringsee below for possible values
classificationDatestringyyyy-MM-dd

classification

  • no reported evidence
  • disputed
  • limited
  • moderate
  • definitive
  • strong
  • refuted
  • no known disease relationship

COSMIC Cancer Gene Census

   {
"name": "PRDM16",
"ensemblGeneId": "ENSG00000142611",
"ncbiGeneId": "63976",
"hgncId": 14000,
"cosmic": {
"tier": 1,
"roleInCancer": [
"oncogene",
"fusion"
]
}
}
FieldTypeNotes
roleInCancerstring arrayPossible roles in caner
tiernumberCosmic tiers [1, 2]
- - + + \ No newline at end of file diff --git a/3.23/index.html b/3.23/index.html index 1af07880..48c7990c 100644 --- a/3.23/index.html +++ b/3.23/index.html @@ -6,8 +6,8 @@ Introduction | IlluminaConnectedAnnotations - - + +
@@ -15,7 +15,7 @@ The current officially supported versions are:

Data SourceVersionRelease Date
RefSeqGCF_000001405.40-RS_2023_032023-03-21
Ensembl1102023-04-27

In addition, it uses external data sources to provide additional context for each variant. Illumina Connected Annotations provides annotations from the following sources divided into 2 tiers: Professional and basic. The basic tier can be accessed free of charge. The professional tier requires a license. Please see Licensed Content for details. For access, please contact annotation_support@illumina.com.

Data SourceAvailabilityLatest Supported Version
COSMICProfessional99
OMIMProfessional20240110
Primate AI-3DProfessional1.0
Splice AIProfessional1.3
1000 Genomes ProjectBasicPhase 3 v3plus
Cancer HotspotsBasic2017
ClinGenBasic20240110
ClinVarBasic20231230
DANNBasic20200205
dbSNPBasic156
DECIPHERBasic201509
FusionCatcherBasic1.33
GERPBasic20110522
GME VariomeBasic20160618
gnomADBasic3.1.2
MITOMAPBasic20200819
MultiZ 100 wayBasic20171006
REVELBasic20200205
TOPMedBasicfreeze 5

Download

Please visit Illumina Connected Annotations.

- - + + \ No newline at end of file diff --git a/3.23/introduction/dependencies/index.html b/3.23/introduction/dependencies/index.html index 9089383f..960ce850 100644 --- a/3.23/introduction/dependencies/index.html +++ b/3.23/introduction/dependencies/index.html @@ -6,13 +6,13 @@ Dependencies | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Dependencies

All of the following dependencies have been included in this repository.

NameLicenseUsage
Amazon.LambdaApacheAWS extensions for .NET CLI
AWSSDKApacheAWS Lambda, S3, SNS support
Json.NETMITJASIX utility
libdeflateMITBlockCompression library
MoqBSDMocking framework for unit tests
NDesk.OptionsMIT/X11CommandLine library
xUnitApacheUnit testing framework
zlib-ngzlibBlockCompression library
zstdBSDBlockCompression library
- - + + \ No newline at end of file diff --git a/3.23/introduction/getting-started/index.html b/3.23/introduction/getting-started/index.html index 998c93dd..f3bb9c02 100644 --- a/3.23/introduction/getting-started/index.html +++ b/3.23/introduction/getting-started/index.html @@ -6,13 +6,13 @@ Getting Started | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Getting Started

Illumina Connected Annotations is written in C# using .NET Core (an amazing runtime environment that currently runs on Windows, Linux, Mac OS X, and in Docker images). Once .NET Core has been downloaded, all you need to do is grab the source, compile it, and grab the data files.

tip

Illumina Connected Annotations currently uses .NET6.0. Please make sure that you have the most current runtime from the .NET Core downloads page.

Getting Illumina Connected Annotations

Latest Release

Please visit Illumina Connected Annotations. to obtain the latest release.

mkdir -p IlluminaConnectedAnnotations/Data
cd IlluminaConnectedAnnotations
unzip IlluminaConnectedAnnotations-3.22.0-0-gc13dcb61-net6.0.zip

Quick Start

If you want to get started right away, we've created a script that unzips the Illumina Connected Annotations build, downloads the annotation data, and starts annotating a test file:

bash ./TestIlluminaConnectedAnnotations.sh IlluminaConnectedAnnotationsBuild.zip

We have verified that this script works on Windows (using Git Bash or WSL), Linux, and Mac OS X.

Docker

Obtain the docker image in a zip file (e.g. IlluminaConnectedAnnotations-3.22.0-0-gc13dcb61-net6.0-docker.tar.gz), and load it as follows

docker load < IlluminaConnectedAnnotations-3.22.0-0-gc13dcb61-net6.0-docker.tar.gz

If you want to build your own docker image, it is really easy to do. You just need to have Illumina Connected Annotations zip file and then download the Dockerfile and this script.

Put both files (create_docker_image.sh and Dockerfile) inside the same folder.

In terminal, execute command below inside the folder where you put those scripts:

chmod +x create_docker_image.sh
./create_docker_image.sh [path to zip file] [image tag]

After you run the script, the docker image will be available in your local machine with image name illumina-connected-annotations:[image tag specified].

For Docker, we have special instructions for running the Downloader:

docker run --rm -it -v local/data/folder:/scratch illumina-connected-annotations:v3.22.0 Downloader --ga GRCh37 -o /scratch

Similarly, we have special instructions for running IlluminaConnectedAnnotations (Here's a toy VCF in case you need it):

docker run --rm -it -v local/data/folder:/scratch illumina-connected-annotations:v3.22.0 Annotator -c /scratch/Cache/ \
-r /scratch/References/Homo_sapiens.GRCh37.Nirvana.dat \
--sd /scratch/SupplementaryAnnotation/GRCh37 \
-i /scratch/HiSeq.10000.vcf.gz -o /scratch/HiSeq
caution

Please note that since our data files are usually accessed through a Docker volume, there is a noticeable performance penalty when running Illumina Connected Annotations in Docker.

tip

For convenience, the user is encouraged to create aliases for the docker commands. For example:

alias IlluminaConnectedAnnotations="docker run --rm -it -v local/data/folder:/scratch illumina-connected-annotations:v3.22.0 IlluminaConnectedAnnotations"

Downloading the data files

To download the latest data sources (or update the ones that you already have), use the following command to automate the download from S3:

dotnet bin/Release/net6.0/Downloader.dll \
--ga GRCh37 \
-o Data
  • the --ga argument specifies the genome assembly which can be GRCh37, GRCh38, or both.
  • the -o argument specifies the output directory
Glitches in the Matrix

Every once in a while, the download process does not go smoothly. Perhaps the internet connection cut out or you ran out of disk space. The Downloader attempts to detect these situations by checking the file sizes at the very end. If you see that a file was marked truncated, try fixing the root cause and running the downloader again.

tip

From time to time, you can re-run the Downloader to get the latest annotation files. It will only download the files that changed.

Preserving old data file

By default, while rerunning, the Downloader will replace old files with the latest versions. For example, if at some point, your SupplementaryAnnotation folder contained ClinVar_20231101.nsa and the latest available version is ClinVar_20231203.nsa, next time the Downloader is run, ClinVar_20231101.nsa will be replaced with ClinVar_20231203.nsa.

Currently, there is no way to override this behavior. If you do not want to replace/update any particular file, we recommend saving those files to a different location, rerun the Downloader to update the other data files and then manually replace the files you did not want updated. Please make sure to remove the latest version of the files you did not want. Note that the Annotator will throw an error if multiple versions of the same data source is present in the SupplementaryAnnotation folder. In other words, the SupplementaryAnnotation folder cannot contain both ClinVar_20231101.nsa and ClinVar_20231203.nsa.

Here is an example of how to proceed if a user doesn't want the latest version of ClinVar.

ls Data/SupplementaryAnnotation/GRCh38
...
ClinGen_disease_validity_curations_20231011.nga
ClinVar_20230930.nsa
ClinVar_20230930.nsa.idx
...
mv Data/SupplementaryAnnotation/GRCh38/ClinVar* <tmp_dir>/GRCh38/

dotnet bin/Release/net6.0/Downloader.dll \
--ga GRCh38 \
-o Data

rm Data/SupplementaryAnnotation/GRCh38/ClinVar*
mv <tmp_dir>/GRCh38/ClinVar* Data/SupplementaryAnnotation/GRCh38/

Download a test VCF file

Here's a toy VCF file you can play around with:

curl -O https://illumina.github.io/IlluminaConnectedAnnotationsDocumentation/files/HiSeq.10000.vcf.gz

Running Illumina Connected Annotations

Once you have downloaded the data sets, use the following command to annotate your VCF:

dotnet Annotator.dll \
-c Data/Cache \
--sd Data/SupplementaryAnnotation/GRCh37 \
-r Data/References/Homo_sapiens.GRCh37.Nirvana.dat \
-i HiSeq.10000.vcf.gz \
-o HiSeq.10000
  • the -c argument specifies the cache directory
  • the --sd argument specifies the supplementary annotation directory
  • the -r argument specifies the compressed reference path
  • the -i argument specifies the input VCF path
  • the -o argument specifies the output filename prefix

When running Illumina Connected Annotations, performance metrics are shown as it evaluates each chromosome in the input VCF file:

---------------------------------------------------------------------------
Illumina Connected Annotations (c) 2023 Illumina, Inc.
3.22.0
---------------------------------------------------------------------------

Initialization Time Positions/s
---------------------------------------------------------------------------
Cache 00:00:00.0
SA Position Scan 00:00:00.0 153,634

Reference Preload Annotation Variants/s
---------------------------------------------------------------------------
chr1 00:00:00.2 00:00:00.8 11,873

Summary Time Percent
---------------------------------------------------------------------------
Initialization 00:00:00.0 1.5 %
Preload 00:00:00.2 4.9 %
Annotation 00:00:00.8 18.5 %

Time: 00:00:04.4

The output will be a JSON file called HiSeq.10000.json.gz. Here's the full JSON file.

The Illumina Connected Annotations command line

The full command line options can be viewed by using the -h option or no options

dotnet Annotator.dll
---------------------------------------------------------------------------
Illumina Connected Annotations (c) 2023 Illumina, Inc.
3.22.0
---------------------------------------------------------------------------

USAGE: dotnet Annotator.dll -i <vcf path> -c <cache dir> --sd <sa dir> -r <ref path> -o <base output filename>
Annotates a set of variants

OPTIONS:
--cache, -c <directory>
input cache directory
--in, -i <path> input VCF path
--out, -o <file path> output file path
--ref, -r <path> input compressed reference sequence path
--sd <directory> input supplementary annotation directory
--sources, -s <VALUE> annotation data sources to be used (comma
separated list of supported tags)
--force-mt forces to annotate mitochondrial variants
--legacy-vids enables support for legacy VIDs
--enable-dq report DQ from VCF samples field
--enable-bidirectional-fusions
enables support for bidirectional gene fusions
--str <VALUE> user provided STR annotation TSV file
--vcf-info <VALUE> additional vcf info field keys (comma separated)
desired in the output
--vcf-sample-info <VALUE>
additional vcf format field keys (comma separated)
desired in the output
--help, -h displays the help menu
--version, -v displays the version

Supplementary annotation version: 69, Reference version: 7

Specifying annotation sources

By default, Illumina Connected Annotations will use all available data sources. However, the user can customize the set of sources using the --sources|-s option. If an unknown source is specified, a warning message will be printed.

dotnet Annotator.dll \
-c Data/Cache/GRCh37 \
--sd Data/SupplementaryAnnotation/GRCh37 \
-r Data/References/Homo_sapiens.GRCh37.Nirvana.dat \
-i HiSeq.10000.vcf.gz \
-o HiSeq.10000 \
-s omim,gnomad,ense
---------------------------------------------------------------------------
Illumina Connected Annotations (c) 2023 Illumina, Inc.
3.22.0
---------------------------------------------------------------------------

WARNING: Unknown tag in data-sources: ense.
Available values are: aminoAcidConservation,primateAI,dbsnp,spliceAI,revel,cosmic,clinvar,gnomad,
mitomap,oneKg,gmeVariome,topmed,clingen,decipher,gnomAD-preview,clingenDosageSensitivityMap,
gerpScore,dannScore,omim,clingenGeneValidity,phylopScore,lowComplexityRegion,refMinor,
heteroplasmy,Ensembl,RefSeq

Initialization Time Positions/s
---------------------------------------------------------------------------
SA Position Scan 00:00:00.3 307,966
....
..

The list of available values is compiled from the files provided (using -c and --sd options).

- - + + \ No newline at end of file diff --git a/3.23/introduction/licensedContent/index.html b/3.23/introduction/licensedContent/index.html index 969f083a..91499d92 100644 --- a/3.23/introduction/licensedContent/index.html +++ b/3.23/introduction/licensedContent/index.html @@ -6,18 +6,17 @@ Licensed Content | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Licensed Content

Illumina Conncted Annotations supports following content which is available through a license from Illumina. -The license file will allow users to download and annotate with these data sources.

  • COSMIC
  • OMIM
  • Primate AI-3D
  • Splice AI
note

License may be customized to allow access to one of more of the above at the time of license creation.

How to obtain the license?

Please contact annotation_support@illumina.com to obtain a special credentials file for the data sources of interest.

Visit Illumina Connected Annotations for more details.

How to use the credentials file?

After obtaining the credentials file, it may be used in two ways:

  1. Home folder
  2. Commandline argument

The default location of the license file is ~/.ilmnAnnotations/credentials.json. -However, this can be overridden by the command line argument while downloading/annotating.

Download licensed content

dotnet Downloader.dll \
-o ~/data \
-ga GRCh38 \
--credentialsFile ~/credentials.json

Annotate with licensed content

dotnet Annotator.dll \
--ref ~/data/References/7/Homo_sapiens.GRCh38.Nirvana.dat \
--sd ~/data/SupplementaryDatabase \
-c ~/data/Cache/32 \
-i ~/input_vcf-hg38.vcf.gz \
-o ~/output \
--credentialsFile ~/credentials.json

Licensing Errors

If the license has expired, Illumina Connected Annotations will stop annotating and exit with an error code. +The license file will allow users to download and annotate with these data sources.

  • COSMIC
  • OMIM
  • Primate AI-3D
  • Splice AI
note

License may be customized to allow access to one of more of the above at the time of license creation.

How to obtain the license?

Please contact annotation_support@illumina.com to obtain a special credentials file for the data sources of interest.

Visit Illumina Connected Annotations for more details.

How to use the credentials file?

After obtaining the credentials file, it may be used in two ways:

  1. Home folder
  2. Commandline argument

The default location of the license file is ~/.ilmnAnnotations/credentials.json. An example of credentials file as below:

{
"ApiKey":"myApiKey",
"ApiSecret": "abcdefghikjlmnopqrstuvwxyz-secretKey"
}

However, this can be overridden by the command line argument while downloading/annotating.

Download licensed content

dotnet Downloader.dll \
-o ~/data \
-ga GRCh38 \
--credentialsFile ~/credentials.json

Annotate with licensed content

dotnet Annotator.dll \
--ref ~/data/References/7/Homo_sapiens.GRCh38.Nirvana.dat \
--sd ~/data/SupplementaryDatabase \
-c ~/data/Cache/32 \
-i ~/input_vcf-hg38.vcf.gz \
-o ~/output \
--credentialsFile ~/credentials.json

Licensing Errors

If the license has expired, Illumina Connected Annotations will stop annotating and exit with an error code. These errors may be skipped by using the --ignoreLicenseError command line argument. After doing this, only basic data sources will be used for annotations. This can also be achieved by deleting the credentials file from the home folder.

- - + + \ No newline at end of file diff --git a/3.23/introduction/parsing-json/index.html b/3.23/introduction/parsing-json/index.html index 4b306347..0ec08f46 100644 --- a/3.23/introduction/parsing-json/index.html +++ b/3.23/introduction/parsing-json/index.html @@ -6,13 +6,13 @@ Parsing Illumina Connected Annotations JSON | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Parsing Illumina Connected Annotations JSON

Parsing JSON

Our JSON files are organized similarly to original VCF variants:

Illumina Connected Annotations JSON files can get very large and sometimes we receive feedback that a bioinformatician tried to read the JSON file into Python or R resulting in a program that ran out of available RAM. This happens because those parsers try to load everything into memory all at once.

To get around those issues, we play some clever tricks with newlines that enables our users to parse our JSON files quickly and efficiently.

Organization

Our JSON file is arranged as follows:

  • the header section is located on the first line
  • each line after that corresponds to a position (same as a row in a VCF file)
    • until you reach the genes section ],"genes":[
  • each line after that corresponds to a gene
    • until you reach the end ]}

Knowing this, you can load each position line as an independent JSON object and extract the information you need.

Jupyter Notebook

To demonstrate this, we have put together a Jupyter notebook demonstrating how to do this in Python and a R version as well.

JASIX

One of the tools that we really like in the VCF ecosystem is tabix. Unfortunately, tabix only works for tab-delimited file formats. As a result, we created a similar tool for Illumina Connected Annotations JSON files called JASIX.

Here's an example of how you might use JASIX:

dotnet bin/Release/net6.0/Jasix.dll -i dragen.json.gz -q chr1:942450-942455
  • the -i argument specifies the Illumina Connected Annotations JSON path
  • the -q argument specifies a genomic range (you can use as many of these as you want)

JASIX also includes additional options for showing the Illumina Connected Annotations header or for extracting different sections (like the genes section).

The output from JASIX is compliant JSON object shown in pretty-printed form:

{"positions":[
{
"chromosome": "chr1",
"position": 942451,
"refAllele": "T",
"altAlleles": [
"C"
],
"quality": 484.23,
"filters": [
"PASS"
],
"cytogeneticBand": "1p36.33",
"samples": [
{
"genotype": "1/1",
"variantFrequencies": [
1
],
"totalDepth": 21,
"genotypeQuality": 60,
"alleleDepths": [
0,
21
]
},
{
"genotype": "1/1",
"variantFrequencies": [
1
],
"totalDepth": 32,
"genotypeQuality": 93,
"alleleDepths": [
0,
32
]
},
{
"genotype": "1/1",
"variantFrequencies": [
1
],
"totalDepth": 36,
"genotypeQuality": 105,
"alleleDepths": [
0,
36
]
}
],
"variants": [
{
"vid": "1-942451-T-C",
"chromosome": "chr1",
"begin": 942451,
"end": 942451,
"refAllele": "T",
"altAllele": "C",
"variantType": "SNV",
"hgvsg": "NC_000001.11:g.942451T>C",
"phylopScore": -0.1,
"clinvar": [
{
"id": "VCV000836156.1",
"reviewStatus": "criteria provided, single submitter",
"significance": [
"uncertain significance"
],
"refAllele": "T",
"altAllele": "T",
"lastUpdatedDate": "2020-08-20"
},
{
"id": "RCV001037211.1",
"variationId": 836156,
"reviewStatus": "criteria provided, single submitter",
"alleleOrigins": [
"germline"
],
"refAllele": "T",
"altAllele": "T",
"phenotypes": [
"not provided"
],
"medGenIds": [
"CN517202"
],
"significance": [
"uncertain significance"
],
"lastUpdatedDate": "2020-08-20",
"pubMedIds": [
"28492532"
]
}
],
"dbsnp": [
"rs6672356"
],
"gnomad": {
"coverage": 25,
"allAf": 0.999855,
"allAn": 123742,
"allAc": 123724,
"allHc": 61853,
"afrAf": 0.999416,
"afrAn": 10278,
"afrAc": 10272,
"afrHc": 5133,
"amrAf": 0.99995,
"amrAn": 20008,
"amrAc": 20007,
"amrHc": 10003,
"easAf": 1,
"easAn": 6054,
"easAc": 6054,
"easHc": 3027,
"finAf": 1,
"finAn": 8696,
"finAc": 8696,
"finHc": 4348,
"nfeAf": 0.999899,
"nfeAn": 49590,
"nfeAc": 49585,
"nfeHc": 24790,
"asjAf": 1,
"asjAn": 7208,
"asjAc": 7208,
"asjHc": 3604,
"sasAf": 0.99967,
"sasAn": 18160,
"sasAc": 18154,
"sasHc": 9074,
"othAf": 1,
"othAn": 3748,
"othAc": 3748,
"othHc": 1874,
"maleAf": 0.9999,
"maleAn": 69780,
"maleAc": 69773,
"maleHc": 34883,
"femaleAf": 0.999796,
"femaleAn": 53962,
"femaleAc": 53951,
"femaleHc": 26970,
"controlsAllAf": 0.999815,
"controlsAllAn": 48654,
"controlsAllAc": 48645
},
"oneKg": {
"allAf": 1,
"afrAf": 1,
"amrAf": 1,
"easAf": 1,
"eurAf": 1,
"sasAf": 1,
"allAn": 5008,
"afrAn": 1322,
"amrAn": 694,
"easAn": 1008,
"eurAn": 1006,
"sasAn": 978,
"allAc": 5008,
"afrAc": 1322,
"amrAc": 694,
"easAc": 1008,
"eurAc": 1006,
"sasAc": 978
},
"primateAI": [
{
"hgnc": "SAMD11",
"scorePercentile": 0.87
}
],
"revel": {
"score": 0.145
},
"topmed": {
"allAf": 0.999809,
"allAn": 125568,
"allAc": 125544,
"allHc": 62760
},
"transcripts": [
{
"transcript": "ENST00000420190.6",
"source": "Ensembl",
"bioType": "protein_coding",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"downstream_gene_variant"
],
"proteinId": "ENSP00000411579.2"
},
{
"transcript": "ENST00000342066.7",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "1110",
"cdsPos": "1027",
"exons": "10/14",
"proteinPos": "343",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000342066.7:c.1027T>C",
"hgvsp": "ENSP00000342313.3:p.(Trp343Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000342313.3",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000618181.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "732",
"cdsPos": "652",
"exons": "7/11",
"proteinPos": "218",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000618181.4:c.652T>C",
"hgvsp": "ENSP00000480870.1:p.(Trp218Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000480870.1",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000622503.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "1110",
"cdsPos": "1030",
"exons": "10/14",
"proteinPos": "344",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000622503.4:c.1030T>C",
"hgvsp": "ENSP00000482138.1:p.(Trp344Arg)",
"isCanonical": true,
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000482138.1",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000618323.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "cTg/cCg",
"aminoAcids": "L/P",
"cdnaPos": "712",
"cdsPos": "632",
"exons": "8/12",
"proteinPos": "211",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000618323.4:c.632T>C",
"hgvsp": "ENSP00000480678.1:p.(Leu211Pro)",
"polyPhenScore": 0,
"polyPhenPrediction": "unknown",
"proteinId": "ENSP00000480678.1",
"siftScore": 0.03,
"siftPrediction": "deleterious - low confidence"
},
{
"transcript": "ENST00000616016.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "ccT/ccC",
"aminoAcids": "P",
"cdnaPos": "944",
"cdsPos": "864",
"exons": "9/13",
"proteinPos": "288",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"synonymous_variant"
],
"hgvsc": "ENST00000616016.4:c.864T>C",
"hgvsp": "ENST00000616016.4:c.864T>C(p.(Pro288=))",
"proteinId": "ENSP00000478421.1"
},
{
"transcript": "ENST00000618779.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "921",
"cdsPos": "841",
"exons": "9/13",
"proteinPos": "281",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000618779.4:c.841T>C",
"hgvsp": "ENSP00000484256.1:p.(Trp281Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000484256.1",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000616125.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "783",
"cdsPos": "703",
"exons": "8/12",
"proteinPos": "235",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000616125.4:c.703T>C",
"hgvsp": "ENSP00000484643.1:p.(Trp235Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000484643.1",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000620200.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "cTg/cCg",
"aminoAcids": "L/P",
"cdnaPos": "427",
"cdsPos": "347",
"exons": "5/9",
"proteinPos": "116",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000620200.4:c.347T>C",
"hgvsp": "ENSP00000484820.1:p.(Leu116Pro)",
"polyPhenScore": 0,
"polyPhenPrediction": "unknown",
"proteinId": "ENSP00000484820.1",
"siftScore": 0.16,
"siftPrediction": "tolerated - low confidence"
},
{
"transcript": "ENST00000617307.4",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "867",
"cdsPos": "787",
"exons": "9/13",
"proteinPos": "263",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000617307.4:c.787T>C",
"hgvsp": "ENSP00000482090.1:p.(Trp263Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000482090.1",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "NM_152486.2",
"source": "RefSeq",
"bioType": "protein_coding",
"codons": "Cgg/Cgg",
"aminoAcids": "R",
"cdnaPos": "1107",
"cdsPos": "1027",
"exons": "10/14",
"proteinPos": "343",
"geneId": "148398",
"hgnc": "SAMD11",
"consequence": [
"synonymous_variant"
],
"hgvsc": "NM_152486.2:c.1027T>C",
"hgvsp": "NM_152486.2:c.1027T>C(p.(Arg343=))",
"isCanonical": true,
"proteinId": "NP_689699.2"
},
{
"transcript": "ENST00000341065.8",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "750",
"cdsPos": "751",
"exons": "8/12",
"proteinPos": "251",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000341065.8:c.750T>C",
"hgvsp": "ENSP00000349216.4:p.(Trp251Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000349216.4",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000455979.1",
"source": "Ensembl",
"bioType": "protein_coding",
"codons": "Tgg/Cgg",
"aminoAcids": "W/R",
"cdnaPos": "507",
"cdsPos": "508",
"exons": "4/7",
"proteinPos": "170",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"missense_variant"
],
"hgvsc": "ENST00000455979.1:c.507T>C",
"hgvsp": "ENSP00000412228.1:p.(Trp170Arg)",
"polyPhenScore": 0,
"polyPhenPrediction": "benign",
"proteinId": "ENSP00000412228.1",
"siftScore": 1,
"siftPrediction": "tolerated"
},
{
"transcript": "ENST00000478729.1",
"source": "Ensembl",
"bioType": "processed_transcript",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"downstream_gene_variant"
]
},
{
"transcript": "ENST00000474461.1",
"source": "Ensembl",
"bioType": "retained_intron",
"cdnaPos": "389",
"exons": "3/4",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"non_coding_transcript_exon_variant"
],
"hgvsc": "ENST00000474461.1:n.389T>C"
},
{
"transcript": "ENST00000466827.1",
"source": "Ensembl",
"bioType": "retained_intron",
"cdnaPos": "191",
"exons": "2/2",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"non_coding_transcript_exon_variant"
],
"hgvsc": "ENST00000466827.1:n.191T>C"
},
{
"transcript": "ENST00000464948.1",
"source": "Ensembl",
"bioType": "retained_intron",
"cdnaPos": "286",
"exons": "1/2",
"geneId": "ENSG00000187634",
"hgnc": "SAMD11",
"consequence": [
"non_coding_transcript_exon_variant"
],
"hgvsc": "ENST00000464948.1:n.286T>C"
},
{
"transcript": "NM_015658.3",
"source": "RefSeq",
"bioType": "protein_coding",
"geneId": "26155",
"hgnc": "NOC2L",
"consequence": [
"downstream_gene_variant"
],
"isCanonical": true,
"proteinId": "NP_056473.2"
},
{
"transcript": "ENST00000483767.5",
"source": "Ensembl",
"bioType": "retained_intron",
"geneId": "ENSG00000188976",
"hgnc": "NOC2L",
"consequence": [
"downstream_gene_variant"
]
},
{
"transcript": "ENST00000327044.6",
"source": "Ensembl",
"bioType": "protein_coding",
"geneId": "ENSG00000188976",
"hgnc": "NOC2L",
"consequence": [
"downstream_gene_variant"
],
"isCanonical": true,
"proteinId": "ENSP00000317992.6"
},
{
"transcript": "ENST00000477976.5",
"source": "Ensembl",
"bioType": "retained_intron",
"geneId": "ENSG00000188976",
"hgnc": "NOC2L",
"consequence": [
"downstream_gene_variant"
]
},
{
"transcript": "ENST00000496938.1",
"source": "Ensembl",
"bioType": "processed_transcript",
"geneId": "ENSG00000188976",
"hgnc": "NOC2L",
"consequence": [
"downstream_gene_variant"
]
}
]
}
]
}
]}
- - + + \ No newline at end of file diff --git a/3.23/utilities/jasix/index.html b/3.23/utilities/jasix/index.html index d3ed0346..2bc96da8 100644 --- a/3.23/utilities/jasix/index.html +++ b/3.23/utilities/jasix/index.html @@ -6,13 +6,13 @@ Jasix | IlluminaConnectedAnnotations - - + +
Skip to main content
Version: 3.23

Jasix

Overview

The Jasix index is aimed at providing TABIX like indexing capabilities for the Illumina Connected Annotations JSON output.

Creating the Jasix index

The Jasix index (that comes in a .jsi) file is generated on-the-fly with Illumina Connected Annotations output. It can also be generated independently by running the Jasix command line utility on the JSON output file. Please note that the Jasix utility can only consume JSON files that follow the Illumina Connected Annotations JSON output format. The following code blocks demonstrate the help menu and index generating functionalities of Jasix.

Example

dotnet Jasix.dll -h
USAGE: dotnet Jasix.dll -i in.json.gz [options]
Indexes a Illumina Connected Annotations annotated JSON file

OPTIONS:
--header, -t print also the header lines
--only-header, -H print only the header lines
--chromosomes, -l list chromosome names
--index, -c create index
--in, -i <VALUE> input
--out, -o <VALUE> compressed output file name (default:console)
--query, -q <VALUE> query range
--section, -s <VALUE> complete section (positions or genes) to output
--help, -h displays the help menu
--version, -v displays the version
dotnet Jasix.dll --index -i input.json.gz
---------------------------------------------------------------------------
Jasix (c) 2023 Illumina, Inc.
3.22.0
---------------------------------------------------------------------------

Ref Sequence chrM indexed in 00:00:00.2
Ref Sequence chr1 indexed in 00:00:05.8
Ref Sequence chr2 indexed in 00:00:06.0
.
.
.
Peak memory usage: 28.5 MB
Time: 00:01:14.8

Querying the index

The Jasix query format is chr:start-end. If not provided, it assumes end=start. If only chr is provided, all entries for that chromosome will be provided.

dotnet Jasix.dll -i input.json.gz chrM:5000-7000
{
"positions":[
{
"chromosome":"chrM",
"refAllele":"C",
"position":5581,
"quality":3070.00,
"filters":[
"LowGQXHomSNP"
],
"altAlleles":[
"T"
],
"samples":[
{
"variantFreq":1,
"totalDepth":1625,
"genotypeQuality":1,
"alleleDepths":[
0,
1625
],
"genotype":"1/1"
}
],
"variants":[
{
"altAllele":"T",
"refAllele":"C",
"begin":5581,
"chromosome":"chrM",
"end":5581,
"variantType":"SNV",
"vid":"MT:5581:T"
}
]
},
{
"chromosome":"chrM",
"refAllele":"A",
"position":6267,
"quality":1637.00,
"filters":[
"LowGQXHetSNP"
],
"altAlleles":[
"G"
],
"samples":[
{
"variantFreq":0.6873,
"totalDepth":323,
"genotypeQuality":1,
"alleleDepths":[
101,
222
],
"genotype":"0/1"
}
],
"variants":[
{
"altAllele":"G",
"refAllele":"A",
"begin":6267,
"chromosome":"chrM",
"end":6267,
"variantType":"SNV",
"vid":"MT:6267:G"
}
]
}
]
}

The default output stream is Console. However, if an output filename is provided, Jasix outputs the results to that file in a bgzip compressed format. The output is always a valid JSON entry. If requested (via -t option) the header of the indexed file will be provided. Multiple queries can be submitted in the same command and the output will contain them within the same "positions" block in order of the submitted queries (Warning: if the queries are out of order, or overlapping, the output will be out or order and intersecting).

dotnet Jasix.dll -i input.json.gz  -q chrM:5000-7000 -q chrM:8500-9500 -t
{
"header":{
"annotator":"Illumina Annotation Engine 1.6.2.0",
"creationTime":"2017-08-30 11:42:57",
"genomeAssembly":"GRCh37",
"schemaVersion":6,
"dataVersion":"84.24.39",
"dataSources":[
{
"name":"VEP",
"version":"84",
"description":"Ensembl",
"releaseDate":"2017-01-16"
}
],
"samples":[
"Mother"
]
},
"positions":[
{
"chromosome":"chrM",
"refAllele":"C",
"position":5581,
"quality":3070.00,
"filters":[
"LowGQXHomSNP"
],
"altAlleles":[
"T"
],
"samples":[
{
"variantFreq":1,
"totalDepth":1625,
"genotypeQuality":1,
"alleleDepths":[
0,
1625
],
"genotype":"1/1"
}
],
"variants":[
{
"altAllele":"T",
"refAllele":"C",
"begin":5581,
"chromosome":"chrM",
"end":5581,
"variantType":"SNV",
"vid":"MT:5581:T"
}
]
},
{
"chromosome":"chrM",
"refAllele":"A",
"position":6267,
"quality":1637.00,
"filters":[
"LowGQXHetSNP"
],
"altAlleles":[
"G"
],
"samples":[
{
"variantFreq":0.6873,
"totalDepth":323,
"genotypeQuality":1,
"alleleDepths":[
101,
222
],
"genotype":"0/1"
}
],
"variants":[
{
"altAllele":"G",
"refAllele":"A",
"begin":6267,
"chromosome":"chrM",
"end":6267,
"variantType":"SNV",
"vid":"MT:6267:G"
}
]
},
{
"chromosome":"chrM",
"refAllele":"G",
"position":8702,
"quality":3070.00,
"filters":[
"LowGQXHomSNP"
],
"altAlleles":[
"A"
],
"samples":[
{
"variantFreq":0.9987,
"totalDepth":1534,
"genotypeQuality":1,
"alleleDepths":[
2,
1532
],
"genotype":"1/1"
}
],
"variants":[
{
"altAllele":"A",
"refAllele":"G",
"begin":8702,
"chromosome":"chrM",
"end":8702,
"variantType":"SNV",
"vid":"MT:8702:A"
}
]
},
{
"chromosome":"chrM",
"refAllele":"G",
"position":9378,
"quality":3070.00,
"filters":[
"LowGQXHomSNP"
],
"altAlleles":[
"A"
],
"samples":[
{
"variantFreq":1,
"totalDepth":1018,
"genotypeQuality":1,
"alleleDepths":[
0,
1018
],
"genotype":"1/1"
}
],
"variants":[
{
"altAllele":"A",
"refAllele":"G",
"begin":9378,
"chromosome":"chrM",
"end":9378,
"variantType":"SNV",
"vid":"MT:9378:A"
}
]
}
]
}

Extracting a section

The Illumina Connected Annotations JSON file has three sections: header, positions and genes. Header can be printed using the -H option. If you are interested in only the positions or genes section, you can use the -s or --section option.

dotnet Jasix.dll -i input.json.gz  -s genes
[
{
"name": "ABCB10",
"omim": [
{
"mimNumber": 605454,
"geneName": "ATP-binding cassette, subfamily B, member 10"
}
]
},
{
"name": "ABCD3",
"omim": [
{
"mimNumber": 170995,
"geneName": "ATP-binding cassette, subfamily D, member 3 (peroxisomal membrane protein 1, 70kD)",
"description": "The ABCD3 gene encodes a peroxisomal membrane transporter involved in the transport of branched-chain fatty acids and C27 bile acids into the peroxisome; the latter function is a crucial step in bile acid biosynthesis (summary by Ferdinandusse et al., 2015).",
"phenotypes": [
{
"mimNumber": 616278,
"phenotype": "?Bile acid synthesis defect, congenital, 5",
"mapping": "molecular basis of the disorder is known",
"inheritances": [
"Autosomal recessive"
],
"comments": [
"unconfirmed or possibly spurious mapping"
]
}
]
}
]
}
]
- - + + \ No newline at end of file diff --git a/3.23/utilities/sautils/index.html b/3.23/utilities/sautils/index.html index 2bb987b3..18fd1d63 100644 --- a/3.23/utilities/sautils/index.html +++ b/3.23/utilities/sautils/index.html @@ -6,8 +6,8 @@ SAUtils | IlluminaConnectedAnnotations - - + +
@@ -16,7 +16,7 @@ To use this subcommands, you have to prepare a json file that will be used as data sources information. Below is tutorial to use this subcommand to generate each data source.

AutoDownloadGenerate ClinVar

Below is the command to use AutoDownloadGenerate for ClinVar to download and generate supplementary files.

dotnet SAUtils.dll AutoDownloadGenerate -s ClinVar -a download,generate -j [path to json] -c [path to cache folder] -r [path to reference folder] -b [path to folder to store downloaded files] -o [path to output folder]

The json file for ClinVar should be formatted like below:

{
"clinvar": {
"baseDirectory": "ClinVar",
"sourceFiles": [
{
"name": "ClinVar",
"description": "A freely accessible, public archive of reports of the relationships among human variations and phenotypes, with supporting evidence",
"files": [
{
"localFileName": "ClinVarFullRelease_00-latest.xml.gz",
"downloadUrl": "https://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/RCV_xml_old_format/ClinVarFullRelease_00-latest.xml.gz",
"md5Url": "https://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/RCV_xml_old_format/ClinVarFullRelease_00-latest.xml.gz.md5"
},
{
"localFileName": "ClinVarVariationRelease_00-latest.xml.gz",
"downloadUrl": "https://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/VCV_xml_old_format/ClinVarVariationRelease_00-latest.xml.gz",
"md5Url": "https://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/VCV_xml_old_format/ClinVarVariationRelease_00-latest.xml.gz.md5"
}
]
}
]
}
}

There is no need to modify the json entry for ClinVar and you can use as it is.

AutoDownloadGenerate ClinGen

dotnet SAUtils.dll AutoDownloadGenerate -s ClinGen -a download,generate -j [path to json] -c [path to cache folder] -r [path to reference folder] -b [path to folder to store downloaded files] -o [path to output folder]

The json file for ClinGen should be formatted like below:

{
"clingen": {
"baseDirectory": "ClinGen",
"sourceFiles": [
{
"name": "ClinGen Dosage Sensitivity Map",
"subDirectory": "DosageSensitivity",
"description": "Dosage sensitivity map from ClinGen (dbVar)",
"files": [
{
"localFileName": "ClinGen_gene_curation_list_GRCh37.tsv",
"downloadUrl": "https://ftp.clinicalgenome.org/ClinGen_gene_curation_list_GRCh37.tsv"
},
{
"localFileName": "ClinGen_gene_curation_list_GRCh38.tsv",
"downloadUrl": "https://ftp.clinicalgenome.org/ClinGen_gene_curation_list_GRCh38.tsv"
},
{
"localFileName": "ClinGen_region_curation_list_GRCh37.tsv",
"downloadUrl": "https://ftp.clinicalgenome.org/ClinGen_region_curation_list_GRCh37.tsv"
},
{
"localFileName": "ClinGen_region_curation_list_GRCh38.tsv",
"downloadUrl": "https://ftp.clinicalgenome.org/ClinGen_region_curation_list_GRCh38.tsv"
}
]
},
{
"name": "ClinGen disease validity curations",
"subDirectory": "GeneDiseaseValidity",
"description": "Disease validity curations from ClinGen (dbVar)",
"files": [
{
"localFileName": "Clingen-Gene-Disease-Summary.csv",
"downloadUrl": "https://search.clinicalgenome.org/kb/gene-validity/download"
}
]
}
]
}
}

There is no need to modify the json entry for ClinGen and you can use as it is.

AutoDownloadGenerate dbSNP

dotnet SAUtils.dll AutoDownloadGenerate -s dbSNP -a download,generate -j [path to json] -c [path to cache folder] -r [path to reference folder] -b [path to folder to store downloaded files] -o [path to output folder]

The json file for dbSNP should be formatted like below:

{
"dbsnp": {
"baseDirectory": "dbSNP",
"sourceFiles": [
{
"name": "dbSNP",
"description": "Identifiers for observed variants",
"version": "156",
"subDirectory": "GRCh37",
"files": [
{
"localFileName": "GCF_000001405.25.gz.tbi",
"downloadUrl": "https://ftp.ncbi.nih.gov/snp/latest_release/VCF/GCF_000001405.25.gz.tbi",
"md5Url": "https://ftp.ncbi.nih.gov/snp/latest_release/VCF/GCF_000001405.25.gz.tbi.md5"
},
{
"localFileName": "GCF_000001405.25.gz",
"downloadUrl": "https://ftp.ncbi.nih.gov/snp/latest_release/VCF/GCF_000001405.25.gz",
"md5Url": "https://ftp.ncbi.nih.gov/snp/latest_release/VCF/GCF_000001405.25.gz.md5"
}
]
},
{
"name": "dbSNP",
"description": "Identifiers for observed variants",
"version": "156",
"subDirectory": "GRCh38",
"files": [
{
"localFileName": "GCF_000001405.40.gz.tbi",
"downloadUrl": "https://ftp.ncbi.nih.gov/snp/latest_release/VCF/GCF_000001405.40.gz.tbi",
"md5Url": "https://ftp.ncbi.nih.gov/snp/latest_release/VCF/GCF_000001405.40.gz.tbi.md5"
},
{
"localFileName": "GCF_000001405.40.gz",
"downloadUrl": "https://ftp.ncbi.nih.gov/snp/latest_release/VCF/GCF_000001405.40.gz",
"md5Url": "https://ftp.ncbi.nih.gov/snp/latest_release/VCF/GCF_000001405.40.gz.md5"
}
]
}
]
}
}

The json above is examplke for dbSNP version 156. If you want to use it for different version, adjust the version number and all entries in files to use the actual URL. If you only want to generate GRCh38, just remove the GRCh37 entries in the sourceFiles.

AutoDownloadGenerate OMIM

dotnet SAUtils.dll AutoDownloadGenerate -s OMIM -a download,generate -j [path to json] -c [path to cache folder] -r [path to reference folder] -b [path to folder to store downloaded files] -o [path to output folder]

The json file for OMIM should be formatted like below:

{
"omim": {
"baseDirectory": "omim",
"sourceFiles": [
{
"name": "OMIM",
"description": "An Online Catalog of Human Genes and Genetic Disorders"
}
]
}
}

There is no need to modify the json entry for OMIM and you can use as it is. You have to export OMIM API key as environment variable with name OmimApiKey.

AutoDownloadGenerate COSMIC

dotnet SAUtils.dll AutoDownloadGenerate -s COSMIC -a download,generate -j [path to json] -c [path to cache folder] -r [path to reference folder] -b [path to folder to store downloaded files] -o [path to output folder]

The json file for COSMIC should be formatted like below:

{
"Cosmic": {
"baseDirectory": "COSMIC",
"sourceFiles": [
{
"name": "COSMIC",
"version": "99",
"description": "the Catalogue Of Somatic Mutations In Cancer"
}
]
}
}

You have to adjust the version entry according to which COSMIC version you want. You also need to have COSMIC credentials and export it as environment variable with name Cosmic_Username and Cosmic_Password

- - + + \ No newline at end of file diff --git a/404.html b/404.html index 48647741..f7539a89 100644 --- a/404.html +++ b/404.html @@ -6,13 +6,13 @@ Page Not Found | IlluminaConnectedAnnotations - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/assets/images/27-nt-deletion-c733fc75acdc0ef64ac7d181d5ff81fe.png b/assets/images/27-nt-deletion-c733fc75acdc0ef64ac7d181d5ff81fe.png new file mode 100644 index 0000000000000000000000000000000000000000..b7fd71d449099363b815c0401bf70ddb17a13de2 GIT binary patch literal 232611 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%0A*RnJVE&)me6F8?}`$KV{Fekt~W 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 ZnqoCI#wt`dcpF2q&Sab-^!( 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

VFDt< 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/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,n){var t={};t["language-"+n]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[n]},t.cdata=/^$/i;var o={"included-cdata":{pattern://i,inside:t}};o["language-"+n]={pattern:/[\s\S]+/,inside:a.languages[n]};var r={};r[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:o},a.languages.insertBefore("markup","cdata",r)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,n){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[n,"language-"+n],inside:a.languages[n]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var n="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",t={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},o={bash:t,environment:{pattern:RegExp("\\$"+n),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+n),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+n),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:o},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:t}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:o},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:o.entity}}],environment:{pattern:RegExp("\\$?"+n),alias:"constant"},variable:o.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},t.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],r=o.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var n=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,t=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return n.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return n.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:n,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return t}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var n=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+n.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+n.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+n.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:n,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var t=e.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(a),function(e){var n,t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:n={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=n,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var o={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:o,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:o,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var n=/#(?!\{).+/,t={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:n,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:t}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:n,interpolation:t}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:t}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var n=/[*&][^\s[\]{},]+/,t=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,o="(?:"+t.source+"(?:[ \t]+"+n.source+")?|"+n.source+"(?:[ \t]+"+t.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),r=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,n){n=(n||"").replace(/m/g,"")+"m";var t=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return o})).replace(/<>/g,(function(){return e}));return RegExp(t,n)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return o}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return o})).replace(/<>/g,(function(){return"(?:"+a+"|"+r+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(r),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:t,important:n,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var n=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function t(e){return e=e.replace(//g,(function(){return n})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var o=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return o})),r=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+r+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+r+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(o),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+r+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(o),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:t(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:t(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:t(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:t(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(n){["url","bold","italic","strike","code-snippet"].forEach((function(t){n!==t&&(e.languages.markdown[n].inside.content.inside[t]=e.languages.markdown[t])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(n){if(n&&"string"!=typeof n)for(var t=0,o=n.length;t",quot:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var n=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),t=0;t0)){var s=m(/^\{$/,/^\}$/);if(-1===s)continue;for(var c=t;c=0&&p(l,"variable-input")}}}}function u(e){return n[t+e]}function d(e,n){n=n||0;for(var t=0;t?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var n=e.languages.javascript["template-string"],t=n.pattern.source,o=n.inside.interpolation,a=o.inside["interpolation-punctuation"],r=o.pattern.source;function i(n,o){if(e.languages[n])return{pattern:RegExp("((?:"+o+")\\s*)"+t),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:n}}}}function s(e,n){return"___"+n.toUpperCase()+"_"+e+"___"}function c(n,t,o){var a={code:n,grammar:t,language:o};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function l(n){var t={};t["interpolation-punctuation"]=a;var r=e.tokenize(n,t);if(3===r.length){var i=[1,1];i.push.apply(i,c(r[1],e.languages.javascript,"javascript")),r.splice.apply(r,i)}return new e.Token("interpolation",r,o.alias,n)}function u(n,t,o){var a=e.tokenize(n,{interpolation:{pattern:RegExp(r),lookbehind:!0}}),i=0,u={},d=c(a.map((function(e){if("string"==typeof e)return e;for(var t,a=e.content;-1!==n.indexOf(t=s(i++,o)););return u[t]=a,t})).join(""),t,o),m=Object.keys(u);return i=0,function e(n){for(var t=0;t=m.length)return;var o=n[t];if("string"==typeof o||"string"==typeof o.content){var a=m[i],r="string"==typeof o?o:o.content,s=r.indexOf(a);if(-1!==s){++i;var c=r.substring(0,s),d=l(u[a]),p=r.substring(s+a.length),f=[];if(c&&f.push(c),f.push(d),p){var h=[p];e(h),f.push.apply(f,h)}"string"==typeof o?(n.splice.apply(n,[t,1].concat(f)),t+=f.length-1):o.content=f}}else{var g=o.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(o,d,"language-"+o,n)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),n].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function m(e){return"string"==typeof e?e:Array.isArray(e)?e.map(m).join(""):m(e.content)}e.hooks.add("after-tokenize",(function(n){n.language in d&&function n(t){for(var o=0,a=t.length;o]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var n=e.languages.extend("typescript",{});delete n["class-name"],e.languages.typescript["class-name"].inside=n,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:n}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function n(e,n){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),n)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:n(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:n(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:n(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var t=["function","function-variable","method","method-variable","property-access"],o=0;o*\.{3}(?:[^{}]|)*\})/.source;function r(e,n){return e=e.replace(//g,(function(){return t})).replace(//g,(function(){return o})).replace(//g,(function(){return a})),RegExp(e,n)}a=r(a).source,e.languages.jsx=e.languages.extend("markup",n),e.languages.jsx.tag.pattern=r(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=n.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:r(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:r(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},s=function(n){for(var t=[],o=0;o0&&t[t.length-1].tagName===i(a.content[0].content[1])&&t.pop():"/>"===a.content[a.content.length-1].content||t.push({tagName:i(a.content[0].content[1]),openedBraces:0}):t.length>0&&"punctuation"===a.type&&"{"===a.content?t[t.length-1].openedBraces++:t.length>0&&t[t.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?t[t.length-1].openedBraces--:r=!0),(r||"string"==typeof a)&&t.length>0&&0===t[t.length-1].openedBraces){var c=i(a);o0&&("string"==typeof n[o-1]||"plain-text"===n[o-1].type)&&(c=i(n[o-1])+c,n.splice(o-1,1),o--),n[o]=new e.Token("plain-text",c,null,c)}a.content&&"string"!=typeof a.content&&s(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var n={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(n).forEach((function(t){var o=n[t],a=[];/^\w+$/.test(t)||a.push(/\w+/.exec(t)[0]),"diff"===t&&a.push("bold"),e.languages.diff[t]={pattern:RegExp("^(?:["+o+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(t)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:n})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function n(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(t,o,a,r){if(t.language===o){var i=t.tokenStack=[];t.code=t.code.replace(a,(function(e){if("function"==typeof r&&!r(e))return e;for(var a,s=i.length;-1!==t.code.indexOf(a=n(o,s));)++s;return i[s]=e,a})),t.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(t,o){if(t.language===o&&t.tokenStack){t.grammar=e.languages[o];var a=0,r=Object.keys(t.tokenStack);!function i(s){for(var c=0;c=r.length);c++){var l=s[c];if("string"==typeof l||l.content&&"string"==typeof l.content){var u=r[a],d=t.tokenStack[u],m="string"==typeof l?l:l.content,p=n(o,u),f=m.indexOf(p);if(f>-1){++a;var h=m.substring(0,f),g=new e.Token(o,e.tokenize(d,t.grammar),"language-"+o,d),v=m.substring(f+p.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof l?s.splice.apply(s,[c,1].concat(b)):l.content=b}}else l.content&&i(l.content)}return s}(t.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(n){e.languages["markup-templating"].buildPlaceholders(n,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(n){e.languages["markup-templating"].tokenizePlaceholders(n,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var n=/\$[-\w]+|#\{\$[-\w]+\}/,t=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:n,operator:t}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:n,operator:t,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var n={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},t={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},o={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:n,number:t,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:n,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:t,punctuation:/[{}()\[\];:,]/};o.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:o}},o.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:o}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:o}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:o}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:o}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:o.interpolation}},rest:o}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:o.interpolation,comment:o.comment,punctuation:/[{},]/}},func:o.func,string:o.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:o.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var n=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",n),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var t=e.languages.tsx.tag;t.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const r=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,n,t)=>{const o=t(9901),a=t(9642),r=new Set;function i(e){void 0===e?e=Object.keys(o.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const n=[...r,...Object.keys(Prism.languages)];a(o,e,n).load((e=>{if(!(e in o.languages))return void(i.silent||console.warn("Language does not exist: "+e));const n="./prism-"+e;delete t.c[t(6500).resolve(n)],delete Prism.languages[e],t(6500)(n),r.add(e)}))}i.silent=!1,e.exports=i},6726:(e,n,t)=>{var o={"./":2885};function a(e){var n=r(e);return t(n)}function r(e){if(!t.o(o,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return o[e]}a.keys=function(){return Object.keys(o)},a.resolve=r,e.exports=a,a.id=6726},6500:(e,n,t)=>{var o={"./":2885};function a(e){var n=r(e);return t(n)}function r(e){if(!t.o(o,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return o[e]}a.keys=function(){return Object.keys(o)},a.resolve=r,e.exports=a,a.id=6500},9642:e=>{"use strict";var n=function(){var e=function(){};function n(e,n){Array.isArray(e)?e.forEach(n):null!=e&&n(e,0)}function t(e){for(var n={},t=0,o=e.length;t "));var s={},c=e[o];if(c){function l(n){if(!(n in e))throw new Error(o+" depends on an unknown component "+n);if(!(n in s))for(var i in a(n,r),s[n]=!0,t[n])s[i]=!0}n(c.require,l),n(c.optional,l),n(c.modify,l)}t[o]=s,r.pop()}}return function(e){var n=t[e];return n||(a(e,o),n=t[e]),n}}function a(e){for(var n in e)return!0;return!1}return function(r,i,s){var c=function(e){var n={};for(var t in e){var o=e[t];for(var a in o)if("meta"!=a){var r=o[a];n[a]="string"==typeof r?{title:r}:r}}return n}(r),l=function(e){var t;return function(o){if(o in e)return o;if(!t)for(var a in t={},e){var r=e[a];n(r&&r.alias,(function(n){if(n in t)throw new Error(n+" cannot be alias for both "+a+" and "+t[n]);if(n in e)throw new Error(n+" cannot be alias of "+a+" because it is a component.");t[n]=a}))}return t[o]||o}}(c);i=i.map(l),s=(s||[]).map(l);var u=t(i),d=t(s);i.forEach((function e(t){var o=c[t];n(o&&o.require,(function(n){n in d||(u[n]=!0,e(n))}))}));for(var m,p=o(c),f=u;a(f);){for(var h in m={},f){var g=c[h];n(g&&g.modify,(function(e){e in d&&(m[e]=!0)}))}for(var v in d)if(!(v in u))for(var b in p(v))if(b in u){m[v]=!0;break}for(var y in f=m)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(n){e.push(n)})),e},load:function(n,t){return function(n,t,o,a){var r=a?a.series:void 0,i=a?a.parallel:e,s={},c={};function l(e){if(e in s)return s[e];c[e]=!0;var a,u=[];for(var d in n(e))d in t&&u.push(d);if(0===u.length)a=o(e);else{var m=i(u.map((function(e){var n=l(e);return delete c[e],n})));r?a=r(m,(function(){return o(e)})):o(e)}return s[e]=a}for(var u in t)l(u);var d=[];for(var m in c)d.push(s[m]);return i(d)}(p,u,n,t)}};return w}}();e.exports=n},2703:(e,n,t)=>{"use strict";var o=t(414);function a(){}function r(){}r.resetWarningCache=a,e.exports=function(){function e(e,n,t,a,r,i){if(i!==o){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function n(){return e}e.isRequired=e;var t={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:r,resetWarningCache:a};return t.PropTypes=t,t}},5697:(e,n,t)=>{e.exports=t(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,n,t)=>{"use strict";var o=t(7294),a=t(7418),r=t(3840);function i(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t

\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[R]=!1}),[]),o.createElement(o.Fragment,null,!f.Z.canUseDOM&&o.createElement(j.Z,null,o.createElement("script",null,N(e))),o.createElement("div",{id:O}))}function F(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:n}}=(0,T.Z)(),{pathname:t}=(0,b.TH)();return n&&t===e?o.createElement(M,null):null}const B=function(e){let{children:n}=e;return n};var U=t(780),z=t(4953);const $=function(){return o.createElement(U.Z,{fallback:z.Z},o.createElement(v.M,null,o.createElement(g.t,null,o.createElement(B,null,o.createElement(F,null),o.createElement(_,{routes:p,delay:1e3},(0,h.Z)(p))))))};const G=function(e){if("undefined"==typeof document)return!1;const n=document.createElement("link");try{if(n.relList&&"function"==typeof n.relList.supports)return n.relList.supports(e)}catch(t){return!1}return!1}("prefetch")?function(e){return new Promise(((n,t)=>{if("undefined"==typeof document)return void t();const o=document.createElement("link");o.setAttribute("rel","prefetch"),o.setAttribute("href",e),o.onload=n,o.onerror=t;(document.getElementsByTagName("head")[0]||document.getElementsByName("script")[0].parentNode).appendChild(o)}))}:function(e){return new Promise(((n,t)=>{const o=new XMLHttpRequest;o.open("GET",e,!0),o.withCredentials=!0,o.onload=()=>{200===o.status?n():t()},o.send(null)}))},q={};const Z=function(e){return new Promise((n=>{q[e]?n():G(e).then((()=>{n(),q[e]=!0})).catch((()=>{}))}))},H={},V={},W=()=>{var e,n;return(null===(e=navigator.connection)||void 0===e?void 0:e.effectiveType.includes("2g"))&&(null===(n=navigator.connection)||void 0===n?void 0:n.saveData)},K={prefetch:e=>{if(!(e=>!W()&&!V[e]&&!H[e])(e))return!1;H[e]=!0;return(0,D.f)(p,e).flatMap((e=>{return n=e.route.path,Object.entries(l).filter((e=>{let[t]=e;return t.replace(/(-[^-]+)$/,"")===n})).flatMap((e=>{let[,n]=e;return Object.values(d(n))}));var n})).forEach((e=>{const n=t.gca(e);n&&!/undefined/.test(n)&&Z(n)})),!0},preload:e=>!!(e=>!W()&&!V[e])(e)&&(V[e]=!0,E(p,e),!0)};if(f.Z.canUseDOM){window.docusaurus=K;const e=a.hydrate;E(p,window.location.pathname).then((()=>{e(o.createElement(r.VK,null,o.createElement($,null)),document.getElementById("__docusaurus"))}))}},780:(e,n,t)=>{"use strict";t.d(n,{Z:()=>s});var o=t(7294),a=t(412),r=t(4953);class i extends o.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){var e;const{children:n}=this.props,{error:t}=this.state;if(t){return(null!==(e=this.props.fallback)&&void 0!==e?e:r.Z)({error:t,tryAgain:()=>this.setState({error:null})})}return n}}const s=i},412:(e,n,t)=>{"use strict";t.d(n,{Z:()=>a});const o=!("undefined"==typeof window||!window.document||!window.document.createElement),a={canUseDOM:o,canUseEventListeners:o&&!(!window.addEventListener&&!window.attachEvent),canUseIntersectionObserver:o&&"IntersectionObserver"in window,canUseViewport:o&&!!window.screen}},2859:(e,n,t)=>{"use strict";t.d(n,{Z:()=>fe});var o,a,r,i,s=t(7294),c=t(5697),l=t.n(c),u=t(3524),d=t.n(u),m=t(9590),p=t.n(m),f=t(7418),h=t.n(f),g="bodyAttributes",v="htmlAttributes",b="titleAttributes",y={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"},w=(Object.keys(y).map((function(e){return y[e]})),"charset"),C="cssText",k="href",A="http-equiv",D="innerHTML",E="itemprop",I="name",S="property",x="rel",_="src",j="target",T={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},O="defaultTitle",P="defer",L="encodeSpecialCharacters",R="onChangeClientState",N="titleTemplate",M=Object.keys(T).reduce((function(e,n){return e[T[n]]=n,e}),{}),F=[y.NOSCRIPT,y.SCRIPT,y.STYLE],B="data-react-helmet",U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},z=function(){function e(e,n){for(var t=0;t=0||Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},q=function(e){return!1===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])?String(e):String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},Z=function(e){var n=Y(e,y.TITLE),t=Y(e,N);if(t&&n)return t.replace(/%s/g,(function(){return Array.isArray(n)?n.join(""):n}));var o=Y(e,O);return n||o||void 0},H=function(e){return Y(e,R)||function(){}},V=function(e,n){return n.filter((function(n){return void 0!==n[e]})).map((function(n){return n[e]})).reduce((function(e,n){return $({},e,n)}),{})},W=function(e,n){return n.filter((function(e){return void 0!==e[y.BASE]})).map((function(e){return e[y.BASE]})).reverse().reduce((function(n,t){if(!n.length)for(var o=Object.keys(t),a=0;a=0;t--){var o=e[t];if(o.hasOwnProperty(n))return o[n]}return null},Q=(o=Date.now(),function(e){var n=Date.now();n-o>16?(o=n,e(n)):setTimeout((function(){Q(e)}),0)}),X=function(e){return clearTimeout(e)},J="undefined"!=typeof window?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||Q:t.g.requestAnimationFrame||Q,ee="undefined"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||X:t.g.cancelAnimationFrame||X,ne=function(e){return console&&"function"==typeof console.warn&&console.warn(e)},te=null,oe=function(e,n){var t=e.baseTag,o=e.bodyAttributes,a=e.htmlAttributes,r=e.linkTags,i=e.metaTags,s=e.noscriptTags,c=e.onChangeClientState,l=e.scriptTags,u=e.styleTags,d=e.title,m=e.titleAttributes;ie(y.BODY,o),ie(y.HTML,a),re(d,m);var p={baseTag:se(y.BASE,t),linkTags:se(y.LINK,r),metaTags:se(y.META,i),noscriptTags:se(y.NOSCRIPT,s),scriptTags:se(y.SCRIPT,l),styleTags:se(y.STYLE,u)},f={},h={};Object.keys(p).forEach((function(e){var n=p[e],t=n.newTags,o=n.oldTags;t.length&&(f[e]=t),o.length&&(h[e]=p[e].oldTags)})),n&&n(),c(e,f,h)},ae=function(e){return Array.isArray(e)?e.join(""):e},re=function(e,n){void 0!==e&&document.title!==e&&(document.title=ae(e)),ie(y.TITLE,n)},ie=function(e,n){var t=document.getElementsByTagName(e)[0];if(t){for(var o=t.getAttribute(B),a=o?o.split(","):[],r=[].concat(a),i=Object.keys(n),s=0;s=0;d--)t.removeAttribute(r[d]);a.length===r.length?t.removeAttribute(B):t.getAttribute(B)!==i.join(",")&&t.setAttribute(B,i.join(","))}},se=function(e,n){var t=document.head||document.querySelector(y.HEAD),o=t.querySelectorAll(e+"["+B+"]"),a=Array.prototype.slice.call(o),r=[],i=void 0;return n&&n.length&&n.forEach((function(n){var t=document.createElement(e);for(var o in n)if(n.hasOwnProperty(o))if(o===D)t.innerHTML=n.innerHTML;else if(o===C)t.styleSheet?t.styleSheet.cssText=n.cssText:t.appendChild(document.createTextNode(n.cssText));else{var s=void 0===n[o]?"":n[o];t.setAttribute(o,s)}t.setAttribute(B,"true"),a.some((function(e,n){return i=n,t.isEqualNode(e)}))?a.splice(i,1):r.push(t)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),r.forEach((function(e){return t.appendChild(e)})),{oldTags:a,newTags:r}},ce=function(e){return Object.keys(e).reduce((function(n,t){var o=void 0!==e[t]?t+'="'+e[t]+'"':""+t;return n?n+" "+o:o}),"")},le=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(n,t){return n[T[t]||t]=e[t],n}),n)},ue=function(e,n,t){switch(e){case y.TITLE:return{toComponent:function(){return e=n.title,t=n.titleAttributes,(o={key:e})[B]=!0,a=le(t,o),[s.createElement(y.TITLE,a,e)];var e,t,o,a},toString:function(){return function(e,n,t,o){var a=ce(t),r=ae(n);return a?"<"+e+" "+B+'="true" '+a+">"+q(r,o)+"":"<"+e+" "+B+'="true">'+q(r,o)+""}(e,n.title,n.titleAttributes,t)}};case g:case v:return{toComponent:function(){return le(n)},toString:function(){return ce(n)}};default:return{toComponent:function(){return function(e,n){return n.map((function(n,t){var o,a=((o={key:t})[B]=!0,o);return Object.keys(n).forEach((function(e){var t=T[e]||e;if(t===D||t===C){var o=n.innerHTML||n.cssText;a.dangerouslySetInnerHTML={__html:o}}else a[t]=n[e]})),s.createElement(e,a)}))}(e,n)},toString:function(){return function(e,n,t){return n.reduce((function(n,o){var a=Object.keys(o).filter((function(e){return!(e===D||e===C)})).reduce((function(e,n){var a=void 0===o[n]?n:n+'="'+q(o[n],t)+'"';return e?e+" "+a:a}),""),r=o.innerHTML||o.cssText||"",i=-1===F.indexOf(e);return n+"<"+e+" "+B+'="true" '+a+(i?"/>":">"+r+"")}),"")}(e,n,t)}}}},de=function(e){var n=e.baseTag,t=e.bodyAttributes,o=e.encode,a=e.htmlAttributes,r=e.linkTags,i=e.metaTags,s=e.noscriptTags,c=e.scriptTags,l=e.styleTags,u=e.title,d=void 0===u?"":u,m=e.titleAttributes;return{base:ue(y.BASE,n,o),bodyAttributes:ue(g,t,o),htmlAttributes:ue(v,a,o),link:ue(y.LINK,r,o),meta:ue(y.META,i,o),noscript:ue(y.NOSCRIPT,s,o),script:ue(y.SCRIPT,c,o),style:ue(y.STYLE,l,o),title:ue(y.TITLE,{title:d,titleAttributes:m},o)}},me=d()((function(e){return{baseTag:W([k,j],e),bodyAttributes:V(g,e),defer:Y(e,P),encode:Y(e,L),htmlAttributes:V(v,e),linkTags:K(y.LINK,[x,k],e),metaTags:K(y.META,[I,w,A,S,E],e),noscriptTags:K(y.NOSCRIPT,[D],e),onChangeClientState:H(e),scriptTags:K(y.SCRIPT,[_,D],e),styleTags:K(y.STYLE,[C],e),title:Z(e),titleAttributes:V(b,e)}}),(function(e){te&&ee(te),e.defer?te=J((function(){oe(e,(function(){te=null}))})):(oe(e),te=null)}),de)((function(){return null})),pe=(a=me,i=r=function(e){function n(){return function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,n),function(e,n){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!n||"object"!=typeof n&&"function"!=typeof n?e:n}(this,e.apply(this,arguments))}return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function, not "+typeof n);e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),n&&(Object.setPrototypeOf?Object.setPrototypeOf(e,n):e.__proto__=n)}(n,e),n.prototype.shouldComponentUpdate=function(e){return!p()(this.props,e)},n.prototype.mapNestedChildrenToProps=function(e,n){if(!n)return null;switch(e.type){case y.SCRIPT:case y.NOSCRIPT:return{innerHTML:n};case y.STYLE:return{cssText:n}}throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},n.prototype.flattenArrayTypeChildren=function(e){var n,t=e.child,o=e.arrayTypeChildren,a=e.newChildProps,r=e.nestedChildren;return $({},o,((n={})[t.type]=[].concat(o[t.type]||[],[$({},a,this.mapNestedChildrenToProps(t,r))]),n))},n.prototype.mapObjectTypeChildren=function(e){var n,t,o=e.child,a=e.newProps,r=e.newChildProps,i=e.nestedChildren;switch(o.type){case y.TITLE:return $({},a,((n={})[o.type]=i,n.titleAttributes=$({},r),n));case y.BODY:return $({},a,{bodyAttributes:$({},r)});case y.HTML:return $({},a,{htmlAttributes:$({},r)})}return $({},a,((t={})[o.type]=$({},r),t))},n.prototype.mapArrayTypeChildrenToProps=function(e,n){var t=$({},n);return Object.keys(e).forEach((function(n){var o;t=$({},t,((o={})[n]=e[n],o))})),t},n.prototype.warnOnInvalidChildren=function(e,n){return!0},n.prototype.mapChildrenToProps=function(e,n){var t=this,o={};return s.Children.forEach(e,(function(e){if(e&&e.props){var a=e.props,r=a.children,i=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(n,t){return n[M[t]||t]=e[t],n}),n)}(G(a,["children"]));switch(t.warnOnInvalidChildren(e,r),e.type){case y.LINK:case y.META:case y.NOSCRIPT:case y.SCRIPT:case y.STYLE:o=t.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:i,nestedChildren:r});break;default:n=t.mapObjectTypeChildren({child:e,newProps:n,newChildProps:i,nestedChildren:r})}}})),n=this.mapArrayTypeChildrenToProps(o,n)},n.prototype.render=function(){var e=this.props,n=e.children,t=G(e,["children"]),o=$({},t);return n&&(o=this.mapChildrenToProps(n,o)),s.createElement(a,o)},z(n,null,[{key:"canUseDOM",set:function(e){a.canUseDOM=e}}]),n}(s.Component),r.propTypes={base:l().object,bodyAttributes:l().object,children:l().oneOfType([l().arrayOf(l().node),l().node]),defaultTitle:l().string,defer:l().bool,encodeSpecialCharacters:l().bool,htmlAttributes:l().object,link:l().arrayOf(l().object),meta:l().arrayOf(l().object),noscript:l().arrayOf(l().object),onChangeClientState:l().func,script:l().arrayOf(l().object),style:l().arrayOf(l().object),title:l().string,titleAttributes:l().object,titleTemplate:l().string},r.defaultProps={defer:!0,encodeSpecialCharacters:!0},r.peek=a.peek,r.rewind=function(){var e=a.rewind();return e||(e=de({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),e},i);pe.renderStatic=pe.rewind;const fe=function(e){return s.createElement(pe,{...e})}},9960:(e,n,t)=>{"use strict";t.d(n,{Z:()=>d});var o=t(7294),a=t(3727),r=t(2263),i=t(3919),s=t(412);const c=(0,o.createContext)({collectLink:()=>{}});var l=t(4996),u=t(8780);const d=function(e){let{isNavLink:n,to:t,href:d,activeClassName:m,isActive:p,"data-noBrokenLinkCheck":f,autoAddBaseUrl:h=!0,...g}=e;var v;const{siteConfig:{trailingSlash:b,baseUrl:y}}=(0,r.Z)(),{withBaseUrl:w}=(0,l.C)(),C=(0,o.useContext)(c),k=t||d,A=(0,i.Z)(k),D=null==k?void 0:k.replace("pathname://","");let E=void 0!==D?(I=D,h&&(e=>e.startsWith("/"))(I)?w(I):I):void 0;var I;E&&A&&(E=(0,u.applyTrailingSlash)(E,{trailingSlash:b,baseUrl:y}));const S=(0,o.useRef)(!1),x=n?a.OL:a.rU,_=s.Z.canUseIntersectionObserver,j=(0,o.useRef)();(0,o.useEffect)((()=>(!_&&A&&null!=E&&window.docusaurus.prefetch(E),()=>{_&&j.current&&j.current.disconnect()})),[j,E,_,A]);const T=null!==(v=null==E?void 0:E.startsWith("#"))&&void 0!==v&&v,O=!E||!A||T;return E&&A&&!T&&!f&&C.collectLink(E),O?o.createElement("a",{href:E,...k&&!A&&{target:"_blank",rel:"noopener noreferrer"},...g}):o.createElement(x,{...g,onMouseEnter:()=>{S.current||null==E||(window.docusaurus.preload(E),S.current=!0)},innerRef:e=>{var n,t;_&&e&&A&&(n=e,t=()=>{null!=E&&window.docusaurus.prefetch(E)},j.current=new window.IntersectionObserver((e=>{e.forEach((e=>{n===e.target&&(e.isIntersecting||e.intersectionRatio>0)&&(j.current.unobserve(n),j.current.disconnect(),t())}))})),j.current.observe(n))},to:E||"",...n&&{isActive:p,activeClassName:m}})}},5999:(e,n,t)=>{"use strict";t.d(n,{Z:()=>u,I:()=>l});var o=t(7294);const a=/{\w+}/g,r="{}";function i(e,n){const t=[],i=e.replace(a,(e=>{const a=e.substring(1,e.length-1),i=null==n?void 0:n[a];if(void 0!==i){const e=o.isValidElement(i)?i:String(i);return t.push(e),r}return e}));return 0===t.length?e:t.every((e=>"string"==typeof e))?i.split(r).reduce(((e,n,o)=>{var a;return e.concat(n).concat(null!==(a=t[o])&&void 0!==a?a:"")}),""):i.split(r).reduce(((e,n,a)=>[...e,o.createElement(o.Fragment,{key:a},n,t[a])]),[])}var s=t(7529);function c(e){let{id:n,message:t}=e;var o,a;if(void 0===n&&void 0===t)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!==(a=null!==(o=s[null!=n?n:t])&&void 0!==o?o:t)&&void 0!==a?a:n}function l(e,n){let{message:t,id:o}=e;return i(c({message:t,id:o}),n)}function u(e){let{children:n,id:t,values:o}=e;if(n&&"string"!=typeof n)throw console.warn("Illegal children",n),new Error("The Docusaurus component only accept simple string values");return i(c({message:n,id:t}),o)}},9913:(e,n,t)=>{"use strict";t.d(n,{_:()=>a,t:()=>r});var o=t(7294);const a=o.createContext(!1);function r(e){let{children:n}=e;const[t,r]=(0,o.useState)(!1);return(0,o.useEffect)((()=>{r(!0)}),[]),o.createElement(a.Provider,{value:t},n)}},9935:(e,n,t)=>{"use strict";t.d(n,{m:()=>o});const o="default"},7041:(e,n,t)=>{"use strict";t.d(n,{_:()=>u,M:()=>d});var o=t(7294),a=t(9782);const r=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/IlluminaConnectedAnnotationsDocumentation/","versions":[{"name":"current","label":"3.24 (unreleased)","isLast":true,"path":"/IlluminaConnectedAnnotationsDocumentation/","mainDocId":"introduction/introduction","docs":[{"id":"core-functionality/canonical-transcripts","path":"/IlluminaConnectedAnnotationsDocumentation/core-functionality/canonical-transcripts","sidebar":"docs"},{"id":"core-functionality/gene-fusions","path":"/IlluminaConnectedAnnotationsDocumentation/core-functionality/gene-fusions","sidebar":"docs"},{"id":"core-functionality/transcript-consequence-impacts","path":"/IlluminaConnectedAnnotationsDocumentation/core-functionality/transcript-consequence-impacts","sidebar":"docs"},{"id":"core-functionality/variant-ids","path":"/IlluminaConnectedAnnotationsDocumentation/core-functionality/variant-ids","sidebar":"docs"},{"id":"data-sources/1000Genomes","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/1000Genomes","sidebar":"docs"},{"id":"data-sources/1000Genomes-snv-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/1000Genomes-snv-json"},{"id":"data-sources/1000Genomes-sv-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/1000Genomes-sv-json"},{"id":"data-sources/amino-acid-conservation","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/amino-acid-conservation","sidebar":"docs"},{"id":"data-sources/amino-acid-conservation-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/amino-acid-conservation-json"},{"id":"data-sources/cancer-hotspots","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/cancer-hotspots","sidebar":"docs"},{"id":"data-sources/clingen","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/clingen","sidebar":"docs"},{"id":"data-sources/clingen-dosage-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/clingen-dosage-json"},{"id":"data-sources/clingen-gene-validity-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/clingen-gene-validity-json"},{"id":"data-sources/clingen-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/clingen-json"},{"id":"data-sources/clinvar","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/clinvar","sidebar":"docs"},{"id":"data-sources/clinvar-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/clinvar-json"},{"id":"data-sources/clinvar-preview","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/clinvar-preview","sidebar":"docs"},{"id":"data-sources/clinvar-preview-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/clinvar-preview-json"},{"id":"data-sources/cosmic","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/cosmic","sidebar":"docs"},{"id":"data-sources/cosmic-cancer-gene-census","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/cosmic-cancer-gene-census"},{"id":"data-sources/cosmic-gene-fusion-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/cosmic-gene-fusion-json"},{"id":"data-sources/cosmic-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/cosmic-json"},{"id":"data-sources/dann","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/dann","sidebar":"docs"},{"id":"data-sources/dann-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/dann-json"},{"id":"data-sources/dbsnp","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/dbsnp","sidebar":"docs"},{"id":"data-sources/dbsnp-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/dbsnp-json"},{"id":"data-sources/decipher","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/decipher","sidebar":"docs"},{"id":"data-sources/decipher-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/decipher-json"},{"id":"data-sources/fusioncatcher","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/fusioncatcher","sidebar":"docs"},{"id":"data-sources/fusioncatcher-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/fusioncatcher-json"},{"id":"data-sources/gerp","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/gerp","sidebar":"docs"},{"id":"data-sources/gerp-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/gerp-json"},{"id":"data-sources/gme","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/gme","sidebar":"docs"},{"id":"data-sources/gme-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/gme-json"},{"id":"data-sources/gnomad","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/gnomad","sidebar":"docs"},{"id":"data-sources/gnomad-lof-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/gnomad-lof-json"},{"id":"data-sources/gnomad-small-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/gnomad-small-variants-json"},{"id":"data-sources/gnomad-structural-variants-data_description","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/gnomad-structural-variants-data_description"},{"id":"data-sources/gnomad-structural-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/gnomad-structural-variants-json"},{"id":"data-sources/gnomad4.0-lof-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/gnomad4.0-lof-json"},{"id":"data-sources/gnomad4.0-small-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/gnomad4.0-small-variants-json"},{"id":"data-sources/gnomad40-structural-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/gnomad40-structural-variants-json"},{"id":"data-sources/mito-heteroplasmy","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/mito-heteroplasmy","sidebar":"docs"},{"id":"data-sources/mitomap","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/mitomap","sidebar":"docs"},{"id":"data-sources/mitomap-small-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/mitomap-small-variants-json"},{"id":"data-sources/mitomap-structural-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/mitomap-structural-variants-json"},{"id":"data-sources/omim","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/omim","sidebar":"docs"},{"id":"data-sources/omim-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/omim-json"},{"id":"data-sources/phylop","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/phylop","sidebar":"docs"},{"id":"data-sources/phylop-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/phylop-json"},{"id":"data-sources/phylopprimate-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/phylopprimate-json"},{"id":"data-sources/primate-ai","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/primate-ai","sidebar":"docs"},{"id":"data-sources/primate-ai-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/primate-ai-json"},{"id":"data-sources/revel","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/revel","sidebar":"docs"},{"id":"data-sources/revel-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/revel-json"},{"id":"data-sources/splice-ai","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/splice-ai","sidebar":"docs"},{"id":"data-sources/splice-ai-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/splice-ai-json"},{"id":"data-sources/topmed","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/topmed","sidebar":"docs"},{"id":"data-sources/topmed-json","path":"/IlluminaConnectedAnnotationsDocumentation/data-sources/topmed-json"},{"id":"file-formats/custom-annotations","path":"/IlluminaConnectedAnnotationsDocumentation/file-formats/custom-annotations","sidebar":"docs"},{"id":"file-formats/illumina-annotator-json-file-format","path":"/IlluminaConnectedAnnotationsDocumentation/file-formats/illumina-annotator-json-file-format","sidebar":"docs"},{"id":"file-formats/illumina-annotator-vcf-file-format","path":"/IlluminaConnectedAnnotationsDocumentation/file-formats/illumina-annotator-vcf-file-format","sidebar":"docs"},{"id":"introduction/dependencies","path":"/IlluminaConnectedAnnotationsDocumentation/introduction/dependencies","sidebar":"docs"},{"id":"introduction/getting-started","path":"/IlluminaConnectedAnnotationsDocumentation/introduction/getting-started","sidebar":"docs"},{"id":"introduction/introduction","path":"/IlluminaConnectedAnnotationsDocumentation/","sidebar":"docs"},{"id":"introduction/licensedContent","path":"/IlluminaConnectedAnnotationsDocumentation/introduction/licensedContent","sidebar":"docs"},{"id":"introduction/parsing-json","path":"/IlluminaConnectedAnnotationsDocumentation/introduction/parsing-json","sidebar":"docs"},{"id":"utilities/jasix","path":"/IlluminaConnectedAnnotationsDocumentation/utilities/jasix","sidebar":"docs"},{"id":"utilities/sautils","path":"/IlluminaConnectedAnnotationsDocumentation/utilities/sautils","sidebar":"docs"}]},{"name":"3.23","label":"3.23","isLast":false,"path":"/IlluminaConnectedAnnotationsDocumentation/3.23","mainDocId":"introduction/introduction","docs":[{"id":"core-functionality/canonical-transcripts","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/core-functionality/canonical-transcripts","sidebar":"docs"},{"id":"core-functionality/gene-fusions","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/core-functionality/gene-fusions","sidebar":"docs"},{"id":"core-functionality/transcript-consequence-impacts","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/core-functionality/transcript-consequence-impacts","sidebar":"docs"},{"id":"core-functionality/variant-ids","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/core-functionality/variant-ids","sidebar":"docs"},{"id":"data-sources/1000Genomes","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/1000Genomes","sidebar":"docs"},{"id":"data-sources/1000Genomes-snv-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/1000Genomes-snv-json"},{"id":"data-sources/1000Genomes-sv-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/1000Genomes-sv-json"},{"id":"data-sources/amino-acid-conservation","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/amino-acid-conservation","sidebar":"docs"},{"id":"data-sources/amino-acid-conservation-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/amino-acid-conservation-json"},{"id":"data-sources/cancer-hotspots","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/cancer-hotspots","sidebar":"docs"},{"id":"data-sources/clingen","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/clingen","sidebar":"docs"},{"id":"data-sources/clingen-dosage-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/clingen-dosage-json"},{"id":"data-sources/clingen-gene-validity-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/clingen-gene-validity-json"},{"id":"data-sources/clingen-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/clingen-json"},{"id":"data-sources/clinvar","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/clinvar","sidebar":"docs"},{"id":"data-sources/clinvar-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/clinvar-json"},{"id":"data-sources/cosmic","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/cosmic","sidebar":"docs"},{"id":"data-sources/cosmic-cancer-gene-census","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/cosmic-cancer-gene-census"},{"id":"data-sources/cosmic-gene-fusion-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/cosmic-gene-fusion-json"},{"id":"data-sources/cosmic-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/cosmic-json"},{"id":"data-sources/dann","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/dann","sidebar":"docs"},{"id":"data-sources/dann-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/dann-json"},{"id":"data-sources/dbsnp","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/dbsnp","sidebar":"docs"},{"id":"data-sources/dbsnp-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/dbsnp-json"},{"id":"data-sources/decipher","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/decipher","sidebar":"docs"},{"id":"data-sources/decipher-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/decipher-json"},{"id":"data-sources/fusioncatcher","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/fusioncatcher","sidebar":"docs"},{"id":"data-sources/fusioncatcher-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/fusioncatcher-json"},{"id":"data-sources/gerp","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/gerp","sidebar":"docs"},{"id":"data-sources/gerp-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/gerp-json"},{"id":"data-sources/gme","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/gme","sidebar":"docs"},{"id":"data-sources/gme-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/gme-json"},{"id":"data-sources/gnomad","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/gnomad","sidebar":"docs"},{"id":"data-sources/gnomad-lof-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/gnomad-lof-json"},{"id":"data-sources/gnomad-small-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/gnomad-small-variants-json"},{"id":"data-sources/gnomad-structural-variants-data_description","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/gnomad-structural-variants-data_description"},{"id":"data-sources/gnomad-structural-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/gnomad-structural-variants-json"},{"id":"data-sources/mito-heteroplasmy","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/mito-heteroplasmy","sidebar":"docs"},{"id":"data-sources/mitomap","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/mitomap","sidebar":"docs"},{"id":"data-sources/mitomap-small-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/mitomap-small-variants-json"},{"id":"data-sources/mitomap-structural-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/mitomap-structural-variants-json"},{"id":"data-sources/omim","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/omim","sidebar":"docs"},{"id":"data-sources/omim-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/omim-json"},{"id":"data-sources/phylop","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/phylop","sidebar":"docs"},{"id":"data-sources/phylop-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/phylop-json"},{"id":"data-sources/phylopprimate-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/phylopprimate-json"},{"id":"data-sources/primate-ai","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/primate-ai","sidebar":"docs"},{"id":"data-sources/primate-ai-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/primate-ai-json"},{"id":"data-sources/revel","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/revel","sidebar":"docs"},{"id":"data-sources/revel-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/revel-json"},{"id":"data-sources/splice-ai","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/splice-ai","sidebar":"docs"},{"id":"data-sources/splice-ai-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/splice-ai-json"},{"id":"data-sources/topmed","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/topmed","sidebar":"docs"},{"id":"data-sources/topmed-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/data-sources/topmed-json"},{"id":"file-formats/custom-annotations","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/file-formats/custom-annotations","sidebar":"docs"},{"id":"file-formats/illumina-annotator-json-file-format","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/file-formats/illumina-annotator-json-file-format","sidebar":"docs"},{"id":"introduction/dependencies","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/introduction/dependencies","sidebar":"docs"},{"id":"introduction/getting-started","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/introduction/getting-started","sidebar":"docs"},{"id":"introduction/introduction","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/","sidebar":"docs"},{"id":"introduction/licensedContent","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/introduction/licensedContent","sidebar":"docs"},{"id":"introduction/parsing-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/introduction/parsing-json","sidebar":"docs"},{"id":"utilities/jasix","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/utilities/jasix","sidebar":"docs"},{"id":"utilities/sautils","path":"/IlluminaConnectedAnnotationsDocumentation/3.23/utilities/sautils","sidebar":"docs"}]},{"name":"3.22","label":"3.22","isLast":false,"path":"/IlluminaConnectedAnnotationsDocumentation/3.22","mainDocId":"introduction/introduction","docs":[{"id":"core-functionality/canonical-transcripts","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/core-functionality/canonical-transcripts","sidebar":"docs"},{"id":"core-functionality/gene-fusions","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/core-functionality/gene-fusions","sidebar":"docs"},{"id":"core-functionality/transcript-consequence-impacts","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/core-functionality/transcript-consequence-impacts","sidebar":"docs"},{"id":"core-functionality/variant-ids","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/core-functionality/variant-ids","sidebar":"docs"},{"id":"data-sources/1000Genomes","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/1000Genomes","sidebar":"docs"},{"id":"data-sources/1000Genomes-snv-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/1000Genomes-snv-json"},{"id":"data-sources/1000Genomes-sv-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/1000Genomes-sv-json"},{"id":"data-sources/amino-acid-conservation","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/amino-acid-conservation","sidebar":"docs"},{"id":"data-sources/amino-acid-conservation-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/amino-acid-conservation-json"},{"id":"data-sources/cancer-hotspots","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/cancer-hotspots","sidebar":"docs"},{"id":"data-sources/clingen","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/clingen","sidebar":"docs"},{"id":"data-sources/clingen-dosage-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/clingen-dosage-json"},{"id":"data-sources/clingen-gene-validity-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/clingen-gene-validity-json"},{"id":"data-sources/clingen-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/clingen-json"},{"id":"data-sources/clinvar","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/clinvar","sidebar":"docs"},{"id":"data-sources/clinvar-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/clinvar-json"},{"id":"data-sources/cosmic","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/cosmic","sidebar":"docs"},{"id":"data-sources/cosmic-cancer-gene-census","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/cosmic-cancer-gene-census"},{"id":"data-sources/cosmic-gene-fusion-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/cosmic-gene-fusion-json"},{"id":"data-sources/cosmic-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/cosmic-json"},{"id":"data-sources/dann","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/dann","sidebar":"docs"},{"id":"data-sources/dann-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/dann-json"},{"id":"data-sources/dbsnp","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/dbsnp","sidebar":"docs"},{"id":"data-sources/dbsnp-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/dbsnp-json"},{"id":"data-sources/decipher","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/decipher","sidebar":"docs"},{"id":"data-sources/decipher-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/decipher-json"},{"id":"data-sources/fusioncatcher","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/fusioncatcher","sidebar":"docs"},{"id":"data-sources/fusioncatcher-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/fusioncatcher-json"},{"id":"data-sources/gerp","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/gerp","sidebar":"docs"},{"id":"data-sources/gerp-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/gerp-json"},{"id":"data-sources/gme","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/gme","sidebar":"docs"},{"id":"data-sources/gme-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/gme-json"},{"id":"data-sources/gnomad","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/gnomad","sidebar":"docs"},{"id":"data-sources/gnomad-lof-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/gnomad-lof-json"},{"id":"data-sources/gnomad-small-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/gnomad-small-variants-json"},{"id":"data-sources/gnomad-structural-variants-data_description","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/gnomad-structural-variants-data_description"},{"id":"data-sources/gnomad-structural-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/gnomad-structural-variants-json"},{"id":"data-sources/mito-heteroplasmy","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/mito-heteroplasmy","sidebar":"docs"},{"id":"data-sources/mitomap","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/mitomap","sidebar":"docs"},{"id":"data-sources/mitomap-small-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/mitomap-small-variants-json"},{"id":"data-sources/mitomap-structural-variants-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/mitomap-structural-variants-json"},{"id":"data-sources/omim","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/omim","sidebar":"docs"},{"id":"data-sources/omim-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/omim-json"},{"id":"data-sources/phylop","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/phylop","sidebar":"docs"},{"id":"data-sources/phylop-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/phylop-json"},{"id":"data-sources/primate-ai","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/primate-ai","sidebar":"docs"},{"id":"data-sources/primate-ai-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/primate-ai-json"},{"id":"data-sources/revel","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/revel","sidebar":"docs"},{"id":"data-sources/revel-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/revel-json"},{"id":"data-sources/splice-ai","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/splice-ai","sidebar":"docs"},{"id":"data-sources/splice-ai-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/splice-ai-json"},{"id":"data-sources/topmed","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/topmed","sidebar":"docs"},{"id":"data-sources/topmed-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/data-sources/topmed-json"},{"id":"file-formats/custom-annotations","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/file-formats/custom-annotations","sidebar":"docs"},{"id":"file-formats/illumina-annotator-json-file-format","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/file-formats/illumina-annotator-json-file-format","sidebar":"docs"},{"id":"introduction/dependencies","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/introduction/dependencies","sidebar":"docs"},{"id":"introduction/getting-started","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/introduction/getting-started","sidebar":"docs"},{"id":"introduction/introduction","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/","sidebar":"docs"},{"id":"introduction/parsing-json","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/introduction/parsing-json","sidebar":"docs"},{"id":"utilities/jasix","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/utilities/jasix","sidebar":"docs"},{"id":"utilities/sautils","path":"/IlluminaConnectedAnnotationsDocumentation/3.22/utilities/sautils","sidebar":"docs"}]}]}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr"}}}');var s=t(7529);const c=JSON.parse('{"docusaurusVersion":"2.0.0-beta.13","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.0.0-beta.13"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.0.0-beta.13"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.0.0-beta.13"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.0.0-beta.13"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.0.0-beta.13"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.0.0-beta.13"}}}'),l={siteConfig:a.default,siteMetadata:c,globalData:r,i18n:i,codeTranslations:s},u=o.createContext(l);function d(e){let{children:n}=e;return o.createElement(u.Provider,{value:l},n)}},3919:(e,n,t)=>{"use strict";function o(e){return!0===/^(\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!o(e)}t.d(n,{Z:()=>a,b:()=>o})},6291:(e,n,t)=>{"use strict";t.d(n,{Z:()=>o});const o=t(8790).H},8143:(e,n,t)=>{"use strict";t.r(n),t.d(n,{BrowserRouter:()=>o.VK,HashRouter:()=>o.UT,Link:()=>o.rU,MemoryRouter:()=>o.VA,NavLink:()=>o.OL,Prompt:()=>o.NL,Redirect:()=>o.l_,Route:()=>o.AW,Router:()=>o.F0,StaticRouter:()=>o.gx,Switch:()=>o.rs,generatePath:()=>o.Gn,matchPath:()=>o.LX,useHistory:()=>o.k6,useLocation:()=>o.TH,useParams:()=>o.UO,useRouteMatch:()=>o.$B,withRouter:()=>o.EN});var o=t(3727)},4996:(e,n,t)=>{"use strict";t.d(n,{C:()=>r,Z:()=>i});var o=t(2263),a=t(3919);function r(){const{siteConfig:{baseUrl:e="/",url:n}={}}=(0,o.Z)();return{withBaseUrl:(t,o)=>function(e,n,t,o){let{forcePrependBaseUrl:r=!1,absolute:i=!1}=void 0===o?{}:o;if(!t)return t;if(t.startsWith("#"))return t;if((0,a.b)(t))return t;if(r)return n+t;const s=t.startsWith(n)?t:n+t.replace(/^\//,"");return i?e+s:s}(n,e,t,o)}}function i(e,n){void 0===n&&(n={});const{withBaseUrl:t}=r();return t(e,n)}},2263:(e,n,t)=>{"use strict";t.d(n,{Z:()=>r});var o=t(7294),a=t(7041);const r=function(){return(0,o.useContext)(a._)}},8084:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>r,useAllPluginInstancesData:()=>i,usePluginData:()=>s});var o=t(2263),a=t(9935);function r(){const{globalData:e}=(0,o.Z)();if(!e)throw new Error("Docusaurus global data not found.");return e}function i(e){const n=r()[e];if(!n)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function s(e,n){void 0===n&&(n=a.m);const t=i(e)[n];if(!t)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${n}".`);return t}},2389:(e,n,t)=>{"use strict";t.d(n,{Z:()=>r});var o=t(7294),a=t(9913);function r(){return(0,o.useContext)(a._)}},4953:(e,n,t)=>{"use strict";t.d(n,{Z:()=>s});var o=t(7294),a=t(8882),r=t(780);function i(e){let{error:n,tryAgain:t}=e;return o.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},o.createElement("h1",null,"This page crashed."),o.createElement("p",null,n.message),o.createElement("button",{type:"button",onClick:t},"Try again"))}const s=function(e){let{error:n,tryAgain:t}=e;return o.createElement(r.Z,{fallback:()=>o.createElement(i,{error:n,tryAgain:t})},o.createElement(a.Z,{title:"Page Error"},o.createElement(i,{error:n,tryAgain:t})))}},8408:(e,n,t)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getDocVersionSuggestions=n.getActiveDocContext=n.getActiveVersion=n.getLatestVersion=n.getActivePlugin=void 0;const o=t(8143);n.getActivePlugin=function(e,n,t){void 0===t&&(t={});const a=Object.entries(e).find((e=>{let[t,a]=e;return!!(0,o.matchPath)(n,{path:a.path,exact:!1,strict:!1})})),r=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!r&&t.failfast)throw new Error(`Can't find active docs plugin for "${n}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return r};n.getLatestVersion=e=>e.versions.find((e=>e.isLast));n.getActiveVersion=(e,t)=>{const a=(0,n.getLatestVersion)(e);return[...e.versions.filter((e=>e!==a)),a].find((e=>!!(0,o.matchPath)(t,{path:e.path,exact:!1,strict:!1})))};n.getActiveDocContext=(e,t)=>{const a=(0,n.getActiveVersion)(e,t),r=null==a?void 0:a.docs.find((e=>!!(0,o.matchPath)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:a,activeDoc:r,alternateDocVersions:r?function(n){const t={};return e.versions.forEach((e=>{e.docs.forEach((o=>{o.id===n&&(t[e.name]=o)}))})),t}(r.id):{}}};n.getDocVersionSuggestions=(e,t)=>{const o=(0,n.getLatestVersion)(e),a=(0,n.getActiveDocContext)(e,t);return{latestDocSuggestion:null==a?void 0:a.alternateDocVersions[o.name],latestVersionSuggestion:o}}},6730:(e,n,t)=>{"use strict";n.Jo=n.Iw=n.zu=n.yW=n.gB=n.WS=n.gA=n.zh=n._r=void 0;const o=t(7582),a=t(8143),r=(0,o.__importStar)(t(8084)),i=t(8408),s={};n._r=()=>{var e;return null!==(e=(0,r.default)()["docusaurus-plugin-content-docs"])&&void 0!==e?e:s};n.zh=e=>(0,r.usePluginData)("docusaurus-plugin-content-docs",e);n.gA=function(e){void 0===e&&(e={});const t=(0,n._r)(),{pathname:o}=(0,a.useLocation)();return(0,i.getActivePlugin)(t,o,e)};n.WS=function(e){void 0===e&&(e={});const t=(0,n.gA)(e),{pathname:o}=(0,a.useLocation)();if(t){return{activePlugin:t,activeVersion:(0,i.getActiveVersion)(t.pluginData,o)}}};n.gB=e=>(0,n.zh)(e).versions;n.yW=e=>{const t=(0,n.zh)(e);return(0,i.getLatestVersion)(t)};n.zu=e=>{const t=(0,n.zh)(e),{pathname:o}=(0,a.useLocation)();return(0,i.getActiveVersion)(t,o)};n.Iw=e=>{const t=(0,n.zh)(e),{pathname:o}=(0,a.useLocation)();return(0,i.getActiveDocContext)(t,o)};n.Jo=e=>{const t=(0,n.zh)(e),{pathname:o}=(0,a.useLocation)();return(0,i.getDocVersionSuggestions)(t,o)}},541:(e,n,t)=>{"use strict";t.d(n,{Z:()=>r});var o=t(7294);const a="iconExternalLink_wgqa";const r=function(e){let{width:n=13.5,height:t=13.5}=e;return o.createElement("svg",{width:n,height:t,"aria-hidden":"true",viewBox:"0 0 24 24",className:a},o.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},8882:(e,n,t)=>{"use strict";t.d(n,{Z:()=>Ee});var o=t(7294),a=t(6010),r=t(780),i=t(6550),s=t(5999),c=t(3810);const l="skipToContent_OuoZ";function u(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}const d=function(){const e=(0,o.useRef)(null),{action:n}=(0,i.k6)();return(0,c.SL)((t=>{let{location:o}=t;e.current&&!o.hash&&"PUSH"===n&&u(e.current)})),o.createElement("div",{ref:e},o.createElement("a",{href:"#",className:l,onClick:e=>{e.preventDefault();const n=document.querySelector("main:first-of-type")||document.querySelector(".main-wrapper");n&&u(n)}},o.createElement(s.Z,{id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"},"Skip to main content")))};var m=t(7462);function p(e){let{width:n=21,height:t=21,color:a="currentColor",strokeWidth:r=1.2,className:i,...s}=e;return o.createElement("svg",(0,m.Z)({viewBox:"0 0 15 15",width:n,height:t},s),o.createElement("g",{stroke:a,strokeWidth:r},o.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const f="announcementBar_axC9",h="announcementBarPlaceholder_xYHE",g="announcementBarClose_A3A1",v="announcementBarContent_6uhP";const b=function(){const{isActive:e,close:n}=(0,c.nT)(),{announcementBar:t}=(0,c.LU)();if(!e)return null;const{content:r,backgroundColor:i,textColor:l,isCloseable:u}=t;return o.createElement("div",{className:f,style:{backgroundColor:i,color:l},role:"banner"},u&&o.createElement("div",{className:h}),o.createElement("div",{className:v,dangerouslySetInnerHTML:{__html:r}}),u?o.createElement("button",{type:"button",className:(0,a.Z)("clean-btn close",g),onClick:n,"aria-label":(0,s.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},o.createElement(p,{width:14,height:14,strokeWidth:3.1})):null)};var y=t(9166),w=t(2389);const C="toggle_iYfV",k="toggleScreenReader_h9qa",A="toggleDisabled_xj38",D="toggleTrack_t-f2",E="toggleTrackCheck_mk7D",I="toggleChecked_a04y",S="toggleTrackX_dm8H",x="toggleTrackThumb_W6To",_="toggleFocused_pRSw",j="toggleIcon_pHJ9",T=(0,o.memo)((e=>{let{className:n,switchConfig:t,checked:r,disabled:i,onChange:s}=e;const{darkIcon:c,darkIconStyle:l,lightIcon:u,lightIconStyle:d}=t,[m,p]=(0,o.useState)(r),[f,h]=(0,o.useState)(!1),g=(0,o.useRef)(null);return o.createElement("div",{className:(0,a.Z)(C,n,{[I]:m,[_]:f,[A]:i})},o.createElement("div",{className:D,role:"button",tabIndex:-1,onClick:()=>g.current?.click()},o.createElement("div",{className:E},o.createElement("span",{className:j,style:l},c)),o.createElement("div",{className:S},o.createElement("span",{className:j,style:d},u)),o.createElement("div",{className:x})),o.createElement("input",{ref:g,checked:m,type:"checkbox",className:k,"aria-label":"Switch between dark and light mode",onChange:s,onClick:()=>p(!m),onFocus:()=>h(!0),onBlur:()=>h(!1),onKeyDown:e=>{"Enter"===e.key&&g.current?.click()}}))}));function O(e){const{colorMode:{switchConfig:n}}=(0,c.LU)(),t=(0,w.Z)();return o.createElement(T,(0,m.Z)({switchConfig:n,disabled:!t},e))}var P=t(5350);const L=e=>{const[n,t]=(0,o.useState)(e),a=(0,o.useRef)(!1),r=(0,o.useRef)(0),i=(0,o.useCallback)((e=>{null!==e&&(r.current=e.getBoundingClientRect().height)}),[]);return(0,c.RF)(((n,o)=>{if(!e)return;const i=n.scrollY;if(i=s?t(!1):i+l{if(e)return n.location.hash?(a.current=!0,void t(!1)):void t(!0)})),{navbarRef:i,isNavbarVisible:n}};const R=function(e){void 0===e&&(e=!0),(0,o.useEffect)((()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[e])};var N=t(3783),M=t(907),F=t(2207),B=t(5537);const U=function(e){let{width:n=30,height:t=30,className:a,...r}=e;return o.createElement("svg",(0,m.Z)({className:a,width:n,height:t,viewBox:"0 0 30 30","aria-hidden":"true"},r),o.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))},z={toggle:"toggle_2i4l",navbarHideable:"navbarHideable_RReh",navbarHidden:"navbarHidden_FBwS",navbarSidebarToggle:"navbarSidebarToggle_AVbO"},$="right";function G(){return(0,c.LU)().navbar.items}function q(){const{colorMode:{disableSwitch:e}}=(0,c.LU)(),{isDarkTheme:n,setLightTheme:t,setDarkTheme:a}=(0,P.Z)();return{isDarkTheme:n,toggle:(0,o.useCallback)((e=>e.target.checked?a():t()),[t,a]),disabled:e}}function Z(e){let{sidebarShown:n,toggleSidebar:t}=e;R(n);const r=G(),i=q(),l=function(e){let{sidebarShown:n,toggleSidebar:t}=e;const a=(0,c.g8)()?.({toggleSidebar:t}),r=(0,c.D9)(a),[i,s]=(0,o.useState)((()=>!1));(0,o.useEffect)((()=>{a&&!r&&s(!0)}),[a,r]);const l=!!a;return(0,o.useEffect)((()=>{l?n||s(!0):s(!1)}),[n,l]),{shown:i,hide:(0,o.useCallback)((()=>{s(!1)}),[]),content:a}}({sidebarShown:n,toggleSidebar:t});return o.createElement("div",{className:"navbar-sidebar"},o.createElement("div",{className:"navbar-sidebar__brand"},o.createElement(B.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title"}),!i.disabled&&o.createElement(O,{className:z.navbarSidebarToggle,checked:i.isDarkTheme,onChange:i.toggle}),o.createElement("button",{type:"button",className:"clean-btn navbar-sidebar__close",onClick:t},o.createElement(p,{color:"var(--ifm-color-emphasis-600)",className:z.navbarSidebarCloseSvg}))),o.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":l.shown})},o.createElement("div",{className:"navbar-sidebar__item menu"},o.createElement("ul",{className:"menu__list"},r.map(((e,n)=>o.createElement(F.Z,(0,m.Z)({mobile:!0},e,{onClick:t,key:n})))))),o.createElement("div",{className:"navbar-sidebar__item menu"},r.length>0&&o.createElement("button",{type:"button",className:"clean-btn navbar-sidebar__back",onClick:l.hide},o.createElement(s.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu")),l.content)))}const H=function(){const{navbar:{hideOnScroll:e,style:n}}=(0,c.LU)(),t=function(){const e=(0,N.Z)(),n="mobile"===e,[t,a]=(0,o.useState)(!1);(0,c.Rb)((()=>{if(t)return a(!1),!1}));const r=(0,o.useCallback)((()=>{a((e=>!e))}),[]);return(0,o.useEffect)((()=>{"desktop"===e&&a(!1)}),[e]),{shouldRender:n,toggle:r,shown:t}}(),r=q(),i=(0,M.gA)(),{navbarRef:s,isNavbarVisible:l}=L(e),u=G(),d=u.some((e=>"search"===e.type)),{leftItems:p,rightItems:f}=function(e){return{leftItems:e.filter((e=>"left"===(e.position??$))),rightItems:e.filter((e=>"right"===(e.position??$)))}}(u);return o.createElement("nav",{ref:s,className:(0,a.Z)("navbar","navbar--fixed-top",{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":t.shown,[z.navbarHideable]:e,[z.navbarHidden]:e&&!l})},o.createElement("div",{className:"navbar__inner"},o.createElement("div",{className:"navbar__items"},(u?.length>0||i)&&o.createElement("button",{"aria-label":"Navigation bar toggle",className:"navbar__toggle clean-btn",type:"button",tabIndex:0,onClick:t.toggle,onKeyDown:t.toggle},o.createElement(U,null)),o.createElement(B.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title"}),p.map(((e,n)=>o.createElement(F.Z,(0,m.Z)({},e,{key:n}))))),o.createElement("div",{className:"navbar__items navbar__items--right"},f.map(((e,n)=>o.createElement(F.Z,(0,m.Z)({},e,{key:n})))),!r.disabled&&o.createElement(O,{className:z.toggle,checked:r.isDarkTheme,onChange:r.toggle}),!d&&o.createElement(y.Z,null))),o.createElement("div",{role:"presentation",className:"navbar-sidebar__backdrop",onClick:t.toggle}),t.shouldRender&&o.createElement(Z,{sidebarShown:t.shown,toggleSidebar:t.toggle}))};var V=t(9960),W=t(4996),K=t(3919);const Y="footerLogoLink_SRtH";var Q=t(9750),X=t(541);function J(e){let{to:n,href:t,label:a,prependBaseUrlToHref:r,...i}=e;const s=(0,W.Z)(n),c=(0,W.Z)(t,{forcePrependBaseUrl:!0});return o.createElement(V.Z,(0,m.Z)({className:"footer__link-item"},t?{href:r?c:t}:{to:s},i),t&&!(0,K.Z)(t)?o.createElement("span",null,a,o.createElement(X.Z,null)):a)}function ee(e){let{sources:n,alt:t,width:a,height:r}=e;return o.createElement(Q.Z,{className:"footer__logo",alt:t,sources:n,width:a,height:r})}const ne=function(){const{footer:e}=(0,c.LU)(),{copyright:n,links:t=[],logo:r={}}=e||{},i={light:(0,W.Z)(r.src),dark:(0,W.Z)(r.srcDark||r.src)};return e?o.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===e.style})},o.createElement("div",{className:"container"},t&&t.length>0&&o.createElement("div",{className:"row footer__links"},t.map(((e,n)=>o.createElement("div",{key:n,className:"col footer__col"},null!=e.title?o.createElement("div",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?o.createElement("ul",{className:"footer__items"},e.items.map(((e,n)=>e.html?o.createElement("li",{key:n,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):o.createElement("li",{key:e.href||e.to,className:"footer__item"},o.createElement(J,e))))):null)))),(r||n)&&o.createElement("div",{className:"footer__bottom text--center"},r&&(r.src||r.srcDark)&&o.createElement("div",{className:"margin-bottom--sm"},r.href?o.createElement(V.Z,{href:r.href,className:Y},o.createElement(ee,{alt:r.alt,sources:i,width:r.width,height:r.height})):o.createElement(ee,{alt:r.alt,sources:i})),n?o.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:n}}):null))):null};var te=t(412);const oe=(0,c.WA)("theme"),ae="light",re="dark",ie=e=>e===re?re:ae,se=e=>{(0,c.WA)("theme").set(ie(e))},ce=()=>{const{colorMode:{defaultMode:e,disableSwitch:n,respectPrefersColorScheme:t}}=(0,c.LU)(),[a,r]=(0,o.useState)((e=>te.Z.canUseDOM?ie(document.documentElement.getAttribute("data-theme")):ie(e))(e)),i=(0,o.useCallback)((()=>{r(ae),se(ae)}),[]),s=(0,o.useCallback)((()=>{r(re),se(re)}),[]);return(0,o.useEffect)((()=>{document.documentElement.setAttribute("data-theme",ie(a))}),[a]),(0,o.useEffect)((()=>{if(!n)try{const e=oe.get();null!==e&&r(ie(e))}catch(e){console.error(e)}}),[n,r]),(0,o.useEffect)((()=>{n&&!t||window.matchMedia("(prefers-color-scheme: dark)").addListener((e=>{let{matches:n}=e;r(n?re:ae)}))}),[n,t]),{isDarkTheme:a===re,setLightTheme:i,setDarkTheme:s}};var le=t(2924);const ue=function(e){const{isDarkTheme:n,setLightTheme:t,setDarkTheme:a}=ce(),r=(0,o.useMemo)((()=>({isDarkTheme:n,setLightTheme:t,setDarkTheme:a})),[n,t,a]);return o.createElement(le.Z.Provider,{value:r},e.children)},de="docusaurus.tab.",me=()=>{const[e,n]=(0,o.useState)({}),t=(0,o.useCallback)(((e,n)=>{(0,c.WA)(`${de}${e}`).set(n)}),[]);return(0,o.useEffect)((()=>{try{const e={};(0,c._f)().forEach((n=>{if(n.startsWith(de)){const t=n.substring(15);e[t]=(0,c.WA)(n).get()}})),n(e)}catch(e){console.error(e)}}),[]),{tabGroupChoices:e,setTabGroupChoices:(e,o)=>{n((n=>({...n,[e]:o}))),t(e,o)}}},pe=(0,o.createContext)(void 0);const fe=function(e){const{tabGroupChoices:n,setTabGroupChoices:t}=me(),a=(0,o.useMemo)((()=>({tabGroupChoices:n,setTabGroupChoices:t})),[n,t]);return o.createElement(pe.Provider,{value:a},e.children)};function he(e){let{children:n}=e;return o.createElement(ue,null,o.createElement(c.pl,null,o.createElement(fe,null,o.createElement(c.OC,null,o.createElement(c.L5,null,o.createElement(c.Cn,null,n))))))}var ge=t(2859),ve=t(2263);const be=function(e){let{locale:n,version:t,tag:a}=e;const r=n;return o.createElement(ge.Z,null,r&&o.createElement("meta",{name:"docsearch:language",content:r}),t&&o.createElement("meta",{name:"docsearch:version",content:t}),a&&o.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))};var ye=t(1217);function we(){const{i18n:{defaultLocale:e,locales:n}}=(0,ve.Z)(),t=(0,c.l5)();return o.createElement(ge.Z,null,n.map((e=>o.createElement("link",{key:e,rel:"alternate",href:t.createUrl({locale:e,fullyQualified:!0}),hrefLang:e}))),o.createElement("link",{rel:"alternate",href:t.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function Ce(e){let{permalink:n}=e;const{siteConfig:{url:t}}=(0,ve.Z)(),a=function(){const{siteConfig:{url:e}}=(0,ve.Z)(),{pathname:n}=(0,i.TH)();return e+(0,W.Z)(n)}(),r=n?`${t}${n}`:a;return o.createElement(ge.Z,null,o.createElement("meta",{property:"og:url",content:r}),o.createElement("link",{rel:"canonical",href:r}))}function ke(e){const{siteConfig:{favicon:n},i18n:{currentLocale:t,localeConfigs:a}}=(0,ve.Z)(),{metadata:r,image:i}=(0,c.LU)(),{title:s,description:l,image:u,keywords:d,searchMetadata:p}=e,f=(0,W.Z)(n),h=(0,c.pe)(s),g=t,v=a[t].direction;return o.createElement(o.Fragment,null,o.createElement(ge.Z,null,o.createElement("html",{lang:g,dir:v}),n&&o.createElement("link",{rel:"icon",href:f}),o.createElement("title",null,h),o.createElement("meta",{property:"og:title",content:h}),o.createElement("meta",{name:"twitter:card",content:"summary_large_image"})),i&&o.createElement(ye.Z,{image:i}),u&&o.createElement(ye.Z,{image:u}),o.createElement(ye.Z,{description:l,keywords:d}),o.createElement(Ce,null),o.createElement(we,null),o.createElement(be,(0,m.Z)({tag:c.HX,locale:t},p)),o.createElement(ge.Z,null,r.map(((e,n)=>o.createElement("meta",(0,m.Z)({key:`metadata_${n}`},e))))))}const Ae=function(){(0,o.useEffect)((()=>{const e="navigation-with-keyboard";function n(n){"keydown"===n.type&&"Tab"===n.key&&document.body.classList.add(e),"mousedown"===n.type&&document.body.classList.remove(e)}return document.addEventListener("keydown",n),document.addEventListener("mousedown",n),()=>{document.body.classList.remove(e),document.removeEventListener("keydown",n),document.removeEventListener("mousedown",n)}}),[])};function De(e){let{error:n,tryAgain:t}=e;return o.createElement("main",{className:"container margin-vert--xl"},o.createElement("div",{className:"row"},o.createElement("div",{className:"col col--6 col--offset-3"},o.createElement("h1",{className:"hero__title"},o.createElement(s.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),o.createElement("p",null,n.message),o.createElement("div",null,o.createElement("button",{type:"button",onClick:t},o.createElement(s.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}const Ee=function(e){const{children:n,noFooter:t,wrapperClassName:i,pageClassName:s}=e;return Ae(),o.createElement(he,null,o.createElement(ke,e),o.createElement(d,null),o.createElement(b,null),o.createElement(H,null),o.createElement("div",{className:(0,a.Z)(c.kM.wrapper.main,i,s)},o.createElement(r.Z,{fallback:De},n)),!t&&o.createElement(ne,null))}},5537:(e,n,t)=>{"use strict";t.d(n,{Z:()=>u});var o=t(7462),a=t(7294),r=t(9960),i=t(9750),s=t(4996),c=t(2263),l=t(3810);const u=function(e){const{siteConfig:{title:n}}=(0,c.Z)(),{navbar:{title:t,logo:u={src:""}}}=(0,l.LU)(),{imageClassName:d,titleClassName:m,...p}=e,f=(0,s.Z)(u.href||"/"),h={light:(0,s.Z)(u.src),dark:(0,s.Z)(u.srcDark||u.src)},g=a.createElement(i.Z,{sources:h,height:u.height,width:u.width,alt:u.alt||t||n});return a.createElement(r.Z,(0,o.Z)({to:f},p,u.target&&{target:u.target}),u.src&&(d?a.createElement("div",{className:d},g):g),null!=t&&a.createElement("b",{className:m},t))}},5525:(e,n,t)=>{"use strict";t.d(n,{O:()=>p,Z:()=>g});var o=t(7462),a=t(7294),r=t(6010),i=t(9960),s=t(4996),c=t(541),l=t(3919),u=t(3810),d=t(2207);const m="dropdown__link--active";function p(e){let{activeBasePath:n,activeBaseRegex:t,to:r,href:d,label:p,activeClassName:f="",prependBaseUrlToHref:h,...g}=e;const v=(0,s.Z)(r),b=(0,s.Z)(n),y=(0,s.Z)(d,{forcePrependBaseUrl:!0}),w=p&&d&&!(0,l.Z)(d),C=f===m;return a.createElement(i.Z,(0,o.Z)({},d?{href:h?y:d}:{isNavLink:!0,activeClassName:g.className?.includes(f)?"":f,to:v,...n||t?{isActive:(e,n)=>t?(0,u.Fx)(t,n.pathname):n.pathname.startsWith(b)}:null},g),w?a.createElement("span",null,p,a.createElement(c.Z,C&&{width:12,height:12})):p)}function f(e){let{className:n,isDropdownItem:t=!1,...i}=e;const s=a.createElement(p,(0,o.Z)({className:(0,r.Z)(t?"dropdown__link":"navbar__item navbar__link",n)},i));return t?a.createElement("li",null,s):s}function h(e){let{className:n,isDropdownItem:t,...i}=e;return a.createElement("li",{className:"menu__list-item"},a.createElement(p,(0,o.Z)({className:(0,r.Z)("menu__link",n)},i)))}const g=function(e){let{mobile:n=!1,position:t,...r}=e;const i=n?h:f;return a.createElement(i,(0,o.Z)({},r,{activeClassName:r.activeClassName??(0,d.E)(n)}))}},6400:(e,n,t)=>{"use strict";t.d(n,{Z:()=>u});var o=t(7462),a=t(7294),r=t(5525),i=t(907),s=t(6010),c=t(2207),l=t(3810);function u(e){let{docId:n,label:t,docsPluginId:u,...d}=e;const{activeVersion:m,activeDoc:p}=(0,i.Iw)(u),{preferredVersion:f}=(0,l.J)(u),h=(0,i.yW)(u),g=function(e,n){const t=e.flatMap((e=>e.docs)),o=t.find((e=>e.id===n));if(!o){const o=t.map((e=>e.id)).join("\n- ");throw new Error(`DocNavbarItem: couldn't find any doc with id "${n}" in version${e.length?"s":""} ${e.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${o}`)}return o}((0,l.jj)([m,f,h].filter(Boolean)),n),v=(0,c.E)(d.mobile);return a.createElement(r.Z,(0,o.Z)({exact:!0},d,{className:(0,s.Z)(d.className,{[v]:p?.sidebar&&p.sidebar===g.sidebar}),activeClassName:v,label:t??g.id,to:g.path}))}},9308:(e,n,t)=>{"use strict";t.d(n,{Z:()=>d});var o=t(7462),a=t(7294),r=t(5525),i=t(3154),s=t(907),c=t(3810),l=t(5999);const u=e=>e.docs.find((n=>n.id===e.mainDocId));function d(e){let{mobile:n,docsPluginId:t,dropdownActiveClassDisabled:d,dropdownItemsBefore:m,dropdownItemsAfter:p,...f}=e;const h=(0,s.Iw)(t),g=(0,s.gB)(t),v=(0,s.yW)(t),{preferredVersion:b,savePreferredVersionName:y}=(0,c.J)(t);const w=function(){const e=g.map((e=>{const n=h?.alternateDocVersions[e.name]||u(e);return{isNavLink:!0,label:e.label,to:n.path,isActive:()=>e===h?.activeVersion,onClick:()=>{y(e.name)}}}));return[...m,...e,...p]}(),C=h.activeVersion??b??v,k=n&&w?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):C.label,A=n&&w?void 0:u(C).path;return w.length<=1?a.createElement(r.Z,(0,o.Z)({},f,{mobile:n,label:k,to:A,isActive:d?()=>!1:void 0})):a.createElement(i.Z,(0,o.Z)({},f,{mobile:n,label:k,to:A,items:w,isActive:d?()=>!1:void 0}))}},7250:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(7462),a=t(7294),r=t(5525),i=t(907),s=t(3810);const c=e=>e.docs.find((n=>n.id===e.mainDocId));function l(e){let{label:n,to:t,docsPluginId:l,...u}=e;const d=(0,i.zu)(l),{preferredVersion:m}=(0,s.J)(l),p=(0,i.yW)(l),f=d??m??p,h=n??f.label,g=t??c(f).path;return a.createElement(r.Z,(0,o.Z)({},u,{label:h,to:g}))}},3154:(e,n,t)=>{"use strict";t.d(n,{Z:()=>p});var o=t(7462),a=t(7294),r=t(6010),i=t(3810),s=t(5525),c=t(2207);const l="dropdown__link--active";function u(e,n){return e.some((e=>function(e,n){return!!(0,i.Mg)(e.to,n)||!!(0,i.Fx)(e.activeBaseRegex,n)||!(!e.activeBasePath||!n.startsWith(e.activeBasePath))}(e,n)))}function d(e){let{items:n,position:t,className:i,...u}=e;const d=(0,a.useRef)(null),m=(0,a.useRef)(null),[p,f]=(0,a.useState)(!1);return(0,a.useEffect)((()=>{const e=e=>{d.current&&!d.current.contains(e.target)&&f(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[d]),a.createElement("div",{ref:d,className:(0,r.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===t,"dropdown--show":p})},a.createElement(s.O,(0,o.Z)({href:u.to?void 0:"#",className:(0,r.Z)("navbar__link",i)},u,{onClick:u.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),f(!p))}}),u.children??u.label),a.createElement("ul",{ref:m,className:"dropdown__menu"},n.map(((e,t)=>a.createElement(c.Z,(0,o.Z)({isDropdownItem:!0,onKeyDown:e=>{if(t===n.length-1&&"Tab"===e.key){e.preventDefault(),f(!1);const n=d.current.nextElementSibling;n&&n.focus()}},activeClassName:l},e,{key:t}))))))}function m(e){let{items:n,className:t,position:l,...d}=e;const m=(0,i.be)(),p=u(n,m),{collapsed:f,toggleCollapsed:h,setCollapsed:g}=(0,i.uR)({initialState:()=>!p});return(0,a.useEffect)((()=>{p&&g(!p)}),[m,p,g]),a.createElement("li",{className:(0,r.Z)("menu__list-item",{"menu__list-item--collapsed":f})},a.createElement(s.O,(0,o.Z)({role:"button",className:(0,r.Z)("menu__link menu__link--sublist",t)},d,{onClick:e=>{e.preventDefault(),h()}}),d.children??d.label),a.createElement(i.zF,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},n.map(((e,n)=>a.createElement(c.Z,(0,o.Z)({mobile:!0,isDropdownItem:!0,onClick:d.onClick,activeClassName:"menu__link--active"},e,{key:n}))))))}const p=function(e){let{mobile:n=!1,...t}=e;const o=n?m:d;return a.createElement(o,t)}},2207:(e,n,t)=>{"use strict";t.d(n,{Z:()=>v,E:()=>g});var o=t(7294),a=t(5525),r=t(3154),i=t(7462);const s=function(e){let{width:n=20,height:t=20,...a}=e;return o.createElement("svg",(0,i.Z)({viewBox:"0 0 20 20",width:n,height:t,"aria-hidden":"true"},a),o.createElement("path",{fill:"currentColor",d:"M19.753 10.909c-.624-1.707-2.366-2.726-4.661-2.726-.09 0-.176.002-.262.006l-.016-2.063 3.525-.607c.115-.019.133-.119.109-.231-.023-.111-.167-.883-.188-.976-.027-.131-.102-.127-.207-.109-.104.018-3.25.461-3.25.461l-.013-2.078c-.001-.125-.069-.158-.194-.156l-1.025.016c-.105.002-.164.049-.162.148l.033 2.307s-3.061.527-3.144.543c-.084.014-.17.053-.151.143.019.09.19 1.094.208 1.172.018.08.072.129.188.107l2.924-.504.035 2.018c-1.077.281-1.801.824-2.256 1.303-.768.807-1.207 1.887-1.207 2.963 0 1.586.971 2.529 2.328 2.695 3.162.387 5.119-3.06 5.769-4.715 1.097 1.506.256 4.354-2.094 5.98-.043.029-.098.129-.033.207l.619.756c.08.096.206.059.256.023 2.51-1.73 3.661-4.515 2.869-6.683zm-7.386 3.188c-.966-.121-.944-.914-.944-1.453 0-.773.327-1.58.876-2.156a3.21 3.21 0 011.229-.799l.082 4.277a2.773 2.773 0 01-1.243.131zm2.427-.553l.046-4.109c.084-.004.166-.01.252-.01.773 0 1.494.145 1.885.361.391.217-1.023 2.713-2.183 3.758zm-8.95-7.668a.196.196 0 00-.196-.145h-1.95a.194.194 0 00-.194.144L.008 16.916c-.017.051-.011.076.062.076h1.733c.075 0 .099-.023.114-.072l1.008-3.318h3.496l1.008 3.318c.016.049.039.072.113.072h1.734c.072 0 .078-.025.062-.076-.014-.05-3.083-9.741-3.494-11.04zm-2.618 6.318l1.447-5.25 1.447 5.25H3.226z"}))};var c=t(2263),l=t(3810);const u="iconLanguage_EbrZ";function d(e){let{mobile:n,dropdownItemsBefore:t,dropdownItemsAfter:a,...d}=e;const{i18n:{currentLocale:m,locales:p,localeConfigs:f}}=(0,c.Z)(),h=(0,l.l5)();function g(e){return f[e].label}const v=[...t,...p.map((e=>{const n=`pathname://${h.createUrl({locale:e,fullyQualified:!1})}`;return{isNavLink:!0,label:g(e),to:n,target:"_self",autoAddBaseUrl:!1,className:e===m?"dropdown__link--active":""}})),...a],b=n?"Languages":g(m);return o.createElement(r.Z,(0,i.Z)({},d,{mobile:n,label:o.createElement("span",null,o.createElement(s,{className:u}),o.createElement("span",null,b)),items:v}))}var m=t(9166);function p(e){let{mobile:n}=e;return n?null:o.createElement(m.Z,null)}const f={default:()=>a.Z,localeDropdown:()=>d,search:()=>p,dropdown:()=>r.Z,docsVersion:()=>t(7250).Z,docsVersionDropdown:()=>t(9308).Z,doc:()=>t(6400).Z},h=e=>{const n=f[e];if(!n)throw new Error(`No NavbarItem component found for type "${e}".`);return n()};const g=e=>e?"menu__link--active":"navbar__link--active";function v(e){let{type:n,...t}=e;const a=function(e,n){return e&&"default"!==e?e:n?"dropdown":"default"}(n,void 0!==t.items),r=h(a);return o.createElement(r,t)}},1217:(e,n,t)=>{"use strict";t.d(n,{Z:()=>s});var o=t(7294),a=t(2859),r=t(3810),i=t(4996);function s(e){let{title:n,description:t,keywords:s,image:c,children:l}=e;const u=(0,r.pe)(n),{withBaseUrl:d}=(0,i.C)(),m=c?d(c,{absolute:!0}):void 0;return o.createElement(a.Z,null,n&&o.createElement("title",null,u),n&&o.createElement("meta",{property:"og:title",content:u}),t&&o.createElement("meta",{name:"description",content:t}),t&&o.createElement("meta",{property:"og:description",content:t}),s&&o.createElement("meta",{name:"keywords",content:Array.isArray(s)?s.join(","):s}),m&&o.createElement("meta",{property:"og:image",content:m}),m&&o.createElement("meta",{name:"twitter:image",content:m}),l)}},2924:(e,n,t)=>{"use strict";t.d(n,{Z:()=>o});const o=t(7294).createContext(void 0)},9750:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});var o=t(7462),a=t(7294),r=t(6010),i=t(2389),s=t(5350);const c={themedImage:"themedImage_TMUO","themedImage--light":"themedImage--light_4Vu1","themedImage--dark":"themedImage--dark_uzRr"};const l=function(e){const n=(0,i.Z)(),{isDarkTheme:t}=(0,s.Z)(),{sources:l,className:u,alt:d="",...m}=e,p=n?t?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,o.Z)({key:e,src:l[e],alt:d,className:(0,r.Z)(c.themedImage,c[`themedImage--${e}`],u)},m)))))}},907:(e,n,t)=>{"use strict";t.d(n,{Iw:()=>o.Iw,Jo:()=>o.Jo,WS:()=>o.WS,_r:()=>o._r,gA:()=>o.gA,gB:()=>o.gB,yW:()=>o.yW,zh:()=>o.zh,zu:()=>o.zu});var o=t(6730)},5350:(e,n,t)=>{"use strict";t.d(n,{Z:()=>r});var o=t(7294),a=t(2924);const r=function(){const e=(0,o.useContext)(a.Z);if(null==e)throw new Error('"useThemeContext" is used outside of "Layout" component. Please see https://docusaurus.io/docs/api/themes/configuration#usethemecontext.');return e}},3783:(e,n,t)=>{"use strict";t.d(n,{Z:()=>c});var o=t(7294),a=t(412);const r={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){return a.Z.canUseDOM?window.innerWidth>i?r.desktop:r.mobile:r.ssr}const c=function(){const[e,n]=(0,o.useState)((()=>s()));return(0,o.useEffect)((()=>{function e(){n(s())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),e}},467:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>r});var o=t(412),a=t(9782);const r=e=>{if(o.Z.canUseDOM){const{themeConfig:{prism:n={}}}=a.default,{additionalLanguages:o=[]}=n;window.Prism=e,o.forEach((e=>{t(6726)(`./prism-${e}`)})),delete window.Prism}}},2448:(e,n,t)=>{"use strict";var o=a(t(7410));function a(e){return e&&e.__esModule?e:{default:e}}(0,a(t(467)).default)(o.default)},3810:(e,n,t)=>{"use strict";t.d(n,{pl:()=>Ue,zF:()=>be,HX:()=>M,PO:()=>Ie,L5:()=>T,bT:()=>k,qu:()=>y,Cv:()=>Te,Cn:()=>xe,OC:()=>Xe,kM:()=>Pe,WA:()=>l,os:()=>F,Wl:()=>D,_F:()=>E,Fx:()=>tn,Mg:()=>h,_f:()=>u,bc:()=>K,Vo:()=>Y,nZ:()=>Q,jj:()=>Oe,l5:()=>m,nT:()=>ze,uR:()=>ue,_q:()=>B,J:()=>R,Vq:()=>A,E6:()=>w,ed:()=>re,Rb:()=>Ge,be:()=>$e,SL:()=>se,g8:()=>je,c2:()=>oe,D9:()=>ie,RF:()=>nn,DA:()=>Ke,Si:()=>Ve,LU:()=>a,pe:()=>X});var o=t(2263);function a(){return(0,o.Z)().siteConfig.themeConfig}const r="localStorage";function i(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(t){return n=t,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",n),s=!0),null}var n}let s=!1;const c={get:()=>null,set:()=>{},del:()=>{}};const l=(e,n)=>{if("undefined"==typeof window)return function(e){function n(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:n,set:n,del:n}}(e);const t=i(null==n?void 0:n.persistence);return null===t?c:{get:()=>{try{return t.getItem(e)}catch(n){return console.error(`Docusaurus storage error, can't get key=${e}`,n),null}},set:n=>{try{t.setItem(e,n)}catch(o){console.error(`Docusaurus storage error, can't set ${e}=${n}`,o)}},del:()=>{try{t.removeItem(e)}catch(n){console.error(`Docusaurus storage error, can't delete key=${e}`,n)}}}};function u(e){void 0===e&&(e=r);const n=i(e);if(!n)return[];const t=[];for(let o=0;o{const t=e=>!e||(null==e?void 0:e.endsWith("/"))?e:`${e}/`;return t(e)===t(n)},g=!!p._r,v=Symbol("EmptyContext"),b=(0,f.createContext)(v);function y(e){let{children:n,version:t}=e;return f.createElement(b.Provider,{value:t},n)}function w(){const e=(0,f.useContext)(b);if(e===v)throw new Error("This hook requires usage of ");return e}const C=(0,f.createContext)(v);function k(e){let{children:n,sidebar:t}=e;return f.createElement(C.Provider,{value:t},n)}function A(){const e=(0,f.useContext)(C);if(e===v)throw new Error("This hook requires usage of ");return e}function D(e){if(e.href)return e.href;for(const n of e.items){if("link"===n.type)return n.href;if("category"!==n.type)throw new Error(`Unexpected category item type for ${JSON.stringify(n)}`);{const e=D(n);if(e)return e}}}function E(e,n){const t=e=>void 0!==e&&h(e,n);return"link"===e.type?t(e.href):"category"===e.type&&(t(e.href)||function(e,n){return e.some((e=>E(e,n)))}(e.items,n))}const I=e=>`docs-preferred-version-${e}`,S={save:(e,n,t)=>{l(I(e),{persistence:n}).set(t)},read:(e,n)=>l(I(e),{persistence:n}).get(),clear:(e,n)=>{l(I(e),{persistence:n}).del()}};function x(e){let{pluginIds:n,versionPersistence:t,allDocsData:o}=e;const a={};return n.forEach((e=>{a[e]=function(e){const n=S.read(e,t);return o[e].versions.some((e=>e.name===n))?{preferredVersionName:n}:(S.clear(e,t),{preferredVersionName:null})}(e)})),a}function _(){const e=(0,p._r)(),n=a().docs.versionPersistence,t=(0,f.useMemo)((()=>Object.keys(e)),[e]),[o,r]=(0,f.useState)((()=>function(e){const n={};return e.forEach((e=>{n[e]={preferredVersionName:null}})),n}(t)));(0,f.useEffect)((()=>{r(x({allDocsData:e,versionPersistence:n,pluginIds:t}))}),[e,n,t]);return[o,(0,f.useMemo)((()=>({savePreferredVersion:function(e,t){S.save(e,n,t),r((n=>({...n,[e]:{preferredVersionName:t}})))}})),[n])]}const j=(0,f.createContext)(null);function T(e){let{children:n}=e;return g?f.createElement(O,null,n):n}function O(e){let{children:n}=e;const t=_();return f.createElement(j.Provider,{value:t},n)}function P(){const e=(0,f.useContext)(j);if(!e)throw new Error('Can\'t find docs preferred context, maybe you forgot to use the "DocsPreferredVersionContextProvider"?');return e}var L=t(9935);function R(e){void 0===e&&(e=L.m);const n=(0,p.zh)(e),[t,o]=P(),{preferredVersionName:a}=t[e];return{preferredVersion:a?n.versions.find((e=>e.name===a)):null,savePreferredVersionName:(0,f.useCallback)((n=>{o.savePreferredVersion(e,n)}),[o,e])}}function N(){const e=(0,p._r)(),[n]=P();const t=Object.keys(e),o={};return t.forEach((t=>{o[t]=function(t){const o=e[t],{preferredVersionName:a}=n[t];return a?o.versions.find((e=>e.name===a)):null}(t)})),o}const M="default";function F(e,n){return`docs-${e}-${n}`}function B(){const{i18n:e}=(0,o.Z)(),n=(0,p._r)(),t=(0,p.WS)(),a=N();const r=[M,...Object.keys(n).map((function(e){var o,r;const i=(null===(o=null==t?void 0:t.activePlugin)||void 0===o?void 0:o.pluginId)===e?t.activeVersion:void 0,s=a[e],c=n[e].versions.find((e=>e.isLast));return F(e,(null!==(r=null!=i?i:s)&&void 0!==r?r:c).name)}))];return{locale:e.currentLocale,tags:r}}var U=t(7594),z=t.n(U);const $=/title=(["'])(.*?)\1/,G=/{([\d,-]+)}/,q=["js","jsBlock","jsx","python","html"],Z={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},python:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},H=["highlight-next-line","highlight-start","highlight-end"],V=function(e){void 0===e&&(e=q);const n=e.map((e=>{const{start:n,end:t}=Z[e];return`(?:${n}\\s*(${H.join("|")})\\s*${t})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)},W=e=>{switch(e){case"js":case"javascript":case"ts":case"typescript":return V(["js","jsBlock"]);case"jsx":case"tsx":return V(["js","jsBlock","jsx"]);case"html":return V(["js","jsBlock","html"]);case"python":case"py":return V(["python"]);default:return V()}};function K(e){var n,t;return null!==(t=null===(n=null==e?void 0:e.match($))||void 0===n?void 0:n[2])&&void 0!==t?t:""}function Y(e){const n=null==e?void 0:e.split(" ").find((e=>e.startsWith("language-")));return null==n?void 0:n.replace(/language-/,"")}function Q(e,n,t){let o=e.replace(/\n$/,"");if(n&&G.test(n)){const e=n.match(G)[1];return{highlightLines:z()(e).filter((e=>e>0)).map((e=>e-1)),code:o}}if(void 0===t)return{highlightLines:[],code:o};const a=W(t),r=o.split("\n");let i,s="";for(let l=0;lvoid 0!==e))){case"highlight-next-line":s+=`${l},`;break;case"highlight-start":i=l;break;case"highlight-end":s+=`${i}-${l-1},`}r.splice(l,1)}else l+=1}const c=z()(s);return o=r.join("\n"),{highlightLines:c,code:o}}const X=e=>{const{siteConfig:n}=(0,o.Z)(),{title:t,titleDelimiter:a}=n;return e&&e.trim().length?`${e.trim()} ${a} ${t}`:t},J=["zero","one","two","few","many","other"];function ee(e){return J.filter((n=>e.includes(n)))}const ne={locale:"en",pluralForms:ee(["one","other"]),select:e=>1===e?"one":"other"};function te(){const{i18n:{currentLocale:e}}=(0,o.Z)();return(0,f.useMemo)((()=>{if(!Intl.PluralRules)return console.error("Intl.PluralRules not available!\nDocusaurus will fallback to a default/fallback (English) Intl.PluralRules implementation.\n "),ne;try{return function(e){const n=new Intl.PluralRules(e);return{locale:e,pluralForms:ee(n.resolvedOptions().pluralCategories),select:e=>n.select(e)}}(e)}catch(n){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to a default/fallback (English) Intl.PluralRules implementation.\n`),ne}}),[e])}function oe(){const e=te();return{selectMessage:(n,t)=>function(e,n,t){const o=e.split("|");if(1===o.length)return o[0];{o.length>t.pluralForms.length&&console.error(`For locale=${t.locale}, a maximum of ${t.pluralForms.length} plural forms are expected (${t.pluralForms}), but the message contains ${o.length} plural forms: ${e} `);const a=t.select(n),r=t.pluralForms.indexOf(a);return o[Math.min(r,o.length-1)]}}(t,n,e)}}const ae="undefined"!=typeof window?f.useLayoutEffect:f.useEffect;function re(e){const n=(0,f.useRef)(e);return ae((()=>{n.current=e}),[e]),(0,f.useCallback)((function(){return n.current(...arguments)}),[])}function ie(e){const n=(0,f.useRef)();return ae((()=>{n.current=e})),n.current}function se(e){const n=(0,d.TH)(),t=ie(n),o=re(e);(0,f.useEffect)((()=>{n!==t&&o({location:n,previousLocation:t})}),[o,n,t])}var ce=t(412);const le="ease-in-out";function ue(e){let{initialState:n}=e;const[t,o]=(0,f.useState)(null!=n&&n),a=(0,f.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:t,setCollapsed:o,toggleCollapsed:a}}const de={display:"none",overflow:"hidden",height:"0px"},me={display:"block",overflow:"visible",height:"auto"};function pe(e,n){const t=n?de:me;e.style.display=t.display,e.style.overflow=t.overflow,e.style.height=t.height}function fe(e){let{collapsibleRef:n,collapsed:t,animation:o}=e;const a=(0,f.useRef)(!1);(0,f.useEffect)((()=>{const e=n.current;function r(){var n,t;const a=e.scrollHeight,r=null!==(n=null==o?void 0:o.duration)&&void 0!==n?n:function(e){const n=e/36;return Math.round(10*(4+15*n**.25+n/5))}(a);return{transition:`height ${r}ms ${null!==(t=null==o?void 0:o.easing)&&void 0!==t?t:le}`,height:`${a}px`}}function i(){const n=r();e.style.transition=n.transition,e.style.height=n.height}if(!a.current)return pe(e,t),void(a.current=!0);return e.style.willChange="height",function(){const n=requestAnimationFrame((()=>{t?(i(),requestAnimationFrame((()=>{e.style.height=de.height,e.style.overflow=de.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(n)}()}),[n,t,o])}function he(e){if(!ce.Z.canUseDOM)return e?de:me}function ge(e){let{as:n="div",collapsed:t,children:o,animation:a,onCollapseTransitionEnd:r,className:i,disableSSRStyle:s}=e;const c=(0,f.useRef)(null);return fe({collapsibleRef:c,collapsed:t,animation:a}),f.createElement(n,{ref:c,style:s?void 0:he(t),onTransitionEnd:e=>{"height"===e.propertyName&&(pe(c.current,t),null==r||r(t))},className:i},o)}function ve(e){let{collapsed:n,...t}=e;const[o,a]=(0,f.useState)(!n);(0,f.useLayoutEffect)((()=>{n||a(!0)}),[n]);const[r,i]=(0,f.useState)(n);return(0,f.useLayoutEffect)((()=>{o&&i(n)}),[o,n]),o?f.createElement(ge,{...t,collapsed:r}):null}function be(e){let{lazy:n,...t}=e;const o=n?ve:ge;return f.createElement(o,{...t})}var ye=t(2389),we=t(6010);const Ce="details_Q743",ke="isBrowser_rWTL",Ae="collapsibleContent_K5uX";function De(e){return!!e&&("SUMMARY"===e.tagName||De(e.parentElement))}function Ee(e,n){return!!e&&(e===n||Ee(e.parentElement,n))}const Ie=function(e){let{summary:n,children:t,...o}=e;const a=(0,ye.Z)(),r=(0,f.useRef)(null),{collapsed:i,setCollapsed:s}=ue({initialState:!o.open}),[c,l]=(0,f.useState)(o.open);return f.createElement("details",{...o,ref:r,open:c,"data-collapsed":i,className:(0,we.Z)(Ce,{[ke]:a},o.className),onMouseDown:e=>{De(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;De(n)&&Ee(n,r.current)&&(e.preventDefault(),i?(s(!1),l(!0)):s(!0))}},n,f.createElement(be,{lazy:!1,collapsed:i,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),l(!e)}},f.createElement("div",{className:Ae},t)))};const Se=(0,f.createContext)(null);function xe(e){let{children:n}=e;return f.createElement(Se.Provider,{value:(0,f.useState)(null)},n)}function _e(){const e=(0,f.useContext)(Se);if(null===e)throw new Error("MobileSecondaryMenuProvider was not used correctly, context value is null");return e}function je(){const[e]=_e();if(e){const n=e.component;return function(t){return f.createElement(n,{...e.props,...t})}}return()=>{}}function Te(e){let{component:n,props:t}=e;const[,o]=_e(),a=(r=t,(0,f.useMemo)((()=>r),[...Object.keys(r),...Object.values(r)]));var r;return(0,f.useEffect)((()=>{o({component:n,props:a})}),[o,n,a]),(0,f.useEffect)((()=>()=>o(null)),[o]),null}function Oe(e){return Array.from(new Set(e))}const Pe={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button"},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}},Le=l("docusaurus.announcement.dismiss"),Re=l("docusaurus.announcement.id"),Ne=()=>"true"===Le.get(),Me=e=>Le.set(String(e)),Fe=()=>{const{announcementBar:e}=a(),n=(0,ye.Z)(),[t,o]=(0,f.useState)((()=>!!n&&Ne()));(0,f.useEffect)((()=>{o(Ne())}),[]);const r=(0,f.useCallback)((()=>{Me(!0),o(!0)}),[]);return(0,f.useEffect)((()=>{if(!e)return;const{id:n}=e;let t=Re.get();"annoucement-bar"===t&&(t="announcement-bar");const a=n!==t;Re.set(n),a&&Me(!1),!a&&Ne()||o(!1)}),[e]),(0,f.useMemo)((()=>({isActive:!!e&&!t,close:r})),[e,t,r])},Be=(0,f.createContext)(null);function Ue(e){let{children:n}=e;const t=Fe();return f.createElement(Be.Provider,{value:t},n)}const ze=()=>{const e=(0,f.useContext)(Be);if(!e)throw new Error("useAnnouncementBar(): AnnouncementBar not found in React context: make sure to use the AnnouncementBarProvider on top of the tree");return e};function $e(){const{siteConfig:{baseUrl:e}}=(0,o.Z)(),{pathname:n}=(0,d.TH)();return n.replace(e,"/")}t(5999);function Ge(e){!function(e){const{block:n}=(0,d.k6)(),t=(0,f.useRef)(e);(0,f.useEffect)((()=>{t.current=e}),[e]),(0,f.useEffect)((()=>n(((e,n)=>t.current(e,n)))),[n,t])}(((n,t)=>{if("POP"===t)return e(n,t)}))}function qe(e){const n=e.getBoundingClientRect();return n.top===n.bottom?qe(e.parentNode):n}function Ze(e,n){let{anchorTopOffset:t}=n;var o;const a=e.find((e=>qe(e).top>=t));if(a){return function(e){return e.top>0&&e.bottom{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}const Ve=function(e){const n=(0,f.useRef)(void 0),t=He();(0,f.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:o,linkActiveClassName:a,minHeadingLevel:r,maxHeadingLevel:i}=e;function s(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(o),s=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const o=[];for(let a=n;a<=t;a+=1)o.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(o.join()))}({minHeadingLevel:r,maxHeadingLevel:i}),c=Ze(s,{anchorTopOffset:t.current}),l=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){var o;t?(n.current&&n.current!==e&&(null===(o=n.current)||void 0===o||o.classList.remove(a)),e.classList.add(a),n.current=e):e.classList.remove(a)}(e,e===l)}))}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}}),[e,t])};function We(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:o}=e;return n.flatMap((e=>{const n=We({toc:e.children,minHeadingLevel:t,maxHeadingLevel:o});return function(e){return e.level>=t&&e.level<=o}(e)?[{...e,children:n}]:n}))}function Ke(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:o}=e;return(0,f.useMemo)((()=>We({toc:n,minHeadingLevel:t,maxHeadingLevel:o})),[n,t,o])}function Ye(){const e=(0,f.useRef)(!0);return(0,f.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}const Qe=(0,f.createContext)(void 0);function Xe(e){let{children:n}=e;return f.createElement(Qe.Provider,{value:Ye()},n)}function Je(){const e=(0,f.useContext)(Qe);if(null==e)throw new Error('"useScrollController" is used but no context provider was found in the React tree.');return e}const en=()=>ce.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function nn(e,n){void 0===n&&(n=[]);const{scrollEventsEnabledRef:t}=Je(),o=(0,f.useRef)(en()),a=re(e);(0,f.useEffect)((()=>{const e=()=>{if(!t.current)return;const e=en();a&&a(e,o.current),o.current=e},n={passive:!0};return e(),window.addEventListener("scroll",e,n),()=>window.removeEventListener("scroll",e,n)}),[a,t,...n])}function tn(e,n){return void 0!==e&&void 0!==n&&new RegExp(e,"gi").test(n)}},9166:(e,n,t)=>{"use strict";t.d(n,{Z:()=>x});var o=t(7462),a=t(7294),r=t(3935),i=t(2263),s=t(6550),c=t(4996),l=t(9960),u=t(2859),d=t(9565),m=t(3810);function p(){return a.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},a.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var f=t(830),h=["translations"];function g(){return g=Object.assign||function(e){for(var n=1;ne.length)&&(n=e.length);for(var t=0,o=new Array(n);t=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var w="Ctrl";var C=a.forwardRef((function(e,n){var t=e.translations,o=void 0===t?{}:t,r=y(e,h),i=o.buttonText,s=void 0===i?"Search":i,c=o.buttonAriaLabel,l=void 0===c?"Search":c,u=v((0,a.useState)(null),2),d=u[0],m=u[1];return(0,a.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?m("\u2318"):m(w))}),[]),a.createElement("button",g({type:"button",className:"DocSearch DocSearch-Button","aria-label":l},r,{ref:n}),a.createElement("span",{className:"DocSearch-Button-Container"},a.createElement(f.W,null),a.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),a.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&a.createElement(a.Fragment,null,a.createElement("kbd",{className:"DocSearch-Button-Key"},d===w?a.createElement(p,null):d),a.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))}));var k=t(5999);const A={searchBox:"searchBox_Utm0"};let D=null;function E(e){let{hit:n,children:t}=e;return a.createElement(l.Z,{to:n.url},t)}function I(e){let{state:n,onClose:t}=e;const{generateSearchPageLink:o}=(0,d.Z)();return a.createElement(l.Z,{to:o(n.query),onClick:t},"See all ",n.context.nbHits," results")}function S(e){let{contextualSearch:n,externalUrlRegex:l,...d}=e;var p,f;const{siteMetadata:h}=(0,i.Z)(),g=function(){const{locale:e,tags:n}=(0,m._q)();return[`language:${e}`,n.map((e=>`docusaurus_tag:${e}`))]}(),v=null!==(f=null===(p=d.searchParameters)||void 0===p?void 0:p.facetFilters)&&void 0!==f?f:[],b=n?[...g,...v]:v,y={...d.searchParameters,facetFilters:b},{withBaseUrl:w}=(0,c.C)(),S=(0,s.k6)(),x=(0,a.useRef)(null),_=(0,a.useRef)(null),[j,T]=(0,a.useState)(!1),[O,P]=(0,a.useState)(void 0),L=(0,a.useCallback)((()=>D?Promise.resolve():Promise.all([t.e(1426).then(t.bind(t,1426)),Promise.all([t.e(532),t.e(6945)]).then(t.bind(t,6945)),Promise.all([t.e(532),t.e(8894)]).then(t.bind(t,8894))]).then((e=>{let[{DocSearchModal:n}]=e;D=n}))),[]),R=(0,a.useCallback)((()=>{L().then((()=>{x.current=document.createElement("div"),document.body.insertBefore(x.current,document.body.firstChild),T(!0)}))}),[L,T]),N=(0,a.useCallback)((()=>{var e;T(!1),null===(e=x.current)||void 0===e||e.remove()}),[T]),M=(0,a.useCallback)((e=>{L().then((()=>{T(!0),P(e.key)}))}),[L,T,P]),F=(0,a.useRef)({navigate(e){let{itemUrl:n}=e;(0,m.Fx)(l,n)?window.location.href=n:S.push(n)}}).current,B=(0,a.useRef)((e=>e.map((e=>{if((0,m.Fx)(l,e.url))return e;const n=new URL(e.url);return{...e,url:w(`${n.pathname}${n.hash}`)}})))).current,U=(0,a.useMemo)((()=>e=>a.createElement(I,(0,o.Z)({},e,{onClose:N}))),[N]),z=(0,a.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",h.docusaurusVersion),e)),[h.docusaurusVersion]);!function(e){var n=e.isOpen,t=e.onOpen,o=e.onClose,r=e.onInput,i=e.searchButtonRef;a.useEffect((function(){function e(e){var a;(27===e.keyCode&&n||"k"===(null===(a=e.key)||void 0===a?void 0:a.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var n=e.target,t=n.tagName;return n.isContentEditable||"INPUT"===t||"SELECT"===t||"TEXTAREA"===t}(e)&&"/"===e.key&&!n)&&(e.preventDefault(),n?o():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||t()),i&&i.current===document.activeElement&&r&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&r(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[n,t,o,r,i])}({isOpen:j,onOpen:R,onClose:N,onInput:M,searchButtonRef:_});const $=(0,k.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"});return a.createElement(a.Fragment,null,a.createElement(u.Z,null,a.createElement("link",{rel:"preconnect",href:`https://${d.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),a.createElement("div",{className:A.searchBox},a.createElement(C,{onTouchStart:L,onFocus:L,onMouseOver:L,onClick:R,ref:_,translations:{buttonText:$,buttonAriaLabel:$}})),j&&D&&x.current&&(0,r.createPortal)(a.createElement(D,(0,o.Z)({onClose:N,initialScrollY:window.scrollY,initialQuery:O,navigator:F,transformItems:B,hitComponent:E,resultsFooterComponent:U,transformSearchClient:z},d,{searchParameters:y})),x.current))}const x=function(){const{siteConfig:e}=(0,i.Z)();return a.createElement(S,e.themeConfig.algolia)}},9565:(e,n,t)=>{"use strict";t.d(n,{Z:()=>i});var o=t(6550),a=t(2263),r=t(7294);const i=function(){const e=(0,o.k6)(),{siteConfig:{baseUrl:n}}=(0,a.Z)(),[t,i]=(0,r.useState)("");return(0,r.useEffect)((()=>{var e;const n=null!==(e=new URLSearchParams(window.location.search).get("q"))&&void 0!==e?e:"";i(n)}),[]),{searchQuery:t,setSearchQuery:(0,r.useCallback)((n=>{const t=new URLSearchParams(window.location.search);n?t.set("q",n):t.delete("q"),e.replace({search:t.toString()}),i(n)}),[e]),generateSearchPageLink:(0,r.useCallback)((e=>`${n}search?q=${encodeURIComponent(e)}`),[n])}}},8802:(e,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,n){const{trailingSlash:t,baseUrl:o}=n;if(e.startsWith("#"))return e;if(void 0===t)return e;const[a]=e.split(/[#?]/),r="/"===a||a===o?a:(i=a,t?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,r)}},8780:function(e,n,t){"use strict";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0}),n.applyTrailingSlash=void 0;var a=t(8802);Object.defineProperty(n,"applyTrailingSlash",{enumerable:!0,get:function(){return o(a).default}})},6010:(e,n,t)=>{"use strict";function o(e){var n,t,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(n=0;na});const a=function(){for(var e,n,t=0,a="";t{"use strict";t.d(n,{lX:()=>A,q_:()=>_,ob:()=>h,PP:()=>T,Ep:()=>f,Hp:()=>g});var o=t(7462);function a(e){return"/"===e.charAt(0)}function r(e,n){for(var t=n,o=t+1,a=e.length;o=0;m--){var p=i[m];"."===p?r(i,m):".."===p?(r(i,m),d++):d&&(r(i,m),d--)}if(!l)for(;d--;d)i.unshift("..");!l||""===i[0]||i[0]&&a(i[0])||i.unshift("");var f=i.join("/");return t&&"/"!==f.substr(-1)&&(f+="/"),f};function s(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const c=function e(n,t){if(n===t)return!0;if(null==n||null==t)return!1;if(Array.isArray(n))return Array.isArray(t)&&n.length===t.length&&n.every((function(n,o){return e(n,t[o])}));if("object"==typeof n||"object"==typeof t){var o=s(n),a=s(t);return o!==n||a!==t?e(o,a):Object.keys(Object.assign({},n,t)).every((function(o){return e(n[o],t[o])}))}return!1};var l=t(8776);function u(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function m(e,n){return function(e,n){return 0===e.toLowerCase().indexOf(n.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(n.length))}(e,n)?e.substr(n.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var n=e.pathname,t=e.search,o=e.hash,a=n||"/";return t&&"?"!==t&&(a+="?"===t.charAt(0)?t:"?"+t),o&&"#"!==o&&(a+="#"===o.charAt(0)?o:"#"+o),a}function h(e,n,t,a){var r;"string"==typeof e?(r=function(e){var n=e||"/",t="",o="",a=n.indexOf("#");-1!==a&&(o=n.substr(a),n=n.substr(0,a));var r=n.indexOf("?");return-1!==r&&(t=n.substr(r),n=n.substr(0,r)),{pathname:n,search:"?"===t?"":t,hash:"#"===o?"":o}}(e),r.state=n):(void 0===(r=(0,o.Z)({},e)).pathname&&(r.pathname=""),r.search?"?"!==r.search.charAt(0)&&(r.search="?"+r.search):r.search="",r.hash?"#"!==r.hash.charAt(0)&&(r.hash="#"+r.hash):r.hash="",void 0!==n&&void 0===r.state&&(r.state=n));try{r.pathname=decodeURI(r.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+r.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return t&&(r.key=t),a?r.pathname?"/"!==r.pathname.charAt(0)&&(r.pathname=i(r.pathname,a.pathname)):r.pathname=a.pathname:r.pathname||(r.pathname="/"),r}function g(e,n){return e.pathname===n.pathname&&e.search===n.search&&e.hash===n.hash&&e.key===n.key&&c(e.state,n.state)}function v(){var e=null;var n=[];return{setPrompt:function(n){return e=n,function(){e===n&&(e=null)}},confirmTransitionTo:function(n,t,o,a){if(null!=e){var r="function"==typeof e?e(n,t):e;"string"==typeof r?"function"==typeof o?o(r,a):a(!0):a(!1!==r)}else a(!0)},appendListener:function(e){var t=!0;function o(){t&&e.apply(void 0,arguments)}return n.push(o),function(){t=!1,n=n.filter((function(e){return e!==o}))}},notifyListeners:function(){for(var e=arguments.length,t=new Array(e),o=0;on?t.splice(n,t.length-n,a):t.push(a),d({action:o,location:a,index:n,entries:t})}}))},replace:function(e,n){var o="REPLACE",a=h(e,n,m(),w.location);u.confirmTransitionTo(a,o,t,(function(e){e&&(w.entries[w.index]=a,d({action:o,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var n=w.index+e;return n>=0&&n{"use strict";var o=t(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},r={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function c(e){return o.isMemo(e)?i:s[e.$$typeof]||a}s[o.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[o.Memo]=i;var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,m=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(n,t,o){if("string"!=typeof t){if(f){var a=p(t);a&&a!==f&&e(n,a,o)}var i=u(t);d&&(i=i.concat(d(t)));for(var s=c(n),h=c(t),g=0;g{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},6743:(e,n,t)=>{"use strict";t.r(n)},2497:(e,n,t)=>{"use strict";t.r(n)},2295:(e,n,t)=>{"use strict";t.r(n)},4865:function(e,n,t){var o,a;o=function(){var e,n,t={version:"0.2.0"},o=t.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,n,t){return et?t:e}function r(e){return 100*(-1+e)}function i(e,n,t){var a;return(a="translate3d"===o.positionUsing?{transform:"translate3d("+r(e)+"%,0,0)"}:"translate"===o.positionUsing?{transform:"translate("+r(e)+"%,0)"}:{"margin-left":r(e)+"%"}).transition="all "+n+"ms "+t,a}t.configure=function(e){var n,t;for(n in e)void 0!==(t=e[n])&&e.hasOwnProperty(n)&&(o[n]=t);return this},t.status=null,t.set=function(e){var n=t.isStarted();e=a(e,o.minimum,1),t.status=1===e?null:e;var r=t.render(!n),l=r.querySelector(o.barSelector),u=o.speed,d=o.easing;return r.offsetWidth,s((function(n){""===o.positionUsing&&(o.positionUsing=t.getPositioningCSS()),c(l,i(e,u,d)),1===e?(c(r,{transition:"none",opacity:1}),r.offsetWidth,setTimeout((function(){c(r,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){t.remove(),n()}),u)}),u)):setTimeout(n,u)})),this},t.isStarted=function(){return"number"==typeof t.status},t.start=function(){t.status||t.set(0);var e=function(){setTimeout((function(){t.status&&(t.trickle(),e())}),o.trickleSpeed)};return o.trickle&&e(),this},t.done=function(e){return e||t.status?t.inc(.3+.5*Math.random()).set(1):this},t.inc=function(e){var n=t.status;return n?("number"!=typeof e&&(e=(1-n)*a(Math.random()*n,.1,.95)),n=a(n+e,0,.994),t.set(n)):t.start()},t.trickle=function(){return t.inc(Math.random()*o.trickleRate)},e=0,n=0,t.promise=function(o){return o&&"resolved"!==o.state()?(0===n&&t.start(),e++,n++,o.always((function(){0==--n?(e=0,t.done()):t.set((e-n)/e)})),this):this},t.render=function(e){if(t.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var n=document.createElement("div");n.id="nprogress",n.innerHTML=o.template;var a,i=n.querySelector(o.barSelector),s=e?"-100":r(t.status||0),l=document.querySelector(o.parent);return c(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),o.showSpinner||(a=n.querySelector(o.spinnerSelector))&&p(a),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(n),n},t.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(o.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},t.isRendered=function(){return!!document.getElementById("nprogress")},t.getPositioningCSS=function(){var e=document.body.style,n="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return n+"Perspective"in e?"translate3d":n+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function n(){var t=e.shift();t&&t(n)}return function(t){e.push(t),1==e.length&&n()}}(),c=function(){var e=["Webkit","O","Moz","ms"],n={};function t(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,n){return n.toUpperCase()}))}function o(n){var t=document.body.style;if(n in t)return n;for(var o,a=e.length,r=n.charAt(0).toUpperCase()+n.slice(1);a--;)if((o=e[a]+r)in t)return o;return n}function a(e){return e=t(e),n[e]||(n[e]=o(e))}function r(e,n,t){n=a(n),e.style[n]=t}return function(e,n){var t,o,a=arguments;if(2==a.length)for(t in n)void 0!==(o=n[t])&&n.hasOwnProperty(t)&&r(e,t,o);else r(e,a[1],a[2])}}();function l(e,n){return("string"==typeof e?e:m(e)).indexOf(" "+n+" ")>=0}function u(e,n){var t=m(e),o=t+n;l(t,n)||(e.className=o.substring(1))}function d(e,n){var t,o=m(e);l(e,n)&&(t=o.replace(" "+n+" "," "),e.className=t.substring(1,t.length-1))}function m(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return t},void 0===(a="function"==typeof o?o.call(n,t,n,e):o)||(e.exports=a)},7418:e=>{"use strict";var n=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var n={},t=0;t<10;t++)n["_"+String.fromCharCode(t)]=t;if("0123456789"!==Object.getOwnPropertyNames(n).map((function(e){return n[e]})).join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach((function(e){o[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var r,i,s=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),c=1;c{function t(e){let n,t=[];for(let o of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(o))t.push(parseInt(o,10));else if(n=o.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,o,a,r]=n;if(o&&r){o=parseInt(o),r=parseInt(r);const e=o{"use strict";t.r(n),t.d(n,{default:()=>r});var o=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,t={},o={util:{encode:function e(n){return n instanceof a?new a(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=d.reach);A+=k.value.length,k=k.next){var D=k.value;if(n.length>e.length)return;if(!(D instanceof a)){var E,I=1;if(b){if(!(E=r(C,A,e,v))||E.index>=e.length)break;var S=E.index,x=E.index+E[0].length,_=A;for(_+=k.value.length;S>=_;)_+=(k=k.next).value.length;if(A=_-=k.value.length,k.value instanceof a)continue;for(var j=k;j!==n.tail&&(_d.reach&&(d.reach=L);var R=k.prev;if(O&&(R=c(n,R,O),A+=O.length),l(n,R,I),k=c(n,R,new a(m,g?o.tokenize(T,g):T,y,T)),P&&c(n,k,P),I>1){var N={cause:m+","+f,reach:L};i(e,n,t,k.prev,A,N),d&&N.reach>d.reach&&(d.reach=N.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function c(e,n,t){var o=n.next,a={value:t,prev:n,next:o};return n.next=a,o.prev=a,e.length++,a}function l(e,n,t){for(var o=n.next,a=0;a"+r.content+""},o}(),a=o;o.default=o,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,n){var t={};t["language-"+n]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[n]},t.cdata=/^$/i;var o={"included-cdata":{pattern://i,inside:t}};o["language-"+n]={pattern:/[\s\S]+/,inside:a.languages[n]};var r={};r[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:o},a.languages.insertBefore("markup","cdata",r)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,n){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[n,"language-"+n],inside:a.languages[n]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var n="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",t={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},o={bash:t,environment:{pattern:RegExp("\\$"+n),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+n),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+n),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:o},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:t}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:o},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:o.entity}}],environment:{pattern:RegExp("\\$?"+n),alias:"constant"},variable:o.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},t.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],r=o.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var n=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,t=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return n.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return n.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:n,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return t}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var n=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+n.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+n.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+n.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:n,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var t=e.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(a),function(e){var n,t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:n={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=n,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var o={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:o,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:o,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var n=/#(?!\{).+/,t={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:n,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:t}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:n,interpolation:t}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:t}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var n=/[*&][^\s[\]{},]+/,t=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,o="(?:"+t.source+"(?:[ \t]+"+n.source+")?|"+n.source+"(?:[ \t]+"+t.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),r=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,n){n=(n||"").replace(/m/g,"")+"m";var t=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return o})).replace(/<>/g,(function(){return e}));return RegExp(t,n)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return o}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return o})).replace(/<>/g,(function(){return"(?:"+a+"|"+r+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(r),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:t,important:n,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var n=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function t(e){return e=e.replace(//g,(function(){return n})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var o=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return o})),r=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+r+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+r+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(o),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+r+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(o),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:t(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:t(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:t(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:t(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(n){["url","bold","italic","strike","code-snippet"].forEach((function(t){n!==t&&(e.languages.markdown[n].inside.content.inside[t]=e.languages.markdown[t])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(n){if(n&&"string"!=typeof n)for(var t=0,o=n.length;t",quot:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var n=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),t=0;t0)){var s=m(/^\{$/,/^\}$/);if(-1===s)continue;for(var c=t;c=0&&p(l,"variable-input")}}}}function u(e){return n[t+e]}function d(e,n){n=n||0;for(var t=0;t?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var n=e.languages.javascript["template-string"],t=n.pattern.source,o=n.inside.interpolation,a=o.inside["interpolation-punctuation"],r=o.pattern.source;function i(n,o){if(e.languages[n])return{pattern:RegExp("((?:"+o+")\\s*)"+t),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:n}}}}function s(e,n){return"___"+n.toUpperCase()+"_"+e+"___"}function c(n,t,o){var a={code:n,grammar:t,language:o};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function l(n){var t={};t["interpolation-punctuation"]=a;var r=e.tokenize(n,t);if(3===r.length){var i=[1,1];i.push.apply(i,c(r[1],e.languages.javascript,"javascript")),r.splice.apply(r,i)}return new e.Token("interpolation",r,o.alias,n)}function u(n,t,o){var a=e.tokenize(n,{interpolation:{pattern:RegExp(r),lookbehind:!0}}),i=0,u={},d=c(a.map((function(e){if("string"==typeof e)return e;for(var t,a=e.content;-1!==n.indexOf(t=s(i++,o)););return u[t]=a,t})).join(""),t,o),m=Object.keys(u);return i=0,function e(n){for(var t=0;t=m.length)return;var o=n[t];if("string"==typeof o||"string"==typeof o.content){var a=m[i],r="string"==typeof o?o:o.content,s=r.indexOf(a);if(-1!==s){++i;var c=r.substring(0,s),d=l(u[a]),p=r.substring(s+a.length),f=[];if(c&&f.push(c),f.push(d),p){var h=[p];e(h),f.push.apply(f,h)}"string"==typeof o?(n.splice.apply(n,[t,1].concat(f)),t+=f.length-1):o.content=f}}else{var g=o.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(o,d,"language-"+o,n)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),n].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function m(e){return"string"==typeof e?e:Array.isArray(e)?e.map(m).join(""):m(e.content)}e.hooks.add("after-tokenize",(function(n){n.language in d&&function n(t){for(var o=0,a=t.length;o]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var n=e.languages.extend("typescript",{});delete n["class-name"],e.languages.typescript["class-name"].inside=n,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:n}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function n(e,n){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),n)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:n(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:n(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:n(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var t=["function","function-variable","method","method-variable","property-access"],o=0;o*\.{3}(?:[^{}]|)*\})/.source;function r(e,n){return e=e.replace(//g,(function(){return t})).replace(//g,(function(){return o})).replace(//g,(function(){return a})),RegExp(e,n)}a=r(a).source,e.languages.jsx=e.languages.extend("markup",n),e.languages.jsx.tag.pattern=r(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=n.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:r(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:r(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},s=function(n){for(var t=[],o=0;o0&&t[t.length-1].tagName===i(a.content[0].content[1])&&t.pop():"/>"===a.content[a.content.length-1].content||t.push({tagName:i(a.content[0].content[1]),openedBraces:0}):t.length>0&&"punctuation"===a.type&&"{"===a.content?t[t.length-1].openedBraces++:t.length>0&&t[t.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?t[t.length-1].openedBraces--:r=!0),(r||"string"==typeof a)&&t.length>0&&0===t[t.length-1].openedBraces){var c=i(a);o0&&("string"==typeof n[o-1]||"plain-text"===n[o-1].type)&&(c=i(n[o-1])+c,n.splice(o-1,1),o--),n[o]=new e.Token("plain-text",c,null,c)}a.content&&"string"!=typeof a.content&&s(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var n={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(n).forEach((function(t){var o=n[t],a=[];/^\w+$/.test(t)||a.push(/\w+/.exec(t)[0]),"diff"===t&&a.push("bold"),e.languages.diff[t]={pattern:RegExp("^(?:["+o+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(t)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:n})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function n(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(t,o,a,r){if(t.language===o){var i=t.tokenStack=[];t.code=t.code.replace(a,(function(e){if("function"==typeof r&&!r(e))return e;for(var a,s=i.length;-1!==t.code.indexOf(a=n(o,s));)++s;return i[s]=e,a})),t.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(t,o){if(t.language===o&&t.tokenStack){t.grammar=e.languages[o];var a=0,r=Object.keys(t.tokenStack);!function i(s){for(var c=0;c=r.length);c++){var l=s[c];if("string"==typeof l||l.content&&"string"==typeof l.content){var u=r[a],d=t.tokenStack[u],m="string"==typeof l?l:l.content,p=n(o,u),f=m.indexOf(p);if(f>-1){++a;var h=m.substring(0,f),g=new e.Token(o,e.tokenize(d,t.grammar),"language-"+o,d),v=m.substring(f+p.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof l?s.splice.apply(s,[c,1].concat(b)):l.content=b}}else l.content&&i(l.content)}return s}(t.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(n){e.languages["markup-templating"].buildPlaceholders(n,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(n){e.languages["markup-templating"].tokenizePlaceholders(n,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var n=/\$[-\w]+|#\{\$[-\w]+\}/,t=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:n,operator:t}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:n,operator:t,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var n={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},t={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},o={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:n,number:t,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:n,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:t,punctuation:/[{}()\[\];:,]/};o.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:o}},o.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:o}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:o}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:o}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:o}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:o.interpolation}},rest:o}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:o.interpolation,comment:o.comment,punctuation:/[{},]/}},func:o.func,string:o.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:o.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var n=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",n),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var t=e.languages.tsx.tag;t.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const r=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,n,t)=>{const o=t(9901),a=t(9642),r=new Set;function i(e){void 0===e?e=Object.keys(o.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const n=[...r,...Object.keys(Prism.languages)];a(o,e,n).load((e=>{if(!(e in o.languages))return void(i.silent||console.warn("Language does not exist: "+e));const n="./prism-"+e;delete t.c[t(6500).resolve(n)],delete Prism.languages[e],t(6500)(n),r.add(e)}))}i.silent=!1,e.exports=i},6726:(e,n,t)=>{var o={"./":2885};function a(e){var n=r(e);return t(n)}function r(e){if(!t.o(o,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return o[e]}a.keys=function(){return Object.keys(o)},a.resolve=r,e.exports=a,a.id=6726},6500:(e,n,t)=>{var o={"./":2885};function a(e){var n=r(e);return t(n)}function r(e){if(!t.o(o,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return o[e]}a.keys=function(){return Object.keys(o)},a.resolve=r,e.exports=a,a.id=6500},9642:e=>{"use strict";var n=function(){var e=function(){};function n(e,n){Array.isArray(e)?e.forEach(n):null!=e&&n(e,0)}function t(e){for(var n={},t=0,o=e.length;t "));var s={},c=e[o];if(c){function l(n){if(!(n in e))throw new Error(o+" depends on an unknown component "+n);if(!(n in s))for(var i in a(n,r),s[n]=!0,t[n])s[i]=!0}n(c.require,l),n(c.optional,l),n(c.modify,l)}t[o]=s,r.pop()}}return function(e){var n=t[e];return n||(a(e,o),n=t[e]),n}}function a(e){for(var n in e)return!0;return!1}return function(r,i,s){var c=function(e){var n={};for(var t in e){var o=e[t];for(var a in o)if("meta"!=a){var r=o[a];n[a]="string"==typeof r?{title:r}:r}}return n}(r),l=function(e){var t;return function(o){if(o in e)return o;if(!t)for(var a in t={},e){var r=e[a];n(r&&r.alias,(function(n){if(n in t)throw new Error(n+" cannot be alias for both "+a+" and "+t[n]);if(n in e)throw new Error(n+" cannot be alias of "+a+" because it is a component.");t[n]=a}))}return t[o]||o}}(c);i=i.map(l),s=(s||[]).map(l);var u=t(i),d=t(s);i.forEach((function e(t){var o=c[t];n(o&&o.require,(function(n){n in d||(u[n]=!0,e(n))}))}));for(var m,p=o(c),f=u;a(f);){for(var h in m={},f){var g=c[h];n(g&&g.modify,(function(e){e in d&&(m[e]=!0)}))}for(var v in d)if(!(v in u))for(var b in p(v))if(b in u){m[v]=!0;break}for(var y in f=m)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(n){e.push(n)})),e},load:function(n,t){return function(n,t,o,a){var r=a?a.series:void 0,i=a?a.parallel:e,s={},c={};function l(e){if(e in s)return s[e];c[e]=!0;var a,u=[];for(var d in n(e))d in t&&u.push(d);if(0===u.length)a=o(e);else{var m=i(u.map((function(e){var n=l(e);return delete c[e],n})));r?a=r(m,(function(){return o(e)})):o(e)}return s[e]=a}for(var u in t)l(u);var d=[];for(var m in c)d.push(s[m]);return i(d)}(p,u,n,t)}};return w}}();e.exports=n},2703:(e,n,t)=>{"use strict";var o=t(414);function a(){}function r(){}r.resetWarningCache=a,e.exports=function(){function e(e,n,t,a,r,i){if(i!==o){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function n(){return e}e.isRequired=e;var t={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:r,resetWarningCache:a};return t.PropTypes=t,t}},5697:(e,n,t)=>{e.exports=t(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,n,t)=>{"use strict";var o=t(7294),a=t(7418),r=t(3840);function i(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t