From 5e65538f44b3b57cf2c3191f29a0f6b085e224ba Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 14 Sep 2023 11:05:11 -0400
Subject: [PATCH 01/62] cnv notebook draft
---
v4-cnvs-test1.ipynb | 558 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 558 insertions(+)
create mode 100644 v4-cnvs-test1.ipynb
diff --git a/v4-cnvs-test1.ipynb b/v4-cnvs-test1.ipynb
new file mode 100644
index 000000000..af2e5794b
--- /dev/null
+++ b/v4-cnvs-test1.ipynb
@@ -0,0 +1,558 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "ffd65742-b1f3-4b7c-8601-a7749886a3dc",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import hail as hl"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "e284a9b5-d1c2-4593-bcad-2600c8de9c62",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import itertools"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "2d497a90-de5d-41f9-9436-f5cb0ba9e3ff",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "cnvs_vcf_path = \"GNOMAD_V4.4.3_browser_prototype_1.1.vcf.gz\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "b3d711a4-e822-46fb-a3c4-9158ebd2552a",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Initializing Hail with default parameters...\n",
+ "SLF4J: No SLF4J providers were found.\n",
+ "SLF4J: Defaulting to no-operation (NOP) logger implementation\n",
+ "SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\n",
+ "SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier.\n",
+ "SLF4J: Ignoring binding found at [jar:file:/Users/ealarman/.pyenv/versions/3.9.18/envs/myenv/lib/python3.9/site-packages/pyspark/jars/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]\n",
+ "SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an explanation.\n",
+ "Setting default log level to \"WARN\".\n",
+ "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n",
+ "Running on Apache Spark version 3.3.3\n",
+ "SparkUI available at http://wm50c-6f4.broadinstitute.org:4040\n",
+ "Welcome to\n",
+ " __ __ <>__\n",
+ " / /_/ /__ __/ /\n",
+ " / __ / _ `/ / /\n",
+ " /_/ /_/\\_,_/_/_/ version 0.2.120-f00f916faf78\n",
+ "LOGGING: writing to /Users/ealarman/gnomad-browser/hail-20230908-1000-0.2.120-f00f916faf78.log\n"
+ ]
+ }
+ ],
+ "source": [
+ "ds = hl.import_vcf(cnvs_vcf_path, reference_genome='GRCh38', force_bgz=True).rows()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "26903cba-df9f-41c8-a37d-dd5327dcc164",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "ds_ht_path = \"GNOMAD_V4.4.3_browser_prototype_1.1.ht\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "1b65d9be-9245-413f-a144-4bcd7eca3e83",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "2023-09-08 10:00:56.889 Hail: INFO: scanning VCF for sortedness...\n",
+ "2023-09-08 10:01:03.698 Hail: INFO: VCF is out of order... (0 + 1) / 1]\n",
+ " Write the dataset to disk before running multiple queries to avoid multiple costly data shuffles.\n",
+ "2023-09-08 10:01:05.041 Hail: INFO: Ordering unsorted dataset with network shuffle\n",
+ "2023-09-08 10:01:09.194 Hail: INFO: wrote table with 545 rows in 1 partition to GNOMAD_V4.4.3_browser_prototype_1.1.ht\n"
+ ]
+ }
+ ],
+ "source": [
+ "ds.write(ds_ht_path)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "57fd9cde-95ff-4abb-aead-51686d1b4462",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "ds = hl.read_table(ds_ht_path)\n",
+ "ds = ds.sample(0.01, seed=1234)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "ece62cc3-3a7c-43fc-9e97-d106a0239909",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "ds_sampled_ht_path = \"GNOMAD_V4.4.3_browser_prototype_1.1.sampled.ht\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "31102dd2-6e0a-48eb-bebd-756df80ee58b",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "2023-09-08 10:01:12.605 Hail: INFO: wrote table with 5 rows in 1 partition to GNOMAD_V4.4.3_browser_prototype_1.1.sampled.ht\n"
+ ]
+ }
+ ],
+ "source": [
+ "ds.write(ds_sampled_ht_path)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "59264bf6-b2c0-4283-a727-01069101ca4e",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Initializing Hail with default parameters...\n",
+ "SLF4J: No SLF4J providers were found.\n",
+ "SLF4J: Defaulting to no-operation (NOP) logger implementation\n",
+ "SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\n",
+ "SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier.\n",
+ "SLF4J: Ignoring binding found at [jar:file:/Users/ealarman/.pyenv/versions/3.9.18/lib/python3.9/site-packages/pyspark/jars/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]\n",
+ "SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an explanation.\n",
+ "Setting default log level to \"WARN\".\n",
+ "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n",
+ "Running on Apache Spark version 3.3.3\n",
+ "SparkUI available at http://wm50c-6f4.broadinstitute.org:4040\n",
+ "Welcome to\n",
+ " __ __ <>__\n",
+ " / /_/ /__ __/ /\n",
+ " / __ / _ `/ / /\n",
+ " /_/ /_/\\_,_/_/_/ version 0.2.121-35da6f47ddcd\n",
+ "LOGGING: writing to /Users/ealarman/gnomad-browser/hail-20230911-1039-0.2.121-35da6f47ddcd.log\n"
+ ]
+ }
+ ],
+ "source": [
+ "sampled_ds = hl.read_table(ds_sampled_ht_path)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "83040094-3a19-46a2-9a89-51aa6076b361",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "[Stage 0:===========================================================(1 + 0) / 1]\r"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
info
locus
alleles
rsid
qual
filters
END
SVLEN
SVTYPE
POSMIN
POSMAX
ENDMIN
ENDMAX
Genes
SC
afr_SC
amr_SC
asj_SC
eas_SC
fin_SC
mid_SC
nfe_SC
sas_SC
SN
afr_SN
amr_SN
asj_SN
eas_SN
fin_SN
mid_SN
nfe_SN
sas_SN
SF
afr_SF
amr_SF
asj_SF
eas_SF
fin_SF
mid_SF
nfe_SF
sas_SF
MALE_SC
afr_MALE_SC
amr_MALE_SC
asj_MALE_SC
eas_MALE_SC
fin_MALE_SC
mid_MALE_SC
nfe_MALE_SC
sas_MALE_SC
MALE_SN
afr_MALE_SN
amr_MALE_SN
asj_MALE_SN
eas_MALE_SN
fin_MALE_SN
mid_MALE_SN
nfe_MALE_SN
sas_MALE_SN
MALE_SF
afr_MALE_SF
amr_MALE_SF
asj_MALE_SF
eas_MALE_SF
fin_MALE_SF
mid_MALE_SF
nfe_MALE_SF
sas_MALE_SF
FEMALE_SC
afr_FEMALE_SC
amr_FEMALE_SC
asj_FEMALE_SC
eas_FEMALE_SC
fin_FEMALE_SC
mid_FEMALE_SC
nfe_FEMALE_SC
sas_FEMALE_SC
FEMALE_SN
afr_FEMALE_SN
amr_FEMALE_SN
asj_FEMALE_SN
eas_FEMALE_SN
fin_FEMALE_SN
mid_FEMALE_SN
nfe_FEMALE_SN
sas_FEMALE_SN
FEMALE_SF
afr_FEMALE_SF
amr_FEMALE_SF
asj_FEMALE_SF
eas_FEMALE_SF
fin_FEMALE_SF
mid_FEMALE_SF
nfe_FEMALE_SF
sas_FEMALE_SF
locus<GRCh38> array<str> str float64 set<str> int32 int32 str int32 int32 int32 int32 str float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 \n",
+ "chr1:1034009 ["N","<DEL>"] "variantbs80_246__DEL" -1.00e+01 {"TRUE"} 1035422 1413 "DEL" 1034009 1034009 1035422 1035422 "None" 2.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 2.00e+00 0.00e+00 3.75e+05 9.11e+03 1.66e+04 8.31e+03 1.26e+04 1.81e+04 1.16e+03 2.65e+05 2.76e+04 5.33e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.55e-06 0.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 1.91e+05 3.76e+03 7.07e+03 4.35e+03 6.35e+03 8.68e+03 6.57e+02 1.31e+05 2.12e+04 5.23e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.62e-06 0.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 1.84e+05 5.36e+03 9.57e+03 3.96e+03 6.29e+03 9.38e+03 5.01e+02 1.34e+05 6.36e+03 5.43e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.47e-06 0.00e+00 \n",
+ "chr1:102890354 ["N","<DUP>"] "variantbs80_32404__DUP" -1.00e+01 {"TRUE"} 102934654 44300 "DUP" 102890354 102890354 102934654 102934654 "None" 2.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 3.75e+05 9.22e+03 1.66e+04 8.33e+03 1.26e+04 1.81e+04 1.14e+03 2.65e+05 2.76e+04 5.33e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 3.78e-06 0.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.91e+05 3.82e+03 7.04e+03 4.39e+03 6.33e+03 8.63e+03 6.55e+02 1.31e+05 2.12e+04 5.23e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 1.84e+05 5.41e+03 9.60e+03 3.95e+03 6.31e+03 9.46e+03 4.85e+02 1.34e+05 6.36e+03 5.43e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.47e-06 0.00e+00 \n",
+ "chr1:103550844 ["N","<DUP>"] "variantbs80_32704__DUP" -1.00e+01 {"TRUE"} 103570911 20067 "DUP" 103550844 103550844 103570911 103570911 "None" 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 3.75e+05 9.09e+03 1.67e+04 8.37e+03 1.27e+04 1.81e+04 1.12e+03 2.65e+05 2.76e+04 2.66e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 3.77e-06 0.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 1.91e+05 3.75e+03 7.05e+03 4.37e+03 6.33e+03 8.69e+03 6.60e+02 1.31e+05 2.12e+04 5.23e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.62e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.84e+05 5.34e+03 9.61e+03 4.00e+03 6.33e+03 9.36e+03 4.60e+02 1.34e+05 6.42e+03 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 \n",
+ "chr1:115744731 ["N","<DUP>"] "variantbs80_36173__DUP" -1.00e+01 {"TRUE"} 115768879 24148 "DUP" 115744731 115744731 115768879 115768879 "None" 8.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.00e+00 0.00e+00 3.75e+05 9.14e+03 1.66e+04 8.33e+03 1.27e+04 1.81e+04 1.13e+03 2.65e+05 2.76e+04 2.13e-05 1.09e-04 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 2.64e-05 0.00e+00 1.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.91e+05 3.79e+03 7.10e+03 4.35e+03 6.39e+03 8.68e+03 6.53e+02 1.31e+05 2.12e+04 5.22e-06 2.64e-04 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.00e+00 0.00e+00 1.84e+05 5.35e+03 9.55e+03 3.98e+03 6.28e+03 9.41e+03 4.74e+02 1.34e+05 6.39e+03 3.81e-05 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 5.24e-05 0.00e+00 \n",
+ "chr1:119380407 ["N","<DUP>"] "variantbs80_37041__DUP" -1.00e+01 {"TRUE"} 119740616 360209 "DUP" 119380407 119380407 119727782 119744324 "HAO2,HSD3B1,HSD3B2,ZNF697" 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 3.75e+05 9.14e+03 1.66e+04 8.34e+03 1.26e+04 1.81e+04 1.16e+03 2.65e+05 2.76e+04 2.66e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 3.78e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.91e+05 3.77e+03 7.12e+03 4.39e+03 6.31e+03 8.63e+03 6.68e+02 1.31e+05 2.12e+04 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 1.84e+05 5.37e+03 9.53e+03 3.95e+03 6.29e+03 9.43e+03 4.88e+02 1.34e+05 6.42e+03 5.43e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.48e-06 0.00e+00 \n",
+ "
"
+ ],
+ "text/plain": [
+ "+----------------+---------------+--------------------------+-----------+\n",
+ "| locus | alleles | rsid | qual |\n",
+ "+----------------+---------------+--------------------------+-----------+\n",
+ "| locus | array | str | float64 |\n",
+ "+----------------+---------------+--------------------------+-----------+\n",
+ "| chr1:1034009 | [\"N\",\"\"] | \"variantbs80_246__DEL\" | -1.00e+01 |\n",
+ "| chr1:102890354 | [\"N\",\"\"] | \"variantbs80_32404__DUP\" | -1.00e+01 |\n",
+ "| chr1:103550844 | [\"N\",\"\"] | \"variantbs80_32704__DUP\" | -1.00e+01 |\n",
+ "| chr1:115744731 | [\"N\",\"\"] | \"variantbs80_36173__DUP\" | -1.00e+01 |\n",
+ "| chr1:119380407 | [\"N\",\"\"] | \"variantbs80_37041__DUP\" | -1.00e+01 |\n",
+ "+----------------+---------------+--------------------------+-----------+\n",
+ "\n",
+ "+----------+-----------+------------+-------------+-------------+-------------+\n",
+ "| filters | info.END | info.SVLEN | info.SVTYPE | info.POSMIN | info.POSMAX |\n",
+ "+----------+-----------+------------+-------------+-------------+-------------+\n",
+ "| set | int32 | int32 | str | int32 | int32 |\n",
+ "+----------+-----------+------------+-------------+-------------+-------------+\n",
+ "| {\"TRUE\"} | 1035422 | 1413 | \"DEL\" | 1034009 | 1034009 |\n",
+ "| {\"TRUE\"} | 102934654 | 44300 | \"DUP\" | 102890354 | 102890354 |\n",
+ "| {\"TRUE\"} | 103570911 | 20067 | \"DUP\" | 103550844 | 103550844 |\n",
+ "| {\"TRUE\"} | 115768879 | 24148 | \"DUP\" | 115744731 | 115744731 |\n",
+ "| {\"TRUE\"} | 119740616 | 360209 | \"DUP\" | 119380407 | 119380407 |\n",
+ "+----------+-----------+------------+-------------+-------------+-------------+\n",
+ "\n",
+ "+-------------+-------------+-----------------------------+----------+\n",
+ "| info.ENDMIN | info.ENDMAX | info.Genes | info.SC |\n",
+ "+-------------+-------------+-----------------------------+----------+\n",
+ "| int32 | int32 | str | float64 |\n",
+ "+-------------+-------------+-----------------------------+----------+\n",
+ "| 1035422 | 1035422 | \"None\" | 2.00e+00 |\n",
+ "| 102934654 | 102934654 | \"None\" | 2.00e+00 |\n",
+ "| 103570911 | 103570911 | \"None\" | 1.00e+00 |\n",
+ "| 115768879 | 115768879 | \"None\" | 8.00e+00 |\n",
+ "| 119727782 | 119744324 | \"HAO2,HSD3B1,HSD3B2,ZNF697\" | 1.00e+00 |\n",
+ "+-------------+-------------+-----------------------------+----------+\n",
+ "\n",
+ "+-------------+-------------+-------------+-------------+-------------+\n",
+ "| info.afr_SC | info.amr_SC | info.asj_SC | info.eas_SC | info.fin_SC |\n",
+ "+-------------+-------------+-------------+-------------+-------------+\n",
+ "| float64 | float64 | float64 | float64 | float64 |\n",
+ "+-------------+-------------+-------------+-------------+-------------+\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 1.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "+-------------+-------------+-------------+-------------+-------------+\n",
+ "\n",
+ "+-------------+-------------+-------------+----------+-------------+\n",
+ "| info.mid_SC | info.nfe_SC | info.sas_SC | info.SN | info.afr_SN |\n",
+ "+-------------+-------------+-------------+----------+-------------+\n",
+ "| float64 | float64 | float64 | float64 | float64 |\n",
+ "+-------------+-------------+-------------+----------+-------------+\n",
+ "| 0.00e+00 | 2.00e+00 | 0.00e+00 | 3.75e+05 | 9.11e+03 |\n",
+ "| 0.00e+00 | 1.00e+00 | 0.00e+00 | 3.75e+05 | 9.22e+03 |\n",
+ "| 0.00e+00 | 1.00e+00 | 0.00e+00 | 3.75e+05 | 9.09e+03 |\n",
+ "| 0.00e+00 | 7.00e+00 | 0.00e+00 | 3.75e+05 | 9.14e+03 |\n",
+ "| 0.00e+00 | 1.00e+00 | 0.00e+00 | 3.75e+05 | 9.14e+03 |\n",
+ "+-------------+-------------+-------------+----------+-------------+\n",
+ "\n",
+ "+-------------+-------------+-------------+-------------+-------------+\n",
+ "| info.amr_SN | info.asj_SN | info.eas_SN | info.fin_SN | info.mid_SN |\n",
+ "+-------------+-------------+-------------+-------------+-------------+\n",
+ "| float64 | float64 | float64 | float64 | float64 |\n",
+ "+-------------+-------------+-------------+-------------+-------------+\n",
+ "| 1.66e+04 | 8.31e+03 | 1.26e+04 | 1.81e+04 | 1.16e+03 |\n",
+ "| 1.66e+04 | 8.33e+03 | 1.26e+04 | 1.81e+04 | 1.14e+03 |\n",
+ "| 1.67e+04 | 8.37e+03 | 1.27e+04 | 1.81e+04 | 1.12e+03 |\n",
+ "| 1.66e+04 | 8.33e+03 | 1.27e+04 | 1.81e+04 | 1.13e+03 |\n",
+ "| 1.66e+04 | 8.34e+03 | 1.26e+04 | 1.81e+04 | 1.16e+03 |\n",
+ "+-------------+-------------+-------------+-------------+-------------+\n",
+ "\n",
+ "+-------------+-------------+----------+-------------+-------------+\n",
+ "| info.nfe_SN | info.sas_SN | info.SF | info.afr_SF | info.amr_SF |\n",
+ "+-------------+-------------+----------+-------------+-------------+\n",
+ "| float64 | float64 | float64 | float64 | float64 |\n",
+ "+-------------+-------------+----------+-------------+-------------+\n",
+ "| 2.65e+05 | 2.76e+04 | 5.33e-06 | 0.00e+00 | 0.00e+00 |\n",
+ "| 2.65e+05 | 2.76e+04 | 5.33e-06 | 0.00e+00 | 0.00e+00 |\n",
+ "| 2.65e+05 | 2.76e+04 | 2.66e-06 | 0.00e+00 | 0.00e+00 |\n",
+ "| 2.65e+05 | 2.76e+04 | 2.13e-05 | 1.09e-04 | 0.00e+00 |\n",
+ "| 2.65e+05 | 2.76e+04 | 2.66e-06 | 0.00e+00 | 0.00e+00 |\n",
+ "+-------------+-------------+----------+-------------+-------------+\n",
+ "\n",
+ "+-------------+-------------+-------------+-------------+-------------+\n",
+ "| info.asj_SF | info.eas_SF | info.fin_SF | info.mid_SF | info.nfe_SF |\n",
+ "+-------------+-------------+-------------+-------------+-------------+\n",
+ "| float64 | float64 | float64 | float64 | float64 |\n",
+ "+-------------+-------------+-------------+-------------+-------------+\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 7.55e-06 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 3.78e-06 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 3.77e-06 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 2.64e-05 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 3.78e-06 |\n",
+ "+-------------+-------------+-------------+-------------+-------------+\n",
+ "\n",
+ "+-------------+--------------+------------------+------------------+\n",
+ "| info.sas_SF | info.MALE_SC | info.afr_MALE_SC | info.amr_MALE_SC |\n",
+ "+-------------+--------------+------------------+------------------+\n",
+ "| float64 | float64 | float64 | float64 |\n",
+ "+-------------+--------------+------------------+------------------+\n",
+ "| 0.00e+00 | 1.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 1.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 1.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 1.00e+00 | 1.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "+-------------+--------------+------------------+------------------+\n",
+ "\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "| info.asj_MALE_SC | info.eas_MALE_SC | info.fin_MALE_SC | info.mid_MALE_SC |\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "| float64 | float64 | float64 | float64 |\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "\n",
+ "+------------------+------------------+--------------+------------------+\n",
+ "| info.nfe_MALE_SC | info.sas_MALE_SC | info.MALE_SN | info.afr_MALE_SN |\n",
+ "+------------------+------------------+--------------+------------------+\n",
+ "| float64 | float64 | float64 | float64 |\n",
+ "+------------------+------------------+--------------+------------------+\n",
+ "| 1.00e+00 | 0.00e+00 | 1.91e+05 | 3.76e+03 |\n",
+ "| 0.00e+00 | 0.00e+00 | 1.91e+05 | 3.82e+03 |\n",
+ "| 1.00e+00 | 0.00e+00 | 1.91e+05 | 3.75e+03 |\n",
+ "| 0.00e+00 | 0.00e+00 | 1.91e+05 | 3.79e+03 |\n",
+ "| 0.00e+00 | 0.00e+00 | 1.91e+05 | 3.77e+03 |\n",
+ "+------------------+------------------+--------------+------------------+\n",
+ "\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "| info.amr_MALE_SN | info.asj_MALE_SN | info.eas_MALE_SN | info.fin_MALE_SN |\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "| float64 | float64 | float64 | float64 |\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "| 7.07e+03 | 4.35e+03 | 6.35e+03 | 8.68e+03 |\n",
+ "| 7.04e+03 | 4.39e+03 | 6.33e+03 | 8.63e+03 |\n",
+ "| 7.05e+03 | 4.37e+03 | 6.33e+03 | 8.69e+03 |\n",
+ "| 7.10e+03 | 4.35e+03 | 6.39e+03 | 8.68e+03 |\n",
+ "| 7.12e+03 | 4.39e+03 | 6.31e+03 | 8.63e+03 |\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "\n",
+ "+------------------+------------------+------------------+--------------+\n",
+ "| info.mid_MALE_SN | info.nfe_MALE_SN | info.sas_MALE_SN | info.MALE_SF |\n",
+ "+------------------+------------------+------------------+--------------+\n",
+ "| float64 | float64 | float64 | float64 |\n",
+ "+------------------+------------------+------------------+--------------+\n",
+ "| 6.57e+02 | 1.31e+05 | 2.12e+04 | 5.23e-06 |\n",
+ "| 6.55e+02 | 1.31e+05 | 2.12e+04 | 5.23e-06 |\n",
+ "| 6.60e+02 | 1.31e+05 | 2.12e+04 | 5.23e-06 |\n",
+ "| 6.53e+02 | 1.31e+05 | 2.12e+04 | 5.22e-06 |\n",
+ "| 6.68e+02 | 1.31e+05 | 2.12e+04 | 0.00e+00 |\n",
+ "+------------------+------------------+------------------+--------------+\n",
+ "\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "| info.afr_MALE_SF | info.amr_MALE_SF | info.asj_MALE_SF | info.eas_MALE_SF |\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "| float64 | float64 | float64 | float64 |\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 2.64e-04 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "| info.fin_MALE_SF | info.mid_MALE_SF | info.nfe_MALE_SF | info.sas_MALE_SF |\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "| float64 | float64 | float64 | float64 |\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "| 0.00e+00 | 0.00e+00 | 7.62e-06 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 7.62e-06 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "+------------------+------------------+------------------+------------------+\n",
+ "\n",
+ "+----------------+--------------------+--------------------+\n",
+ "| info.FEMALE_SC | info.afr_FEMALE_SC | info.amr_FEMALE_SC |\n",
+ "+----------------+--------------------+--------------------+\n",
+ "| float64 | float64 | float64 |\n",
+ "+----------------+--------------------+--------------------+\n",
+ "| 1.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 1.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 7.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 1.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "+----------------+--------------------+--------------------+\n",
+ "\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| info.asj_FEMALE_SC | info.eas_FEMALE_SC | info.fin_FEMALE_SC |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| float64 | float64 | float64 |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| info.mid_FEMALE_SC | info.nfe_FEMALE_SC | info.sas_FEMALE_SC |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| float64 | float64 | float64 |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| 0.00e+00 | 1.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 1.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 7.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 1.00e+00 | 0.00e+00 |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "\n",
+ "+----------------+--------------------+--------------------+\n",
+ "| info.FEMALE_SN | info.afr_FEMALE_SN | info.amr_FEMALE_SN |\n",
+ "+----------------+--------------------+--------------------+\n",
+ "| float64 | float64 | float64 |\n",
+ "+----------------+--------------------+--------------------+\n",
+ "| 1.84e+05 | 5.36e+03 | 9.57e+03 |\n",
+ "| 1.84e+05 | 5.41e+03 | 9.60e+03 |\n",
+ "| 1.84e+05 | 5.34e+03 | 9.61e+03 |\n",
+ "| 1.84e+05 | 5.35e+03 | 9.55e+03 |\n",
+ "| 1.84e+05 | 5.37e+03 | 9.53e+03 |\n",
+ "+----------------+--------------------+--------------------+\n",
+ "\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| info.asj_FEMALE_SN | info.eas_FEMALE_SN | info.fin_FEMALE_SN |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| float64 | float64 | float64 |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| 3.96e+03 | 6.29e+03 | 9.38e+03 |\n",
+ "| 3.95e+03 | 6.31e+03 | 9.46e+03 |\n",
+ "| 4.00e+03 | 6.33e+03 | 9.36e+03 |\n",
+ "| 3.98e+03 | 6.28e+03 | 9.41e+03 |\n",
+ "| 3.95e+03 | 6.29e+03 | 9.43e+03 |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| info.mid_FEMALE_SN | info.nfe_FEMALE_SN | info.sas_FEMALE_SN |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| float64 | float64 | float64 |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| 5.01e+02 | 1.34e+05 | 6.36e+03 |\n",
+ "| 4.85e+02 | 1.34e+05 | 6.36e+03 |\n",
+ "| 4.60e+02 | 1.34e+05 | 6.42e+03 |\n",
+ "| 4.74e+02 | 1.34e+05 | 6.39e+03 |\n",
+ "| 4.88e+02 | 1.34e+05 | 6.42e+03 |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "\n",
+ "+----------------+--------------------+--------------------+\n",
+ "| info.FEMALE_SF | info.afr_FEMALE_SF | info.amr_FEMALE_SF |\n",
+ "+----------------+--------------------+--------------------+\n",
+ "| float64 | float64 | float64 |\n",
+ "+----------------+--------------------+--------------------+\n",
+ "| 5.43e-06 | 0.00e+00 | 0.00e+00 |\n",
+ "| 5.43e-06 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 3.81e-05 | 0.00e+00 | 0.00e+00 |\n",
+ "| 5.43e-06 | 0.00e+00 | 0.00e+00 |\n",
+ "+----------------+--------------------+--------------------+\n",
+ "\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| info.asj_FEMALE_SF | info.eas_FEMALE_SF | info.fin_FEMALE_SF |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| float64 | float64 | float64 |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| info.mid_FEMALE_SF | info.nfe_FEMALE_SF | info.sas_FEMALE_SF |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| float64 | float64 | float64 |\n",
+ "+--------------------+--------------------+--------------------+\n",
+ "| 0.00e+00 | 7.47e-06 | 0.00e+00 |\n",
+ "| 0.00e+00 | 7.47e-06 | 0.00e+00 |\n",
+ "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
+ "| 0.00e+00 | 5.24e-05 | 0.00e+00 |\n",
+ "| 0.00e+00 | 7.48e-06 | 0.00e+00 |\n",
+ "+--------------------+--------------------+--------------------+"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sampled_ds.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "f8b581b4-6ef1-4094-abd2-36ec58e0be8c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "FREQ_FIELDS = ['SC','SN','SF']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "a9852dc3-46d2-49df-a76a-958b25e80c74",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "POPULATIONS = ['afr','amr','asj','eas','fin','mid','nfe','sas']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "6fdfabad-7b50-405a-af4e-470bc66afcb2",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "DIVISIONS = list(\n",
+ " itertools.chain.from_iterable(\n",
+ " [(pop, pop), (f\"{pop}_XX\", f\"{pop}_FEMALE\"), (f\"{pop}_XY\", f\"{pop}_MALE\")] for pop in POPULATIONS\n",
+ " )\n",
+ ") + [(\"XX\", \"FEMALE\"), (\"XY\", \"MALE\")]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "ec8cb031-bf5a-42bd-9de6-5237d57910f3",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.18"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
From 46ad865933cb1cf73fa34abd5542d822da68e2df Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 21 Sep 2023 16:21:50 -0400
Subject: [PATCH 02/62] inital pipelines and task creation
---
.../datasets/gnomad_v4/__init__.py | 0
.../datasets/gnomad_v4/gnomad_v4_cnvs.py | 66 +++
.../pipelines/export_to_elasticsearch.py | 15 +
v4-cnvs-test1.ipynb | 558 ------------------
4 files changed, 81 insertions(+), 558 deletions(-)
create mode 100644 data-pipeline/src/data_pipeline/datasets/gnomad_v4/__init__.py
create mode 100644 data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
delete mode 100644 v4-cnvs-test1.ipynb
diff --git a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/__init__.py b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
new file mode 100644
index 000000000..b477a8443
--- /dev/null
+++ b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
@@ -0,0 +1,66 @@
+import itertools
+
+import hail as hl
+
+
+def x_position(chrom, position):
+ contig_number = (
+ hl.case().when(chrom == "X", 23).when(chrom == "Y", 24).when(chrom[0] == "M", 25).default(hl.int(chrom))
+ )
+ return hl.int64(contig_number) * 1_000_000_000 + position
+
+
+FREQ_FIELDS = ['SC','SN','SF']
+POPULATIONS = ['afr','amr','asj','eas','fin','mid','nfe','sas']
+DIVISIONS = list(
+ itertools.chain.from_iterable(
+ [(pop, pop), (f"{pop}_XX", f"{pop}_FEMALE"), (f"{pop}_XY", f"{pop}_MALE")] for pop in POPULATIONS
+ )
+ ) + [("XX", "FEMALE"), ("XY", "MALE")]
+
+# vcf_paths = "GNOMAD_V4.4.3_browser_prototype_1.1.vcf.gz"
+def prepare_gnomad_v4_cnvs(vcf_path):
+ ds = hl.import_vcf(vcf_path, force_bgz=True, min_partitions=32, reference_genome="GRCh38").rows()
+
+ ds = ds.annotate(
+ variant_id=ds.rsid.replace("^variantbs80_", ""),
+ reference_genome="GRCh38",
+ # Start
+ chrom=ds.locus.contig.replace("chr", ""),
+ pos=ds.locus.position,
+ # End
+ end=ds.info.END,
+ # Other
+ length=ds.info.SVLEN,
+ type=ds.info.SVTYPE,
+ alts=ds.alleles[1:],
+ )
+
+ ds = ds.annotate(
+ xpos=x_position(ds.chrom, ds.pos),
+ xend=x_position(ds.chrom, ds.end),
+ )
+
+ ds = ds.annotate(genes=hl.set(hl.array(hl.str(ds.info.Genes).split(','))))
+
+ ds = ds.annotate(
+ freq=hl.struct(
+ **{field.lower(): ds.info[field] for field in FREQ_FIELDS},
+ populations=[
+ hl.struct(id=pop_id, **{field.lower(): ds.info[f"{pop_key}_{field}"] for field in FREQ_FIELDS})
+ for (pop_id, pop_key) in DIVISIONS
+ ],
+ ))
+
+ ds = ds.key_by("variant_id")
+
+ ds = ds.annotate(
+ posmin = ds.info.POSMIN,
+ posmax = ds.info.POSMAX,
+ endmin = ds.info.ENDMIN,
+ endmax = ds.info.ENDMAX,
+ )
+
+ ds = ds.drop("locus", "alleles", "info", "rsid")
+ ds = ds.annotate(variant_id_upper_case=ds.variant_id.upper())
+ return ds
\ No newline at end of file
diff --git a/data-pipeline/src/data_pipeline/pipelines/export_to_elasticsearch.py b/data-pipeline/src/data_pipeline/pipelines/export_to_elasticsearch.py
index b6d7e5619..6495171c6 100644
--- a/data-pipeline/src/data_pipeline/pipelines/export_to_elasticsearch.py
+++ b/data-pipeline/src/data_pipeline/pipelines/export_to_elasticsearch.py
@@ -37,6 +37,7 @@
)
from data_pipeline.pipelines.gnomad_v3_short_tandem_repeats import pipeline as gnomad_v3_short_tandem_repeats_pipeline
+from data_pipeline.pipelines.gnomad_v4_cnvs import pipeline as gnomad_v4_cnvs_pipeline
logger = logging.getLogger("gnomad_data_pipeline")
@@ -105,6 +106,20 @@ def add_liftover_document_id(ds):
"block_size": 1_000,
},
},
+ ##############################################################################################################
+ # gnomAD v4 CNVs
+ ##############################################################################################################
+ "gnomad_v4_cnvs": {
+ "get_table": lambda: hl.read_table(gnomad_v4_cnvs_pipeline.get_output("cnvs").get_output_path()),
+ "args": {
+ "index": "gnomad_v4_cnvs",
+ "index_fields": ["variant_id", "xpos", "xend","genes"],
+ "id_field": "variant_id",
+ "num_shards": 1,
+ "block_size": 1_000,
+ },
+ },
+
##############################################################################################################
# gnomAD v3
##############################################################################################################
diff --git a/v4-cnvs-test1.ipynb b/v4-cnvs-test1.ipynb
deleted file mode 100644
index af2e5794b..000000000
--- a/v4-cnvs-test1.ipynb
+++ /dev/null
@@ -1,558 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "ffd65742-b1f3-4b7c-8601-a7749886a3dc",
- "metadata": {},
- "outputs": [],
- "source": [
- "import hail as hl"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "id": "e284a9b5-d1c2-4593-bcad-2600c8de9c62",
- "metadata": {},
- "outputs": [],
- "source": [
- "import itertools"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "2d497a90-de5d-41f9-9436-f5cb0ba9e3ff",
- "metadata": {},
- "outputs": [],
- "source": [
- "cnvs_vcf_path = \"GNOMAD_V4.4.3_browser_prototype_1.1.vcf.gz\""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "b3d711a4-e822-46fb-a3c4-9158ebd2552a",
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Initializing Hail with default parameters...\n",
- "SLF4J: No SLF4J providers were found.\n",
- "SLF4J: Defaulting to no-operation (NOP) logger implementation\n",
- "SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\n",
- "SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier.\n",
- "SLF4J: Ignoring binding found at [jar:file:/Users/ealarman/.pyenv/versions/3.9.18/envs/myenv/lib/python3.9/site-packages/pyspark/jars/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]\n",
- "SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an explanation.\n",
- "Setting default log level to \"WARN\".\n",
- "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n",
- "Running on Apache Spark version 3.3.3\n",
- "SparkUI available at http://wm50c-6f4.broadinstitute.org:4040\n",
- "Welcome to\n",
- " __ __ <>__\n",
- " / /_/ /__ __/ /\n",
- " / __ / _ `/ / /\n",
- " /_/ /_/\\_,_/_/_/ version 0.2.120-f00f916faf78\n",
- "LOGGING: writing to /Users/ealarman/gnomad-browser/hail-20230908-1000-0.2.120-f00f916faf78.log\n"
- ]
- }
- ],
- "source": [
- "ds = hl.import_vcf(cnvs_vcf_path, reference_genome='GRCh38', force_bgz=True).rows()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "26903cba-df9f-41c8-a37d-dd5327dcc164",
- "metadata": {},
- "outputs": [],
- "source": [
- "ds_ht_path = \"GNOMAD_V4.4.3_browser_prototype_1.1.ht\""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "1b65d9be-9245-413f-a144-4bcd7eca3e83",
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2023-09-08 10:00:56.889 Hail: INFO: scanning VCF for sortedness...\n",
- "2023-09-08 10:01:03.698 Hail: INFO: VCF is out of order... (0 + 1) / 1]\n",
- " Write the dataset to disk before running multiple queries to avoid multiple costly data shuffles.\n",
- "2023-09-08 10:01:05.041 Hail: INFO: Ordering unsorted dataset with network shuffle\n",
- "2023-09-08 10:01:09.194 Hail: INFO: wrote table with 545 rows in 1 partition to GNOMAD_V4.4.3_browser_prototype_1.1.ht\n"
- ]
- }
- ],
- "source": [
- "ds.write(ds_ht_path)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "57fd9cde-95ff-4abb-aead-51686d1b4462",
- "metadata": {},
- "outputs": [],
- "source": [
- "ds = hl.read_table(ds_ht_path)\n",
- "ds = ds.sample(0.01, seed=1234)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "ece62cc3-3a7c-43fc-9e97-d106a0239909",
- "metadata": {},
- "outputs": [],
- "source": [
- "ds_sampled_ht_path = \"GNOMAD_V4.4.3_browser_prototype_1.1.sampled.ht\""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "31102dd2-6e0a-48eb-bebd-756df80ee58b",
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2023-09-08 10:01:12.605 Hail: INFO: wrote table with 5 rows in 1 partition to GNOMAD_V4.4.3_browser_prototype_1.1.sampled.ht\n"
- ]
- }
- ],
- "source": [
- "ds.write(ds_sampled_ht_path)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "59264bf6-b2c0-4283-a727-01069101ca4e",
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Initializing Hail with default parameters...\n",
- "SLF4J: No SLF4J providers were found.\n",
- "SLF4J: Defaulting to no-operation (NOP) logger implementation\n",
- "SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.\n",
- "SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier.\n",
- "SLF4J: Ignoring binding found at [jar:file:/Users/ealarman/.pyenv/versions/3.9.18/lib/python3.9/site-packages/pyspark/jars/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]\n",
- "SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an explanation.\n",
- "Setting default log level to \"WARN\".\n",
- "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n",
- "Running on Apache Spark version 3.3.3\n",
- "SparkUI available at http://wm50c-6f4.broadinstitute.org:4040\n",
- "Welcome to\n",
- " __ __ <>__\n",
- " / /_/ /__ __/ /\n",
- " / __ / _ `/ / /\n",
- " /_/ /_/\\_,_/_/_/ version 0.2.121-35da6f47ddcd\n",
- "LOGGING: writing to /Users/ealarman/gnomad-browser/hail-20230911-1039-0.2.121-35da6f47ddcd.log\n"
- ]
- }
- ],
- "source": [
- "sampled_ds = hl.read_table(ds_sampled_ht_path)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "83040094-3a19-46a2-9a89-51aa6076b361",
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "[Stage 0:===========================================================(1 + 0) / 1]\r"
- ]
- },
- {
- "data": {
- "text/html": [
- "
info
locus
alleles
rsid
qual
filters
END
SVLEN
SVTYPE
POSMIN
POSMAX
ENDMIN
ENDMAX
Genes
SC
afr_SC
amr_SC
asj_SC
eas_SC
fin_SC
mid_SC
nfe_SC
sas_SC
SN
afr_SN
amr_SN
asj_SN
eas_SN
fin_SN
mid_SN
nfe_SN
sas_SN
SF
afr_SF
amr_SF
asj_SF
eas_SF
fin_SF
mid_SF
nfe_SF
sas_SF
MALE_SC
afr_MALE_SC
amr_MALE_SC
asj_MALE_SC
eas_MALE_SC
fin_MALE_SC
mid_MALE_SC
nfe_MALE_SC
sas_MALE_SC
MALE_SN
afr_MALE_SN
amr_MALE_SN
asj_MALE_SN
eas_MALE_SN
fin_MALE_SN
mid_MALE_SN
nfe_MALE_SN
sas_MALE_SN
MALE_SF
afr_MALE_SF
amr_MALE_SF
asj_MALE_SF
eas_MALE_SF
fin_MALE_SF
mid_MALE_SF
nfe_MALE_SF
sas_MALE_SF
FEMALE_SC
afr_FEMALE_SC
amr_FEMALE_SC
asj_FEMALE_SC
eas_FEMALE_SC
fin_FEMALE_SC
mid_FEMALE_SC
nfe_FEMALE_SC
sas_FEMALE_SC
FEMALE_SN
afr_FEMALE_SN
amr_FEMALE_SN
asj_FEMALE_SN
eas_FEMALE_SN
fin_FEMALE_SN
mid_FEMALE_SN
nfe_FEMALE_SN
sas_FEMALE_SN
FEMALE_SF
afr_FEMALE_SF
amr_FEMALE_SF
asj_FEMALE_SF
eas_FEMALE_SF
fin_FEMALE_SF
mid_FEMALE_SF
nfe_FEMALE_SF
sas_FEMALE_SF
locus<GRCh38> array<str> str float64 set<str> int32 int32 str int32 int32 int32 int32 str float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 \n",
- "chr1:1034009 ["N","<DEL>"] "variantbs80_246__DEL" -1.00e+01 {"TRUE"} 1035422 1413 "DEL" 1034009 1034009 1035422 1035422 "None" 2.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 2.00e+00 0.00e+00 3.75e+05 9.11e+03 1.66e+04 8.31e+03 1.26e+04 1.81e+04 1.16e+03 2.65e+05 2.76e+04 5.33e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.55e-06 0.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 1.91e+05 3.76e+03 7.07e+03 4.35e+03 6.35e+03 8.68e+03 6.57e+02 1.31e+05 2.12e+04 5.23e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.62e-06 0.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 1.84e+05 5.36e+03 9.57e+03 3.96e+03 6.29e+03 9.38e+03 5.01e+02 1.34e+05 6.36e+03 5.43e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.47e-06 0.00e+00 \n",
- "chr1:102890354 ["N","<DUP>"] "variantbs80_32404__DUP" -1.00e+01 {"TRUE"} 102934654 44300 "DUP" 102890354 102890354 102934654 102934654 "None" 2.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 3.75e+05 9.22e+03 1.66e+04 8.33e+03 1.26e+04 1.81e+04 1.14e+03 2.65e+05 2.76e+04 5.33e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 3.78e-06 0.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.91e+05 3.82e+03 7.04e+03 4.39e+03 6.33e+03 8.63e+03 6.55e+02 1.31e+05 2.12e+04 5.23e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 1.84e+05 5.41e+03 9.60e+03 3.95e+03 6.31e+03 9.46e+03 4.85e+02 1.34e+05 6.36e+03 5.43e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.47e-06 0.00e+00 \n",
- "chr1:103550844 ["N","<DUP>"] "variantbs80_32704__DUP" -1.00e+01 {"TRUE"} 103570911 20067 "DUP" 103550844 103550844 103570911 103570911 "None" 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 3.75e+05 9.09e+03 1.67e+04 8.37e+03 1.27e+04 1.81e+04 1.12e+03 2.65e+05 2.76e+04 2.66e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 3.77e-06 0.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 1.91e+05 3.75e+03 7.05e+03 4.37e+03 6.33e+03 8.69e+03 6.60e+02 1.31e+05 2.12e+04 5.23e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.62e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.84e+05 5.34e+03 9.61e+03 4.00e+03 6.33e+03 9.36e+03 4.60e+02 1.34e+05 6.42e+03 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 \n",
- "chr1:115744731 ["N","<DUP>"] "variantbs80_36173__DUP" -1.00e+01 {"TRUE"} 115768879 24148 "DUP" 115744731 115744731 115768879 115768879 "None" 8.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.00e+00 0.00e+00 3.75e+05 9.14e+03 1.66e+04 8.33e+03 1.27e+04 1.81e+04 1.13e+03 2.65e+05 2.76e+04 2.13e-05 1.09e-04 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 2.64e-05 0.00e+00 1.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.91e+05 3.79e+03 7.10e+03 4.35e+03 6.39e+03 8.68e+03 6.53e+02 1.31e+05 2.12e+04 5.22e-06 2.64e-04 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.00e+00 0.00e+00 1.84e+05 5.35e+03 9.55e+03 3.98e+03 6.28e+03 9.41e+03 4.74e+02 1.34e+05 6.39e+03 3.81e-05 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 5.24e-05 0.00e+00 \n",
- "chr1:119380407 ["N","<DUP>"] "variantbs80_37041__DUP" -1.00e+01 {"TRUE"} 119740616 360209 "DUP" 119380407 119380407 119727782 119744324 "HAO2,HSD3B1,HSD3B2,ZNF697" 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 3.75e+05 9.14e+03 1.66e+04 8.34e+03 1.26e+04 1.81e+04 1.16e+03 2.65e+05 2.76e+04 2.66e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 3.78e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.91e+05 3.77e+03 7.12e+03 4.39e+03 6.31e+03 8.63e+03 6.68e+02 1.31e+05 2.12e+04 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+00 0.00e+00 1.84e+05 5.37e+03 9.53e+03 3.95e+03 6.29e+03 9.43e+03 4.88e+02 1.34e+05 6.42e+03 5.43e-06 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 7.48e-06 0.00e+00 \n",
- "
"
- ],
- "text/plain": [
- "+----------------+---------------+--------------------------+-----------+\n",
- "| locus | alleles | rsid | qual |\n",
- "+----------------+---------------+--------------------------+-----------+\n",
- "| locus | array | str | float64 |\n",
- "+----------------+---------------+--------------------------+-----------+\n",
- "| chr1:1034009 | [\"N\",\"\"] | \"variantbs80_246__DEL\" | -1.00e+01 |\n",
- "| chr1:102890354 | [\"N\",\"\"] | \"variantbs80_32404__DUP\" | -1.00e+01 |\n",
- "| chr1:103550844 | [\"N\",\"\"] | \"variantbs80_32704__DUP\" | -1.00e+01 |\n",
- "| chr1:115744731 | [\"N\",\"\"] | \"variantbs80_36173__DUP\" | -1.00e+01 |\n",
- "| chr1:119380407 | [\"N\",\"\"] | \"variantbs80_37041__DUP\" | -1.00e+01 |\n",
- "+----------------+---------------+--------------------------+-----------+\n",
- "\n",
- "+----------+-----------+------------+-------------+-------------+-------------+\n",
- "| filters | info.END | info.SVLEN | info.SVTYPE | info.POSMIN | info.POSMAX |\n",
- "+----------+-----------+------------+-------------+-------------+-------------+\n",
- "| set | int32 | int32 | str | int32 | int32 |\n",
- "+----------+-----------+------------+-------------+-------------+-------------+\n",
- "| {\"TRUE\"} | 1035422 | 1413 | \"DEL\" | 1034009 | 1034009 |\n",
- "| {\"TRUE\"} | 102934654 | 44300 | \"DUP\" | 102890354 | 102890354 |\n",
- "| {\"TRUE\"} | 103570911 | 20067 | \"DUP\" | 103550844 | 103550844 |\n",
- "| {\"TRUE\"} | 115768879 | 24148 | \"DUP\" | 115744731 | 115744731 |\n",
- "| {\"TRUE\"} | 119740616 | 360209 | \"DUP\" | 119380407 | 119380407 |\n",
- "+----------+-----------+------------+-------------+-------------+-------------+\n",
- "\n",
- "+-------------+-------------+-----------------------------+----------+\n",
- "| info.ENDMIN | info.ENDMAX | info.Genes | info.SC |\n",
- "+-------------+-------------+-----------------------------+----------+\n",
- "| int32 | int32 | str | float64 |\n",
- "+-------------+-------------+-----------------------------+----------+\n",
- "| 1035422 | 1035422 | \"None\" | 2.00e+00 |\n",
- "| 102934654 | 102934654 | \"None\" | 2.00e+00 |\n",
- "| 103570911 | 103570911 | \"None\" | 1.00e+00 |\n",
- "| 115768879 | 115768879 | \"None\" | 8.00e+00 |\n",
- "| 119727782 | 119744324 | \"HAO2,HSD3B1,HSD3B2,ZNF697\" | 1.00e+00 |\n",
- "+-------------+-------------+-----------------------------+----------+\n",
- "\n",
- "+-------------+-------------+-------------+-------------+-------------+\n",
- "| info.afr_SC | info.amr_SC | info.asj_SC | info.eas_SC | info.fin_SC |\n",
- "+-------------+-------------+-------------+-------------+-------------+\n",
- "| float64 | float64 | float64 | float64 | float64 |\n",
- "+-------------+-------------+-------------+-------------+-------------+\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 1.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "+-------------+-------------+-------------+-------------+-------------+\n",
- "\n",
- "+-------------+-------------+-------------+----------+-------------+\n",
- "| info.mid_SC | info.nfe_SC | info.sas_SC | info.SN | info.afr_SN |\n",
- "+-------------+-------------+-------------+----------+-------------+\n",
- "| float64 | float64 | float64 | float64 | float64 |\n",
- "+-------------+-------------+-------------+----------+-------------+\n",
- "| 0.00e+00 | 2.00e+00 | 0.00e+00 | 3.75e+05 | 9.11e+03 |\n",
- "| 0.00e+00 | 1.00e+00 | 0.00e+00 | 3.75e+05 | 9.22e+03 |\n",
- "| 0.00e+00 | 1.00e+00 | 0.00e+00 | 3.75e+05 | 9.09e+03 |\n",
- "| 0.00e+00 | 7.00e+00 | 0.00e+00 | 3.75e+05 | 9.14e+03 |\n",
- "| 0.00e+00 | 1.00e+00 | 0.00e+00 | 3.75e+05 | 9.14e+03 |\n",
- "+-------------+-------------+-------------+----------+-------------+\n",
- "\n",
- "+-------------+-------------+-------------+-------------+-------------+\n",
- "| info.amr_SN | info.asj_SN | info.eas_SN | info.fin_SN | info.mid_SN |\n",
- "+-------------+-------------+-------------+-------------+-------------+\n",
- "| float64 | float64 | float64 | float64 | float64 |\n",
- "+-------------+-------------+-------------+-------------+-------------+\n",
- "| 1.66e+04 | 8.31e+03 | 1.26e+04 | 1.81e+04 | 1.16e+03 |\n",
- "| 1.66e+04 | 8.33e+03 | 1.26e+04 | 1.81e+04 | 1.14e+03 |\n",
- "| 1.67e+04 | 8.37e+03 | 1.27e+04 | 1.81e+04 | 1.12e+03 |\n",
- "| 1.66e+04 | 8.33e+03 | 1.27e+04 | 1.81e+04 | 1.13e+03 |\n",
- "| 1.66e+04 | 8.34e+03 | 1.26e+04 | 1.81e+04 | 1.16e+03 |\n",
- "+-------------+-------------+-------------+-------------+-------------+\n",
- "\n",
- "+-------------+-------------+----------+-------------+-------------+\n",
- "| info.nfe_SN | info.sas_SN | info.SF | info.afr_SF | info.amr_SF |\n",
- "+-------------+-------------+----------+-------------+-------------+\n",
- "| float64 | float64 | float64 | float64 | float64 |\n",
- "+-------------+-------------+----------+-------------+-------------+\n",
- "| 2.65e+05 | 2.76e+04 | 5.33e-06 | 0.00e+00 | 0.00e+00 |\n",
- "| 2.65e+05 | 2.76e+04 | 5.33e-06 | 0.00e+00 | 0.00e+00 |\n",
- "| 2.65e+05 | 2.76e+04 | 2.66e-06 | 0.00e+00 | 0.00e+00 |\n",
- "| 2.65e+05 | 2.76e+04 | 2.13e-05 | 1.09e-04 | 0.00e+00 |\n",
- "| 2.65e+05 | 2.76e+04 | 2.66e-06 | 0.00e+00 | 0.00e+00 |\n",
- "+-------------+-------------+----------+-------------+-------------+\n",
- "\n",
- "+-------------+-------------+-------------+-------------+-------------+\n",
- "| info.asj_SF | info.eas_SF | info.fin_SF | info.mid_SF | info.nfe_SF |\n",
- "+-------------+-------------+-------------+-------------+-------------+\n",
- "| float64 | float64 | float64 | float64 | float64 |\n",
- "+-------------+-------------+-------------+-------------+-------------+\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 7.55e-06 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 3.78e-06 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 3.77e-06 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 2.64e-05 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 3.78e-06 |\n",
- "+-------------+-------------+-------------+-------------+-------------+\n",
- "\n",
- "+-------------+--------------+------------------+------------------+\n",
- "| info.sas_SF | info.MALE_SC | info.afr_MALE_SC | info.amr_MALE_SC |\n",
- "+-------------+--------------+------------------+------------------+\n",
- "| float64 | float64 | float64 | float64 |\n",
- "+-------------+--------------+------------------+------------------+\n",
- "| 0.00e+00 | 1.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 1.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 1.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 1.00e+00 | 1.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "+-------------+--------------+------------------+------------------+\n",
- "\n",
- "+------------------+------------------+------------------+------------------+\n",
- "| info.asj_MALE_SC | info.eas_MALE_SC | info.fin_MALE_SC | info.mid_MALE_SC |\n",
- "+------------------+------------------+------------------+------------------+\n",
- "| float64 | float64 | float64 | float64 |\n",
- "+------------------+------------------+------------------+------------------+\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "+------------------+------------------+------------------+------------------+\n",
- "\n",
- "+------------------+------------------+--------------+------------------+\n",
- "| info.nfe_MALE_SC | info.sas_MALE_SC | info.MALE_SN | info.afr_MALE_SN |\n",
- "+------------------+------------------+--------------+------------------+\n",
- "| float64 | float64 | float64 | float64 |\n",
- "+------------------+------------------+--------------+------------------+\n",
- "| 1.00e+00 | 0.00e+00 | 1.91e+05 | 3.76e+03 |\n",
- "| 0.00e+00 | 0.00e+00 | 1.91e+05 | 3.82e+03 |\n",
- "| 1.00e+00 | 0.00e+00 | 1.91e+05 | 3.75e+03 |\n",
- "| 0.00e+00 | 0.00e+00 | 1.91e+05 | 3.79e+03 |\n",
- "| 0.00e+00 | 0.00e+00 | 1.91e+05 | 3.77e+03 |\n",
- "+------------------+------------------+--------------+------------------+\n",
- "\n",
- "+------------------+------------------+------------------+------------------+\n",
- "| info.amr_MALE_SN | info.asj_MALE_SN | info.eas_MALE_SN | info.fin_MALE_SN |\n",
- "+------------------+------------------+------------------+------------------+\n",
- "| float64 | float64 | float64 | float64 |\n",
- "+------------------+------------------+------------------+------------------+\n",
- "| 7.07e+03 | 4.35e+03 | 6.35e+03 | 8.68e+03 |\n",
- "| 7.04e+03 | 4.39e+03 | 6.33e+03 | 8.63e+03 |\n",
- "| 7.05e+03 | 4.37e+03 | 6.33e+03 | 8.69e+03 |\n",
- "| 7.10e+03 | 4.35e+03 | 6.39e+03 | 8.68e+03 |\n",
- "| 7.12e+03 | 4.39e+03 | 6.31e+03 | 8.63e+03 |\n",
- "+------------------+------------------+------------------+------------------+\n",
- "\n",
- "+------------------+------------------+------------------+--------------+\n",
- "| info.mid_MALE_SN | info.nfe_MALE_SN | info.sas_MALE_SN | info.MALE_SF |\n",
- "+------------------+------------------+------------------+--------------+\n",
- "| float64 | float64 | float64 | float64 |\n",
- "+------------------+------------------+------------------+--------------+\n",
- "| 6.57e+02 | 1.31e+05 | 2.12e+04 | 5.23e-06 |\n",
- "| 6.55e+02 | 1.31e+05 | 2.12e+04 | 5.23e-06 |\n",
- "| 6.60e+02 | 1.31e+05 | 2.12e+04 | 5.23e-06 |\n",
- "| 6.53e+02 | 1.31e+05 | 2.12e+04 | 5.22e-06 |\n",
- "| 6.68e+02 | 1.31e+05 | 2.12e+04 | 0.00e+00 |\n",
- "+------------------+------------------+------------------+--------------+\n",
- "\n",
- "+------------------+------------------+------------------+------------------+\n",
- "| info.afr_MALE_SF | info.amr_MALE_SF | info.asj_MALE_SF | info.eas_MALE_SF |\n",
- "+------------------+------------------+------------------+------------------+\n",
- "| float64 | float64 | float64 | float64 |\n",
- "+------------------+------------------+------------------+------------------+\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 2.64e-04 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "+------------------+------------------+------------------+------------------+\n",
- "\n",
- "+------------------+------------------+------------------+------------------+\n",
- "| info.fin_MALE_SF | info.mid_MALE_SF | info.nfe_MALE_SF | info.sas_MALE_SF |\n",
- "+------------------+------------------+------------------+------------------+\n",
- "| float64 | float64 | float64 | float64 |\n",
- "+------------------+------------------+------------------+------------------+\n",
- "| 0.00e+00 | 0.00e+00 | 7.62e-06 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 7.62e-06 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "+------------------+------------------+------------------+------------------+\n",
- "\n",
- "+----------------+--------------------+--------------------+\n",
- "| info.FEMALE_SC | info.afr_FEMALE_SC | info.amr_FEMALE_SC |\n",
- "+----------------+--------------------+--------------------+\n",
- "| float64 | float64 | float64 |\n",
- "+----------------+--------------------+--------------------+\n",
- "| 1.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 1.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 7.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 1.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "+----------------+--------------------+--------------------+\n",
- "\n",
- "+--------------------+--------------------+--------------------+\n",
- "| info.asj_FEMALE_SC | info.eas_FEMALE_SC | info.fin_FEMALE_SC |\n",
- "+--------------------+--------------------+--------------------+\n",
- "| float64 | float64 | float64 |\n",
- "+--------------------+--------------------+--------------------+\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "+--------------------+--------------------+--------------------+\n",
- "\n",
- "+--------------------+--------------------+--------------------+\n",
- "| info.mid_FEMALE_SC | info.nfe_FEMALE_SC | info.sas_FEMALE_SC |\n",
- "+--------------------+--------------------+--------------------+\n",
- "| float64 | float64 | float64 |\n",
- "+--------------------+--------------------+--------------------+\n",
- "| 0.00e+00 | 1.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 1.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 7.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 1.00e+00 | 0.00e+00 |\n",
- "+--------------------+--------------------+--------------------+\n",
- "\n",
- "+----------------+--------------------+--------------------+\n",
- "| info.FEMALE_SN | info.afr_FEMALE_SN | info.amr_FEMALE_SN |\n",
- "+----------------+--------------------+--------------------+\n",
- "| float64 | float64 | float64 |\n",
- "+----------------+--------------------+--------------------+\n",
- "| 1.84e+05 | 5.36e+03 | 9.57e+03 |\n",
- "| 1.84e+05 | 5.41e+03 | 9.60e+03 |\n",
- "| 1.84e+05 | 5.34e+03 | 9.61e+03 |\n",
- "| 1.84e+05 | 5.35e+03 | 9.55e+03 |\n",
- "| 1.84e+05 | 5.37e+03 | 9.53e+03 |\n",
- "+----------------+--------------------+--------------------+\n",
- "\n",
- "+--------------------+--------------------+--------------------+\n",
- "| info.asj_FEMALE_SN | info.eas_FEMALE_SN | info.fin_FEMALE_SN |\n",
- "+--------------------+--------------------+--------------------+\n",
- "| float64 | float64 | float64 |\n",
- "+--------------------+--------------------+--------------------+\n",
- "| 3.96e+03 | 6.29e+03 | 9.38e+03 |\n",
- "| 3.95e+03 | 6.31e+03 | 9.46e+03 |\n",
- "| 4.00e+03 | 6.33e+03 | 9.36e+03 |\n",
- "| 3.98e+03 | 6.28e+03 | 9.41e+03 |\n",
- "| 3.95e+03 | 6.29e+03 | 9.43e+03 |\n",
- "+--------------------+--------------------+--------------------+\n",
- "\n",
- "+--------------------+--------------------+--------------------+\n",
- "| info.mid_FEMALE_SN | info.nfe_FEMALE_SN | info.sas_FEMALE_SN |\n",
- "+--------------------+--------------------+--------------------+\n",
- "| float64 | float64 | float64 |\n",
- "+--------------------+--------------------+--------------------+\n",
- "| 5.01e+02 | 1.34e+05 | 6.36e+03 |\n",
- "| 4.85e+02 | 1.34e+05 | 6.36e+03 |\n",
- "| 4.60e+02 | 1.34e+05 | 6.42e+03 |\n",
- "| 4.74e+02 | 1.34e+05 | 6.39e+03 |\n",
- "| 4.88e+02 | 1.34e+05 | 6.42e+03 |\n",
- "+--------------------+--------------------+--------------------+\n",
- "\n",
- "+----------------+--------------------+--------------------+\n",
- "| info.FEMALE_SF | info.afr_FEMALE_SF | info.amr_FEMALE_SF |\n",
- "+----------------+--------------------+--------------------+\n",
- "| float64 | float64 | float64 |\n",
- "+----------------+--------------------+--------------------+\n",
- "| 5.43e-06 | 0.00e+00 | 0.00e+00 |\n",
- "| 5.43e-06 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 3.81e-05 | 0.00e+00 | 0.00e+00 |\n",
- "| 5.43e-06 | 0.00e+00 | 0.00e+00 |\n",
- "+----------------+--------------------+--------------------+\n",
- "\n",
- "+--------------------+--------------------+--------------------+\n",
- "| info.asj_FEMALE_SF | info.eas_FEMALE_SF | info.fin_FEMALE_SF |\n",
- "+--------------------+--------------------+--------------------+\n",
- "| float64 | float64 | float64 |\n",
- "+--------------------+--------------------+--------------------+\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "+--------------------+--------------------+--------------------+\n",
- "\n",
- "+--------------------+--------------------+--------------------+\n",
- "| info.mid_FEMALE_SF | info.nfe_FEMALE_SF | info.sas_FEMALE_SF |\n",
- "+--------------------+--------------------+--------------------+\n",
- "| float64 | float64 | float64 |\n",
- "+--------------------+--------------------+--------------------+\n",
- "| 0.00e+00 | 7.47e-06 | 0.00e+00 |\n",
- "| 0.00e+00 | 7.47e-06 | 0.00e+00 |\n",
- "| 0.00e+00 | 0.00e+00 | 0.00e+00 |\n",
- "| 0.00e+00 | 5.24e-05 | 0.00e+00 |\n",
- "| 0.00e+00 | 7.48e-06 | 0.00e+00 |\n",
- "+--------------------+--------------------+--------------------+"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "sampled_ds.show()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "f8b581b4-6ef1-4094-abd2-36ec58e0be8c",
- "metadata": {},
- "outputs": [],
- "source": [
- "FREQ_FIELDS = ['SC','SN','SF']"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "id": "a9852dc3-46d2-49df-a76a-958b25e80c74",
- "metadata": {},
- "outputs": [],
- "source": [
- "POPULATIONS = ['afr','amr','asj','eas','fin','mid','nfe','sas']"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "id": "6fdfabad-7b50-405a-af4e-470bc66afcb2",
- "metadata": {},
- "outputs": [],
- "source": [
- "DIVISIONS = list(\n",
- " itertools.chain.from_iterable(\n",
- " [(pop, pop), (f\"{pop}_XX\", f\"{pop}_FEMALE\"), (f\"{pop}_XY\", f\"{pop}_MALE\")] for pop in POPULATIONS\n",
- " )\n",
- ") + [(\"XX\", \"FEMALE\"), (\"XY\", \"MALE\")]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "ec8cb031-bf5a-42bd-9de6-5237d57910f3",
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.9.18"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
From d0103d847428c409c597a9b3b6afed168c33a97d Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Wed, 27 Sep 2023 15:04:41 -0400
Subject: [PATCH 03/62] create cnv resolvers
---
.../graphql/resolvers/copy-number-variants.ts | 37 +++++++++++++++++++
1 file changed, 37 insertions(+)
create mode 100644 graphql-api/src/graphql/resolvers/copy-number-variants.ts
diff --git a/graphql-api/src/graphql/resolvers/copy-number-variants.ts b/graphql-api/src/graphql/resolvers/copy-number-variants.ts
new file mode 100644
index 000000000..b996f13bb
--- /dev/null
+++ b/graphql-api/src/graphql/resolvers/copy-number-variants.ts
@@ -0,0 +1,37 @@
+import { UserVisibleError } from '../../errors'
+import {
+ fetchCopyNumberVariantsById,
+ fetchCopyNumberVariantsByGene,
+ fetchCopyNumberVariantsByRegion,
+} from '../../queries/copy-number-variant-queries'
+
+const resolveCopyNumberVariants = async (_: any, args: any, ctx: any) => {
+ const variant = await fetchCopyNumberVariantsById(ctx.esClient, args.variantId)
+
+ if (!variant) {
+ throw new UserVisibleError('Variant not found')
+ }
+
+ return variant
+}
+
+const resolveCopyNumberVariantsInGene = (obj: any, ctx: any) => {
+ return fetchCopyNumberVariantsByGene(ctx.esClient, obj)
+}
+
+const resolveCopyNumberVariantsInRegion = (obj: any, ctx: any) => {
+ return fetchCopyNumberVariantsByRegion(ctx.esClient, obj)
+}
+
+const resolvers = {
+ Query: {
+ copy_number_variants: resolveCopyNumberVariants,
+ },
+ Gene: {
+ copy_number_variants: resolveCopyNumberVariantsInGene,
+ },
+ Region: {
+ copy_number_variants: resolveCopyNumberVariantsInRegion,
+ },
+}
+export default resolvers
From 0110036227066380f6c7f4a8d8467dc3d951ac6b Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Wed, 27 Sep 2023 15:04:50 -0400
Subject: [PATCH 04/62] create cnv queries
---
.../queries/copy-number-variant-queries.ts | 142 ++++++++++++++++++
1 file changed, 142 insertions(+)
create mode 100644 graphql-api/src/queries/copy-number-variant-queries.ts
diff --git a/graphql-api/src/queries/copy-number-variant-queries.ts b/graphql-api/src/queries/copy-number-variant-queries.ts
new file mode 100644
index 000000000..c3172d13a
--- /dev/null
+++ b/graphql-api/src/queries/copy-number-variant-queries.ts
@@ -0,0 +1,142 @@
+import { fetchAllSearchResults } from './helpers/elasticsearch-helpers'
+
+const GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX = 'gnomad_v4_cnvs'
+
+// ================================================================================================
+// Variant query
+// ================================================================================================
+
+export const fetchCopyNumberVariantsById = async (esClient: any, variantId: any) => {
+ const response = await esClient.search({
+ index: GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX,
+ type: '_doc',
+ body: {
+ query: {
+ bool: {
+ filter: { term: { variant_id: variantId } },
+ },
+ },
+ },
+ size: 1,
+ })
+
+ if (response.body.hits.total.value === 0) {
+ return null
+ }
+
+ const variant = response.body.hits.hits[0]._source.value
+
+ return variant
+}
+
+// ================================================================================================
+// Gene query
+// ================================================================================================
+
+export type GeneQueryParams = { symbol: string }
+
+const esFieldsToFetch = () => [
+ 'value.chrom',
+ 'value.end',
+ 'value.filters',
+ 'value.length',
+ 'value.pos',
+ 'value.reference_genome',
+ 'value.type',
+ 'value.posmin',
+ 'value.posmax',
+ 'value.endmin',
+ 'value.endmax',
+ 'value.variant_id',
+]
+
+export const fetchCopyNumberVariantsByGene = async (esClient: any, gene: GeneQueryParams) => {
+ const hits = await fetchAllSearchResults(esClient, {
+ index: GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX,
+ type: '_doc',
+ size: 10000,
+ _source: esFieldsToFetch(),
+ body: {
+ query: {
+ bool: {
+ filter: {
+ term: { genes: gene.symbol },
+ },
+ },
+ },
+ sort: [{ xpos: { order: 'asc' } }],
+ },
+ })
+
+ return hits
+ .map((hit: any) => hit._source.value)
+ .map((variant: any) => {
+ return variant
+ })
+}
+
+// ================================================================================================
+// Region query
+// ================================================================================================
+export type RegionQueryParams = {
+ chrom: number
+ start: number
+ stop: number
+ xstart: number
+ xstop: number
+}
+
+export const fetchCopyNumberVariantsByRegion = async (esClient: any, region: RegionQueryParams) => {
+ const hits = await fetchAllSearchResults(esClient, {
+ index: GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX,
+ type: '_doc',
+ size: 10000,
+ _source: esFieldsToFetch(),
+ body: {
+ query: {
+ bool: {
+ should: [
+ {
+ bool: {
+ must: [
+ { range: { xpos: { lte: region.xstop } } },
+ { range: { xend: { gte: region.xstart } } },
+ ],
+ },
+ },
+ {
+ bool: {
+ must: [
+ { range: { xpos2: { lte: region.xstop } } },
+ { range: { xend2: { gte: region.xstart } } },
+ ],
+ },
+ },
+ ],
+ },
+ },
+ sort: [{ xpos: { order: 'asc' } }],
+ },
+ })
+
+ return hits
+ .map((hit: any) => hit._source.value)
+ .filter((variant: any) => {
+
+
+ // deletions
+ if (variant.type === 'DEL') {
+
+ }
+
+ // duplicates
+ if (variant.type === 'DUP') {
+
+ }
+
+ return true
+ })
+ .map((variant: any) => {
+ return variant
+ })
+}
From a9adba5df1be8d5679cd98cf7e404addab42e260 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Wed, 27 Sep 2023 15:05:09 -0400
Subject: [PATCH 05/62] create cnv graphql types
---
.../graphql/types/copy-number-variant.graphql | 46 +++++++++++++++++++
1 file changed, 46 insertions(+)
create mode 100644 graphql-api/src/graphql/types/copy-number-variant.graphql
diff --git a/graphql-api/src/graphql/types/copy-number-variant.graphql b/graphql-api/src/graphql/types/copy-number-variant.graphql
new file mode 100644
index 000000000..8dc40a3e6
--- /dev/null
+++ b/graphql-api/src/graphql/types/copy-number-variant.graphql
@@ -0,0 +1,46 @@
+type CopyNumberVariantPopulation {
+ id: String!
+ sc: Float!
+ sn: Float!
+ sf: Float!
+}
+
+type CopyNumberVariant {
+ sc: Float!
+ sn: Float!
+ sf: Float!
+ reference_genome: ReferenceGenomeId!
+ chrom: String!
+ end: Int!
+ filters: [String!]
+ length: Int
+ pos: Int!
+ type: String
+ posmin: Int!
+ posmax: Int!
+ endmin: Int!
+ endmax: Int!
+ variant_id: String!
+}
+
+type CopyNumberVariantDetails {
+ alts: [String!]
+ sc: Float!
+ sn: Float!
+ sf: Float!
+ chrom: String!
+ end: Int!
+ filters: [String!]
+ genes: [String!]
+ length: Int
+ populations: [CopyNumberVariantPopulation!]
+ pos: Int!
+ qual: Float
+ reference_genome: ReferenceGenomeId!
+ type: String
+ posmin: Int!
+ posmax: Int!
+ endmin: Int!
+ endmax: Int!
+ variant_id: String!
+}
\ No newline at end of file
From 2d3959a63756c6f6afe65b4993acf8b7dee27ed4 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Wed, 27 Sep 2023 15:34:53 -0400
Subject: [PATCH 06/62] create cnvs pipeline and tasks
---
.../datasets/gnomad_v4/gnomad_v4_cnvs.py | 6 +++
.../data_pipeline/pipelines/gnomad_v4_cnvs.py | 41 +++++++++++++++++++
2 files changed, 47 insertions(+)
create mode 100644 data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py
diff --git a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
index b477a8443..01f1a71f6 100644
--- a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
+++ b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
@@ -63,4 +63,10 @@ def prepare_gnomad_v4_cnvs(vcf_path):
ds = ds.drop("locus", "alleles", "info", "rsid")
ds = ds.annotate(variant_id_upper_case=ds.variant_id.upper())
+ return ds
+
+# Add uppercase ID to support case-insensitive searching
+def add_variant_id_upper_case(cnvs_path):
+ ds = hl.read_table(cnvs_path)
+ ds = ds.annotate(variant_id_upper_case=ds.variant_id.upper())
return ds
\ No newline at end of file
diff --git a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py
new file mode 100644
index 000000000..fc71ef9c2
--- /dev/null
+++ b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py
@@ -0,0 +1,41 @@
+from data_pipeline.pipeline import Pipeline, run_pipeline
+
+from data_pipeline.datasets.gnomad_v4.gnomad_v4_cnvs import prepare_gnomad_v4_cnvs, add_variant_id_upper_case
+
+
+pipeline = Pipeline()
+
+###############################################
+# Variants
+###############################################
+
+pipeline.add_task(
+ "prepare_gnomad_v4_cnvs",
+ prepare_gnomad_v4_cnvs,
+ "/gnomad_v4/gnomad_v4_cnvs/v4_cnvs_step_1.ht",
+ {
+ "vcf_path": "gs://gnomad-v4-cnvs/2023-09-07-jfu-test4/GNOMAD_V4.4.3_browser_prototype_1.1.vcf.gz",
+ },
+)
+
+pipeline.add_task(
+ "add_variant_id_upper_case",
+ add_variant_id_upper_case,
+ "/gnomad_v4/gnomad_v4_cnvs/v4_cnvs_step_2.ht",
+ {
+ "cnvs_path": pipeline.get_task("prepare_gnomad_v4_cnvs"),
+ },
+)
+
+###############################################
+# Outputs
+###############################################
+
+pipeline.set_outputs({"cnvs_step_1": "prepare_gnomad_v4_cnvs", "cnvs": "add_variant_id_upper_case"})
+
+###############################################
+# Run
+###############################################
+
+if __name__ == "__main__":
+ run_pipeline(pipeline)
From 549d1fe05ea81c324af9a87d2a54acb7df436ae1 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Tue, 3 Oct 2023 10:56:37 -0400
Subject: [PATCH 07/62] add cnv dataset as an enum dataset-id
---
graphql-api/src/graphql/types/dataset-id.graphql | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/graphql-api/src/graphql/types/dataset-id.graphql b/graphql-api/src/graphql/types/dataset-id.graphql
index a891821cb..73165f935 100644
--- a/graphql-api/src/graphql/types/dataset-id.graphql
+++ b/graphql-api/src/graphql/types/dataset-id.graphql
@@ -19,3 +19,7 @@ enum StructuralVariantDatasetId {
gnomad_sv_r2_1_non_neuro
gnomad_sv_r4
}
+
+enum CopyNumberVariantDatasetId {
+ gnomad_cnv_r4
+}
From 12ad7ad582c0e0c9a4cf45d8eb2dfb2f45f56177 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Tue, 3 Oct 2023 10:56:49 -0400
Subject: [PATCH 08/62] add cnv to gene type
---
graphql-api/src/graphql/types/gene.graphql | 1 +
1 file changed, 1 insertion(+)
diff --git a/graphql-api/src/graphql/types/gene.graphql b/graphql-api/src/graphql/types/gene.graphql
index 6fe57f3ff..40783e943 100644
--- a/graphql-api/src/graphql/types/gene.graphql
+++ b/graphql-api/src/graphql/types/gene.graphql
@@ -83,6 +83,7 @@ type Gene {
heterozygous_variant_cooccurrence_counts: [HeterozygousVariantCooccurrenceCounts!]!
@cost(value: 5)
homozygous_variant_cooccurrence_counts: [HomozygousVariantCooccurrenceCounts!]! @cost(value: 5)
+ copy_number_variants(dataset: CopyNumberVariantDatasetId): [CopyNumberVariant!]! @cost(value: 10) #TODO: MAKE REQUIRED DATASETID
}
type GeneSearchResult {
From eef8cfc32870f12be6fe74ed2ababb7a87682105 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Tue, 3 Oct 2023 10:56:58 -0400
Subject: [PATCH 09/62] add cnvs to query type
---
graphql-api/src/graphql/types/query.graphql | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/graphql-api/src/graphql/types/query.graphql b/graphql-api/src/graphql/types/query.graphql
index db4592654..726d16809 100644
--- a/graphql-api/src/graphql/types/query.graphql
+++ b/graphql-api/src/graphql/types/query.graphql
@@ -8,7 +8,7 @@ type Query{
multiNucleotideVariant(variant_id: String!, dataset: DatasetId!): MultiNucleotideVariantDetails @cost(value: 1)
structural_variant(variantId: String!, dataset: StructuralVariantDatasetId!): StructuralVariantDetails @cost(value: 1)
variant(variantId: String, rsid: String, dataset: DatasetId!): VariantDetails @cost(value: 1)
-
+ copy_number_variant(variantId: String!, dataset: CopyNumberVariantDatasetId): CopyNumberVariantDetails @cost(value: 1) #TODO: MAKE REQUIRED DATASETID
gene_search(query: String!, reference_genome: ReferenceGenomeId!): [GeneSearchResult!]!
variant_search(query: String!, dataset: DatasetId!): [VariantSearchResult!]!
From a1f257aa0d1904e55f2b57446d8cea2ea0721699 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Tue, 3 Oct 2023 10:57:06 -0400
Subject: [PATCH 10/62] add cnvs to region type
---
graphql-api/src/graphql/types/region.graphql | 1 +
1 file changed, 1 insertion(+)
diff --git a/graphql-api/src/graphql/types/region.graphql b/graphql-api/src/graphql/types/region.graphql
index 8b78cc9ba..8f2894cd8 100644
--- a/graphql-api/src/graphql/types/region.graphql
+++ b/graphql-api/src/graphql/types/region.graphql
@@ -31,6 +31,7 @@ type Region {
variants(dataset: DatasetId!): [Variant!]! @cost(value: 10)
structural_variants(dataset: StructuralVariantDatasetId!): [StructuralVariant!]! @cost(value: 10)
mitochondrial_variants(dataset: DatasetId!): [MitochondrialVariant!]! @cost(value: 10)
+ copy_number_variants(dataset: CopyNumberVariantDatasetId ): [CopyNumberVariant!]! @cost(value: 10) #TODO: MAKE REQUIRED DATASETID
clinvar_variants: [ClinVarVariant!] @cost(value: 10)
From 72853ba9d3dabe47fd6f8daeabbe56ff2055268f Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Tue, 3 Oct 2023 10:57:18 -0400
Subject: [PATCH 11/62] add cnv resolvers to schema
---
graphql-api/src/graphql/schema.ts | 2 ++
1 file changed, 2 insertions(+)
diff --git a/graphql-api/src/graphql/schema.ts b/graphql-api/src/graphql/schema.ts
index 407040088..8bf0a294e 100644
--- a/graphql-api/src/graphql/schema.ts
+++ b/graphql-api/src/graphql/schema.ts
@@ -7,6 +7,7 @@ import aliasResolvers from './resolvers/aliases'
import browserMetadataResolvers from './resolvers/browser-metadata'
import clinVarVariantResolvers from './resolvers/clinvar-variants'
import clinVarVariantFieldResolvers from './resolvers/clinvar-variant-fields'
+import copyNumberVariantResolvers from './resolvers/copy-number-variants'
import coverageResolvers from './resolvers/coverage'
import geneResolvers from './resolvers/gene'
import geneFieldResolvers from './resolvers/gene-fields'
@@ -34,6 +35,7 @@ const resolvers = mergeResolvers([
browserMetadataResolvers,
clinVarVariantResolvers,
clinVarVariantFieldResolvers,
+ copyNumberVariantResolvers,
coverageResolvers,
geneResolvers,
geneFieldResolvers,
From 282385ec464046e4e45f9e47db6ac642f6cf8869 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Tue, 3 Oct 2023 10:58:20 -0400
Subject: [PATCH 12/62] update singular and plural naming
---
.../src/graphql/resolvers/copy-number-variants.ts | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/graphql-api/src/graphql/resolvers/copy-number-variants.ts b/graphql-api/src/graphql/resolvers/copy-number-variants.ts
index b996f13bb..84cda7f0e 100644
--- a/graphql-api/src/graphql/resolvers/copy-number-variants.ts
+++ b/graphql-api/src/graphql/resolvers/copy-number-variants.ts
@@ -1,13 +1,13 @@
import { UserVisibleError } from '../../errors'
import {
- fetchCopyNumberVariantsById,
+ fetchCopyNumberVariantById,
fetchCopyNumberVariantsByGene,
fetchCopyNumberVariantsByRegion,
} from '../../queries/copy-number-variant-queries'
-const resolveCopyNumberVariants = async (_: any, args: any, ctx: any) => {
- const variant = await fetchCopyNumberVariantsById(ctx.esClient, args.variantId)
-
+//TODO: args.dataset for all three resolvers
+const resolveCopyNumberVariant = async (_: any, args: any, ctx: any) => {
+ const variant = await fetchCopyNumberVariantById(ctx.esClient, args.variantId)
if (!variant) {
throw new UserVisibleError('Variant not found')
}
@@ -19,13 +19,13 @@ const resolveCopyNumberVariantsInGene = (obj: any, ctx: any) => {
return fetchCopyNumberVariantsByGene(ctx.esClient, obj)
}
-const resolveCopyNumberVariantsInRegion = (obj: any, ctx: any) => {
+const resolveCopyNumberVariantsInRegion = (obj: any, ctx: any) => {
return fetchCopyNumberVariantsByRegion(ctx.esClient, obj)
}
const resolvers = {
Query: {
- copy_number_variants: resolveCopyNumberVariants,
+ copy_number_variant: resolveCopyNumberVariant,
},
Gene: {
copy_number_variants: resolveCopyNumberVariantsInGene,
From 197ab868d1b33c7f6a38b8326522352a8456d5c4 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Tue, 3 Oct 2023 11:12:48 -0400
Subject: [PATCH 13/62] python black formatter
---
.../data_pipeline/datasets/gnomad_sv_v2.py | 1 +
.../datasets/gnomad_v4/gnomad_v4_cnvs.py | 37 ++++++++++---------
.../pipelines/export_to_elasticsearch.py | 3 +-
3 files changed, 22 insertions(+), 19 deletions(-)
diff --git a/data-pipeline/src/data_pipeline/datasets/gnomad_sv_v2.py b/data-pipeline/src/data_pipeline/datasets/gnomad_sv_v2.py
index 103e637ff..a4efc3361 100644
--- a/data-pipeline/src/data_pipeline/datasets/gnomad_sv_v2.py
+++ b/data-pipeline/src/data_pipeline/datasets/gnomad_sv_v2.py
@@ -56,6 +56,7 @@ def x_position(chrom, position):
)
) + [("XX", "FEMALE"), ("XY", "MALE")]
+
# For MCNVs, sum AC/AF for all alt alleles except CN=2
def sum_mcnv_ac_or_af(alts, values):
return hl.bind(
diff --git a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
index 01f1a71f6..1bccddc24 100644
--- a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
+++ b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
@@ -10,13 +10,14 @@ def x_position(chrom, position):
return hl.int64(contig_number) * 1_000_000_000 + position
-FREQ_FIELDS = ['SC','SN','SF']
-POPULATIONS = ['afr','amr','asj','eas','fin','mid','nfe','sas']
+FREQ_FIELDS = ["SC", "SN", "SF"]
+POPULATIONS = ["afr", "amr", "asj", "eas", "fin", "mid", "nfe", "sas"]
DIVISIONS = list(
itertools.chain.from_iterable(
[(pop, pop), (f"{pop}_XX", f"{pop}_FEMALE"), (f"{pop}_XY", f"{pop}_MALE")] for pop in POPULATIONS
)
- ) + [("XX", "FEMALE"), ("XY", "MALE")]
+) + [("XX", "FEMALE"), ("XY", "MALE")]
+
# vcf_paths = "GNOMAD_V4.4.3_browser_prototype_1.1.vcf.gz"
def prepare_gnomad_v4_cnvs(vcf_path):
@@ -40,33 +41,35 @@ def prepare_gnomad_v4_cnvs(vcf_path):
xpos=x_position(ds.chrom, ds.pos),
xend=x_position(ds.chrom, ds.end),
)
-
- ds = ds.annotate(genes=hl.set(hl.array(hl.str(ds.info.Genes).split(','))))
-
+
+ ds = ds.annotate(genes=hl.set(hl.array(hl.str(ds.info.Genes).split(","))))
+
ds = ds.annotate(
freq=hl.struct(
- **{field.lower(): ds.info[field] for field in FREQ_FIELDS},
- populations=[
- hl.struct(id=pop_id, **{field.lower(): ds.info[f"{pop_key}_{field}"] for field in FREQ_FIELDS})
- for (pop_id, pop_key) in DIVISIONS
- ],
- ))
+ **{field.lower(): ds.info[field] for field in FREQ_FIELDS},
+ populations=[
+ hl.struct(id=pop_id, **{field.lower(): ds.info[f"{pop_key}_{field}"] for field in FREQ_FIELDS})
+ for (pop_id, pop_key) in DIVISIONS
+ ],
+ )
+ )
ds = ds.key_by("variant_id")
ds = ds.annotate(
- posmin = ds.info.POSMIN,
- posmax = ds.info.POSMAX,
- endmin = ds.info.ENDMIN,
- endmax = ds.info.ENDMAX,
+ posmin=ds.info.POSMIN,
+ posmax=ds.info.POSMAX,
+ endmin=ds.info.ENDMIN,
+ endmax=ds.info.ENDMAX,
)
ds = ds.drop("locus", "alleles", "info", "rsid")
ds = ds.annotate(variant_id_upper_case=ds.variant_id.upper())
return ds
+
# Add uppercase ID to support case-insensitive searching
def add_variant_id_upper_case(cnvs_path):
ds = hl.read_table(cnvs_path)
ds = ds.annotate(variant_id_upper_case=ds.variant_id.upper())
- return ds
\ No newline at end of file
+ return ds
diff --git a/data-pipeline/src/data_pipeline/pipelines/export_to_elasticsearch.py b/data-pipeline/src/data_pipeline/pipelines/export_to_elasticsearch.py
index 6495171c6..a1c4b00d0 100644
--- a/data-pipeline/src/data_pipeline/pipelines/export_to_elasticsearch.py
+++ b/data-pipeline/src/data_pipeline/pipelines/export_to_elasticsearch.py
@@ -113,13 +113,12 @@ def add_liftover_document_id(ds):
"get_table": lambda: hl.read_table(gnomad_v4_cnvs_pipeline.get_output("cnvs").get_output_path()),
"args": {
"index": "gnomad_v4_cnvs",
- "index_fields": ["variant_id", "xpos", "xend","genes"],
+ "index_fields": ["variant_id", "xpos", "xend", "genes"],
"id_field": "variant_id",
"num_shards": 1,
"block_size": 1_000,
},
},
-
##############################################################################################################
# gnomAD v3
##############################################################################################################
From 52dad6134d8bc492e37212bf98f7d2516aeb2cf8 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Tue, 3 Oct 2023 14:49:19 -0400
Subject: [PATCH 14/62] wip resolvers and queries
---
.../graphql/resolvers/copy-number-variants.ts | 2 +-
.../queries/copy-number-variant-queries.ts | 80 ++++++++++++-------
2 files changed, 54 insertions(+), 28 deletions(-)
diff --git a/graphql-api/src/graphql/resolvers/copy-number-variants.ts b/graphql-api/src/graphql/resolvers/copy-number-variants.ts
index 84cda7f0e..21c80dcc2 100644
--- a/graphql-api/src/graphql/resolvers/copy-number-variants.ts
+++ b/graphql-api/src/graphql/resolvers/copy-number-variants.ts
@@ -5,7 +5,7 @@ import {
fetchCopyNumberVariantsByRegion,
} from '../../queries/copy-number-variant-queries'
-//TODO: args.dataset for all three resolvers
+// TODO: args.dataset for all three resolvers
const resolveCopyNumberVariant = async (_: any, args: any, ctx: any) => {
const variant = await fetchCopyNumberVariantById(ctx.esClient, args.variantId)
if (!variant) {
diff --git a/graphql-api/src/queries/copy-number-variant-queries.ts b/graphql-api/src/queries/copy-number-variant-queries.ts
index c3172d13a..a5ad761d7 100644
--- a/graphql-api/src/queries/copy-number-variant-queries.ts
+++ b/graphql-api/src/queries/copy-number-variant-queries.ts
@@ -2,11 +2,34 @@ import { fetchAllSearchResults } from './helpers/elasticsearch-helpers'
const GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX = 'gnomad_v4_cnvs'
+// type CnvDatasetId = 'gnomad_cnv_r4'
+// type DatasetDependentQueryParams = {
+// index: string
+// variantIdParams: (variantId: string) => any
+// }
+
+// const v4VariantIdParams = (variantId: string) => ({
+// variant_id_upper_case: variantId.toUpperCase(),
+// })
+
+// const datasetDependentQueryParams: Record = {
+// gnomad_cnv_r4: {
+// index: GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX,
+// variantIdParams: v4VariantIdParams,
+// },
+// } as const
+
// ================================================================================================
// Variant query
// ================================================================================================
-export const fetchCopyNumberVariantsById = async (esClient: any, variantId: any) => {
+export const fetchCopyNumberVariantById = async (
+ esClient: any,
+ variantId: string,
+ // datasetId?: CnvDatasetId
+) => {
+ // const { index, variantIdParams } = datasetDependentQueryParams[datasetId]
+ // console.log('esclient variant id', esClient)
const response = await esClient.search({
index: GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX,
type: '_doc',
@@ -26,7 +49,10 @@ export const fetchCopyNumberVariantsById = async (esClient: any, variantId: any)
const variant = response.body.hits.hits[0]._source.value
- return variant
+ return {
+ ...variant,
+ ...variant.freq,
+ }
}
// ================================================================================================
@@ -39,6 +65,7 @@ const esFieldsToFetch = () => [
'value.chrom',
'value.end',
'value.filters',
+ 'value.freq',
'value.length',
'value.pos',
'value.reference_genome',
@@ -50,7 +77,13 @@ const esFieldsToFetch = () => [
'value.variant_id',
]
-export const fetchCopyNumberVariantsByGene = async (esClient: any, gene: GeneQueryParams) => {
+export const fetchCopyNumberVariantsByGene = async (
+ esClient: any,
+ gene: GeneQueryParams,
+ // datasetId?: CnvDatasetId
+) => {
+ // const index = datasetDependentQueryParams[datasetId]
+ // console.log('esclient gene', esClient)
const hits = await fetchAllSearchResults(esClient, {
index: GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX,
type: '_doc',
@@ -70,8 +103,12 @@ export const fetchCopyNumberVariantsByGene = async (esClient: any, gene: GeneQue
return hits
.map((hit: any) => hit._source.value)
+ .filter((variant: any) => variant.freq.sc > 0)
.map((variant: any) => {
- return variant
+ return {
+ ...variant,
+ ...variant.freq,
+ }
})
}
@@ -86,7 +123,12 @@ export type RegionQueryParams = {
xstop: number
}
-export const fetchCopyNumberVariantsByRegion = async (esClient: any, region: RegionQueryParams) => {
+export const fetchCopyNumberVariantsByRegion = async (
+ esClient: any,
+ region: RegionQueryParams,
+ // datasetId?: CnvDatasetId
+) => {
+ // const index = datasetDependentQueryParams[datasetId]
const hits = await fetchAllSearchResults(esClient, {
index: GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX,
type: '_doc',
@@ -104,14 +146,6 @@ export const fetchCopyNumberVariantsByRegion = async (esClient: any, region: Reg
],
},
},
- {
- bool: {
- must: [
- { range: { xpos2: { lte: region.xstop } } },
- { range: { xend2: { gte: region.xstart } } },
- ],
- },
- },
],
},
},
@@ -121,22 +155,14 @@ export const fetchCopyNumberVariantsByRegion = async (esClient: any, region: Reg
return hits
.map((hit: any) => hit._source.value)
- .filter((variant: any) => {
-
-
- // deletions
- if (variant.type === 'DEL') {
-
- }
-
- // duplicates
- if (variant.type === 'DUP') {
-
- }
-
+ .filter((variant: any) => variant.freq.sc > 0)
+ .filter(() => {
return true
})
.map((variant: any) => {
- return variant
+ return {
+ ...variant,
+ ...variant.freq,
+ }
})
}
From 36dae00c0733a376fa4e705151811b6c0b69bfc8 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Wed, 4 Oct 2023 11:46:57 -0400
Subject: [PATCH 15/62] minor pipeline edits
---
.../datasets/gnomad_v4/gnomad_v4_cnvs.py | 8 --------
.../src/data_pipeline/pipelines/gnomad_v4_cnvs.py | 15 +++------------
2 files changed, 3 insertions(+), 20 deletions(-)
diff --git a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
index 1bccddc24..eed025f38 100644
--- a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
+++ b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
@@ -19,7 +19,6 @@ def x_position(chrom, position):
) + [("XX", "FEMALE"), ("XY", "MALE")]
-# vcf_paths = "GNOMAD_V4.4.3_browser_prototype_1.1.vcf.gz"
def prepare_gnomad_v4_cnvs(vcf_path):
ds = hl.import_vcf(vcf_path, force_bgz=True, min_partitions=32, reference_genome="GRCh38").rows()
@@ -66,10 +65,3 @@ def prepare_gnomad_v4_cnvs(vcf_path):
ds = ds.drop("locus", "alleles", "info", "rsid")
ds = ds.annotate(variant_id_upper_case=ds.variant_id.upper())
return ds
-
-
-# Add uppercase ID to support case-insensitive searching
-def add_variant_id_upper_case(cnvs_path):
- ds = hl.read_table(cnvs_path)
- ds = ds.annotate(variant_id_upper_case=ds.variant_id.upper())
- return ds
diff --git a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py
index fc71ef9c2..42e21586d 100644
--- a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py
+++ b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py
@@ -1,6 +1,6 @@
from data_pipeline.pipeline import Pipeline, run_pipeline
-from data_pipeline.datasets.gnomad_v4.gnomad_v4_cnvs import prepare_gnomad_v4_cnvs, add_variant_id_upper_case
+from data_pipeline.datasets.gnomad_v4.gnomad_v4_cnvs import prepare_gnomad_v4_cnvs
pipeline = Pipeline()
@@ -12,26 +12,17 @@
pipeline.add_task(
"prepare_gnomad_v4_cnvs",
prepare_gnomad_v4_cnvs,
- "/gnomad_v4/gnomad_v4_cnvs/v4_cnvs_step_1.ht",
+ "/gnomad_v4/gnomad_v4_cnvs/cnvs.ht",
{
"vcf_path": "gs://gnomad-v4-cnvs/2023-09-07-jfu-test4/GNOMAD_V4.4.3_browser_prototype_1.1.vcf.gz",
},
)
-pipeline.add_task(
- "add_variant_id_upper_case",
- add_variant_id_upper_case,
- "/gnomad_v4/gnomad_v4_cnvs/v4_cnvs_step_2.ht",
- {
- "cnvs_path": pipeline.get_task("prepare_gnomad_v4_cnvs"),
- },
-)
-
###############################################
# Outputs
###############################################
-pipeline.set_outputs({"cnvs_step_1": "prepare_gnomad_v4_cnvs", "cnvs": "add_variant_id_upper_case"})
+pipeline.set_outputs({"cnvs": "prepare_gnomad_v4_cnvs"})
###############################################
# Run
From cfcf644ea9e516a5dcf412455eb572b371168f50 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Wed, 4 Oct 2023 11:47:27 -0400
Subject: [PATCH 16/62] add CNVDatasetId to Gene, Query, Region types
---
graphql-api/src/graphql/types/gene.graphql | 2 +-
graphql-api/src/graphql/types/query.graphql | 2 +-
graphql-api/src/graphql/types/region.graphql | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/graphql-api/src/graphql/types/gene.graphql b/graphql-api/src/graphql/types/gene.graphql
index 40783e943..4c6e80862 100644
--- a/graphql-api/src/graphql/types/gene.graphql
+++ b/graphql-api/src/graphql/types/gene.graphql
@@ -83,7 +83,7 @@ type Gene {
heterozygous_variant_cooccurrence_counts: [HeterozygousVariantCooccurrenceCounts!]!
@cost(value: 5)
homozygous_variant_cooccurrence_counts: [HomozygousVariantCooccurrenceCounts!]! @cost(value: 5)
- copy_number_variants(dataset: CopyNumberVariantDatasetId): [CopyNumberVariant!]! @cost(value: 10) #TODO: MAKE REQUIRED DATASETID
+ copy_number_variants(dataset: CopyNumberVariantDatasetId!): [CopyNumberVariant!]! @cost(value: 10) #TODO: MAKE REQUIRED DATASETID
}
type GeneSearchResult {
diff --git a/graphql-api/src/graphql/types/query.graphql b/graphql-api/src/graphql/types/query.graphql
index 726d16809..5e84f9da5 100644
--- a/graphql-api/src/graphql/types/query.graphql
+++ b/graphql-api/src/graphql/types/query.graphql
@@ -8,7 +8,7 @@ type Query{
multiNucleotideVariant(variant_id: String!, dataset: DatasetId!): MultiNucleotideVariantDetails @cost(value: 1)
structural_variant(variantId: String!, dataset: StructuralVariantDatasetId!): StructuralVariantDetails @cost(value: 1)
variant(variantId: String, rsid: String, dataset: DatasetId!): VariantDetails @cost(value: 1)
- copy_number_variant(variantId: String!, dataset: CopyNumberVariantDatasetId): CopyNumberVariantDetails @cost(value: 1) #TODO: MAKE REQUIRED DATASETID
+ copy_number_variant(variantId: String!, dataset: CopyNumberVariantDatasetId!): CopyNumberVariantDetails @cost(value: 1)
gene_search(query: String!, reference_genome: ReferenceGenomeId!): [GeneSearchResult!]!
variant_search(query: String!, dataset: DatasetId!): [VariantSearchResult!]!
diff --git a/graphql-api/src/graphql/types/region.graphql b/graphql-api/src/graphql/types/region.graphql
index 8f2894cd8..0c3cb43d6 100644
--- a/graphql-api/src/graphql/types/region.graphql
+++ b/graphql-api/src/graphql/types/region.graphql
@@ -31,7 +31,7 @@ type Region {
variants(dataset: DatasetId!): [Variant!]! @cost(value: 10)
structural_variants(dataset: StructuralVariantDatasetId!): [StructuralVariant!]! @cost(value: 10)
mitochondrial_variants(dataset: DatasetId!): [MitochondrialVariant!]! @cost(value: 10)
- copy_number_variants(dataset: CopyNumberVariantDatasetId ): [CopyNumberVariant!]! @cost(value: 10) #TODO: MAKE REQUIRED DATASETID
+ copy_number_variants(dataset: CopyNumberVariantDatasetId!): [CopyNumberVariant!]! @cost(value: 10) #TODO: MAKE REQUIRED DATASETID
clinvar_variants: [ClinVarVariant!] @cost(value: 10)
From affe4bbf3e7fbbb4be75ebe0e169c50217570b55 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Wed, 4 Oct 2023 11:47:53 -0400
Subject: [PATCH 17/62] fix resolver and query errors
---
.../graphql/resolvers/copy-number-variants.ts | 11 ++-
.../queries/copy-number-variant-queries.ts | 74 +++++++++----------
2 files changed, 39 insertions(+), 46 deletions(-)
diff --git a/graphql-api/src/graphql/resolvers/copy-number-variants.ts b/graphql-api/src/graphql/resolvers/copy-number-variants.ts
index 21c80dcc2..897098574 100644
--- a/graphql-api/src/graphql/resolvers/copy-number-variants.ts
+++ b/graphql-api/src/graphql/resolvers/copy-number-variants.ts
@@ -5,9 +5,8 @@ import {
fetchCopyNumberVariantsByRegion,
} from '../../queries/copy-number-variant-queries'
-// TODO: args.dataset for all three resolvers
const resolveCopyNumberVariant = async (_: any, args: any, ctx: any) => {
- const variant = await fetchCopyNumberVariantById(ctx.esClient, args.variantId)
+ const variant = await fetchCopyNumberVariantById(ctx.esClient, args.dataset, args.variantId)
if (!variant) {
throw new UserVisibleError('Variant not found')
}
@@ -15,12 +14,12 @@ const resolveCopyNumberVariant = async (_: any, args: any, ctx: any) => {
return variant
}
-const resolveCopyNumberVariantsInGene = (obj: any, ctx: any) => {
- return fetchCopyNumberVariantsByGene(ctx.esClient, obj)
+const resolveCopyNumberVariantsInGene = (obj: any, args: any, ctx: any) => {
+ return fetchCopyNumberVariantsByGene(ctx.esClient, args.dataset, obj)
}
-const resolveCopyNumberVariantsInRegion = (obj: any, ctx: any) => {
- return fetchCopyNumberVariantsByRegion(ctx.esClient, obj)
+const resolveCopyNumberVariantsInRegion = (obj: any, args: any, ctx: any) => {
+ return fetchCopyNumberVariantsByRegion(ctx.esClient, args.dataset, obj)
}
const resolvers = {
diff --git a/graphql-api/src/queries/copy-number-variant-queries.ts b/graphql-api/src/queries/copy-number-variant-queries.ts
index a5ad761d7..51d107552 100644
--- a/graphql-api/src/queries/copy-number-variant-queries.ts
+++ b/graphql-api/src/queries/copy-number-variant-queries.ts
@@ -2,22 +2,27 @@ import { fetchAllSearchResults } from './helpers/elasticsearch-helpers'
const GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX = 'gnomad_v4_cnvs'
-// type CnvDatasetId = 'gnomad_cnv_r4'
-// type DatasetDependentQueryParams = {
-// index: string
-// variantIdParams: (variantId: string) => any
-// }
-
-// const v4VariantIdParams = (variantId: string) => ({
-// variant_id_upper_case: variantId.toUpperCase(),
-// })
-
-// const datasetDependentQueryParams: Record = {
-// gnomad_cnv_r4: {
-// index: GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX,
-// variantIdParams: v4VariantIdParams,
-// },
-// } as const
+type CnvDatasetId = 'gnomad_cnv_r4'
+type DatasetDependentQueryParams = {
+ index: string,
+}
+
+
+
+const datasetDependentQueryParams: Record = {
+ gnomad_cnv_r4: {
+ index: GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX,
+ }
+} as const
+
+export type GeneQueryParams = { symbol: string }
+export type RegionQueryParams = {
+ chrom: number
+ start: number
+ stop: number
+ xstart: number
+ xstop: number
+}
// ================================================================================================
// Variant query
@@ -25,13 +30,12 @@ const GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX = 'gnomad_v4_cnvs'
export const fetchCopyNumberVariantById = async (
esClient: any,
- variantId: string,
- // datasetId?: CnvDatasetId
+ datasetId: CnvDatasetId,
+ variantId: string
) => {
- // const { index, variantIdParams } = datasetDependentQueryParams[datasetId]
- // console.log('esclient variant id', esClient)
+ const { index }= datasetDependentQueryParams[datasetId]
const response = await esClient.search({
- index: GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX,
+ index,
type: '_doc',
body: {
query: {
@@ -48,19 +52,17 @@ export const fetchCopyNumberVariantById = async (
}
const variant = response.body.hits.hits[0]._source.value
-
return {
...variant,
...variant.freq,
}
}
+
// ================================================================================================
// Gene query
// ================================================================================================
-export type GeneQueryParams = { symbol: string }
-
const esFieldsToFetch = () => [
'value.chrom',
'value.end',
@@ -79,13 +81,12 @@ const esFieldsToFetch = () => [
export const fetchCopyNumberVariantsByGene = async (
esClient: any,
- gene: GeneQueryParams,
- // datasetId?: CnvDatasetId
+ datasetId: CnvDatasetId,
+ gene: GeneQueryParams
) => {
- // const index = datasetDependentQueryParams[datasetId]
- // console.log('esclient gene', esClient)
+ const { index } = datasetDependentQueryParams[datasetId]
const hits = await fetchAllSearchResults(esClient, {
- index: GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX,
+ index,
type: '_doc',
size: 10000,
_source: esFieldsToFetch(),
@@ -115,22 +116,15 @@ export const fetchCopyNumberVariantsByGene = async (
// ================================================================================================
// Region query
// ================================================================================================
-export type RegionQueryParams = {
- chrom: number
- start: number
- stop: number
- xstart: number
- xstop: number
-}
export const fetchCopyNumberVariantsByRegion = async (
esClient: any,
- region: RegionQueryParams,
- // datasetId?: CnvDatasetId
+ datasetId: CnvDatasetId,
+ region: RegionQueryParams
) => {
- // const index = datasetDependentQueryParams[datasetId]
+ const { index } = datasetDependentQueryParams[datasetId]
const hits = await fetchAllSearchResults(esClient, {
- index: GNOMAD_COPY_NUMBER_VARIANTS_V4_INDEX,
+ index,
type: '_doc',
size: 10000,
_source: esFieldsToFetch(),
From 526191bb74e1dfe7f82c9d648206321cef1ea8b7 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 6 Oct 2023 15:50:16 -0400
Subject: [PATCH 18/62] add cnvs to dataset
---
browser/src/DatasetSelector.tsx | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/browser/src/DatasetSelector.tsx b/browser/src/DatasetSelector.tsx
index 85df2656e..21e4db9bf 100644
--- a/browser/src/DatasetSelector.tsx
+++ b/browser/src/DatasetSelector.tsx
@@ -14,6 +14,7 @@ import {
hasShortVariants,
hasStructuralVariants,
referenceGenome,
+ hasCopyNumberVariants,
shortVariantDatasetId,
structuralVariantDatasetId,
} from '@gnomad/dataset-metadata/metadata'
@@ -440,6 +441,7 @@ const DatasetSelector = withRouter(({ datasetOptions, history, selectedDataset }
includeGnomad2Subsets = true,
includeGnomad3 = true,
includeGnomad3Subsets = true,
+ includeCopyNumberVariants = true,
} = datasetOptions
const datasetLink = (datasetId: any) => ({
@@ -626,6 +628,36 @@ const DatasetSelector = withRouter(({ datasetOptions, history, selectedDataset }
)
}
+ if (includeCopyNumberVariants) {
+ const topLevelCopyNumberVariantDataset = hasCopyNumberVariants(selectedDataset)
+ ? selectedDataset
+ : 'gnomad_cnv_r4'
+
+ datasets.push(
+ {
+ id: 'current_cnv_dataset',
+ isActive: hasCopyNumberVariants(selectedDataset),
+ label: labelForDataset(topLevelCopyNumberVariantDataset),
+ url: datasetLink(topLevelCopyNumberVariantDataset),
+ },
+ {
+ id: 'other_cnv_variant',
+ isActive: hasCopyNumberVariants(selectedDataset),
+ label: 'More datasets',
+ children: [
+ {
+ id: 'gnomad_cnv_r4',
+ label: labelForDataset('gnomad_cnv_r4'),
+ url: datasetLink('gnomad_cnv_r4'),
+ description: `samples`,
+ // description: `${sampleCounts.gnomad_cnv_r4.total.toLocaleString()} samples`,
+ childReferenceGenome: referenceGenome('gnomad_cnv_r4'),
+ }
+ ],
+ }
+ )
+ }
+
return
})
From 57a511e24956cf64b00c86b9ed8291226086cd87 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 6 Oct 2023 15:50:40 -0400
Subject: [PATCH 19/62] add textOrMissingTextWarning
---
browser/src/missingContent.ts | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/browser/src/missingContent.ts b/browser/src/missingContent.ts
index ae6a027c5..fca1a3db6 100644
--- a/browser/src/missingContent.ts
+++ b/browser/src/missingContent.ts
@@ -1,5 +1,6 @@
export const textOrMissingTextWarning = (
- entityType: string,
- textMapping: Record,
- key: string
-) => textMapping[key] || `TEXT NEEDED FOR ${entityType.toUpperCase()} "${key}"`
+ entityType: string,
+ textMapping: Record,
+ key: string
+ ) => textMapping[key] || `TEXT NEEDED FOR ${entityType.toUpperCase()} "${key}"`
+
From 634c724260204cc4061bf556b72926fdb641d3ee Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 6 Oct 2023 15:51:12 -0400
Subject: [PATCH 20/62] add gnomad_cnv_r4 to search dataset
---
browser/src/Searchbox.tsx | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/browser/src/Searchbox.tsx b/browser/src/Searchbox.tsx
index ff7f9769f..d675dc0c5 100644
--- a/browser/src/Searchbox.tsx
+++ b/browser/src/Searchbox.tsx
@@ -41,6 +41,9 @@ const getDefaultSearchDataset = (selectedDataset: any) => {
if (selectedDataset === 'gnomad_sv_r4') {
return 'gnomad_sv_r4'
}
+ if (selectedDataset === 'gnomad_cnv_r4') {
+ return 'gnomad_cnv_r4'
+ }
}
return 'gnomad_r2_1'
}
@@ -86,6 +89,7 @@ export default withRouter((props: any) => {
gnomAD v3.1.2
gnomAD SVs v4
+ gnomAD exome CNVs v4
gnomAD v2.1.1
From 26f85b6c2f9f6eab768d0fff1db9e2e76246074b Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 6 Oct 2023 15:51:35 -0400
Subject: [PATCH 21/62] add gnomad_cnv_r4 to metadata
---
dataset-metadata/metadata.ts | 38 ++++++++++++++++++++++++++++++++++--
1 file changed, 36 insertions(+), 2 deletions(-)
diff --git a/dataset-metadata/metadata.ts b/dataset-metadata/metadata.ts
index d0d1ffb66..4ff9a0595 100644
--- a/dataset-metadata/metadata.ts
+++ b/dataset-metadata/metadata.ts
@@ -17,6 +17,8 @@ export const datasetLabels = {
gnomad_sv_r2_1_controls: 'gnomAD SVs v2.1 (controls)',
gnomad_sv_r2_1_non_neuro: 'gnomAD SVs v2.1 (non-neuro)',
gnomad_sv_r4: 'gnomAD SVs v4',
+ gnomad_r4: '', //* TODO
+ gnomad_cnv_r4: "gnomAD CNVs v4.1",
} as const
export type DatasetId = keyof typeof datasetLabels
@@ -29,6 +31,9 @@ const fullDatasetIds = allDatasetIds.filter(
)
const extractReadsDatasetId = (datasetId: DatasetId) => {
+ if (datasetId.startsWith('gnomad_r4')) {
+ return 'gnomad_r4'
+ }
if (datasetId.startsWith('gnomad_r3')) {
return 'gnomad_r3'
}
@@ -60,6 +65,9 @@ const extractCoverageDatasetId = (datasetId: DatasetId): DatasetId => {
if (datasetId.startsWith('gnomad_sv_r4')) {
return 'gnomad_r3'
}
+ if (datasetId.startsWith('gnomad_cnv_r4')) {
+ return 'gnomad_r4'
+ }
return datasetId
}
@@ -97,6 +105,13 @@ const extractStructuralVariantDatasetId = (datasetId: DatasetId): DatasetId => {
return 'gnomad_sv_r4'
}
+const extractCopyNumberVariantDatasetId = (datasetId: DatasetId): DatasetId => {
+ if (datasetId.startsWith('gnomad_cnv')) {
+ return datasetId
+ }
+
+ return 'gnomad_cnv_r4'
+}
type DatasetMetadata = {
referenceGenome: ReferenceGenome
@@ -104,6 +119,7 @@ type DatasetMetadata = {
isSubset: boolean
hasShortVariants: boolean
hasStructuralVariants: boolean
+ hasCopyNumberVariants: boolean
hasConstraints: boolean
hasVariantCoocurrence: boolean
hasNonCodingConstraints: boolean
@@ -122,6 +138,8 @@ type DatasetMetadata = {
isExac: boolean
isSVs: boolean
isV4SVs: boolean
+ isCNVs: boolean
+ isV4CNVs: boolean
hasV2Genome: boolean
metricsIncludeLowQualityGenotypes: boolean
has1000GenomesPopulationFrequencies: boolean
@@ -139,12 +157,17 @@ type DatasetMetadata = {
variantFeedbackDescription: string | null
shortVariantDatasetId: DatasetId
structuralVariantDatasetId: DatasetId
+ copyNumberVariantDatasetId: DatasetId
}
const structuralVariantDatasetIds = allDatasetIds.filter((datasetId) =>
datasetId.startsWith('gnomad_sv')
)
+const copyNumberVariantDatasetIds = allDatasetIds.filter((datasetId) =>
+ datasetId.startsWith('gnomad_cnv')
+)
+
const metadataForDataset = (datasetId: DatasetId): DatasetMetadata => ({
label: datasetLabels[datasetId],
isSubset: !fullDatasetIds.includes(datasetId),
@@ -155,11 +178,13 @@ const metadataForDataset = (datasetId: DatasetId): DatasetMetadata => ({
hasVariantCoocurrence: datasetId.startsWith('gnomad') && datasetId.includes('r2'),
hasConstraints: !datasetId.startsWith('gnomad_r3') && datasetId !== 'gnomad_sv_r4',
hasNonCodingConstraints: datasetId.startsWith('gnomad_r3') || datasetId === 'gnomad_sv_r4',
- referenceGenome:
- datasetId.startsWith('gnomad_r3') || datasetId === 'gnomad_sv_r4' ? 'GRCh38' : 'GRCh37',
hasExome: !datasetId.startsWith('gnomad_r3') && datasetId !== 'gnomad_sv_r4',
genesHaveExomeCoverage: !datasetId.startsWith('gnomad_r3') && datasetId !== 'gnomad_sv_r4',
transcriptsHaveExomeCoverage: !datasetId.startsWith('gnomad_r3') && datasetId !== 'gnomad_sv_r4',
+ isV4CNVs: datasetId === 'gnomad_cnv_r4',
+ hasCopyNumberVariants: copyNumberVariantDatasetIds.includes(datasetId),
+ referenceGenome:
+ datasetId.startsWith('gnomad_r3') || datasetId === 'gnomad_cnv_r4' ||datasetId === 'gnomad_sv_r4' ? 'GRCh38' : 'GRCh37',
regionsHaveExomeCoverage:
!datasetId.startsWith('gnomad_sv') && !datasetId.startsWith('gnomad_r3'),
hasLocalAncestryPopulations: datasetId.startsWith('gnomad_r3') || datasetId === 'gnomad_sv_r4',
@@ -170,6 +195,7 @@ const metadataForDataset = (datasetId: DatasetId): DatasetMetadata => ({
isV2: datasetId.startsWith('gnomad_r2'),
isV3: datasetId.startsWith('gnomad_r3'),
isSVs: datasetId.startsWith('gnomad_sv'),
+ isCNVs: datasetId.startsWith('gnomad_cnv'),
isExac: datasetId === 'exac',
hasV2Genome: datasetId.startsWith('gnomad_r2'),
metricsIncludeLowQualityGenotypes: datasetId.startsWith('gnomad_r2') || datasetId === 'exac',
@@ -189,6 +215,7 @@ const metadataForDataset = (datasetId: DatasetId): DatasetMetadata => ({
variantFeedbackDescription: extractVariantFeedbackDescription(datasetId),
shortVariantDatasetId: extractShortVariantDatasetId(datasetId),
structuralVariantDatasetId: extractStructuralVariantDatasetId(datasetId),
+ copyNumberVariantDatasetId: extractCopyNumberVariantDatasetId(datasetId),
})
const metadata = allDatasetIds.reduce(
@@ -232,6 +259,9 @@ export const hasShortVariants = (datasetId: DatasetId) => getMetadata(datasetId,
export const hasStructuralVariants = (datasetId: DatasetId) =>
getMetadata(datasetId, 'hasStructuralVariants')
+export const hasCopyNumberVariants = (datasetId: DatasetId) =>
+getMetadata(datasetId, 'hasCopyNumberVariants')
+
export const hasLocalAncestryPopulations = (datasetId: DatasetId) =>
getMetadata(datasetId, 'hasLocalAncestryPopulations')
@@ -303,3 +333,7 @@ export const shortVariantDatasetId = (datasetId: DatasetId) =>
export const structuralVariantDatasetId = (datasetId: DatasetId) =>
getMetadata(datasetId, 'structuralVariantDatasetId')
+export const isV4CNVs = (datasetId: DatasetId) => getMetadata(datasetId, 'isV4CNVs')
+
+export const copyNumberVariantDatasetId = (datasetId: DatasetId) =>
+ getMetadata(datasetId, 'copyNumberVariantDatasetId')
From f8d54b85a57c2cf296906c5cd8b3d26c2aa3e78e Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 6 Oct 2023 15:52:32 -0400
Subject: [PATCH 22/62] create cnv populations table
---
.../CNVPopulationsTable.tsx | 327 ++++++++++++++++++
.../CopyNumberVariantPopulationsTable.tsx | 85 +++++
2 files changed, 412 insertions(+)
create mode 100644 browser/src/CopyNumberVariantPage/CNVPopulationsTable.tsx
create mode 100644 browser/src/CopyNumberVariantPage/CopyNumberVariantPopulationsTable.tsx
diff --git a/browser/src/CopyNumberVariantPage/CNVPopulationsTable.tsx b/browser/src/CopyNumberVariantPage/CNVPopulationsTable.tsx
new file mode 100644
index 000000000..ef870e676
--- /dev/null
+++ b/browser/src/CopyNumberVariantPage/CNVPopulationsTable.tsx
@@ -0,0 +1,327 @@
+import React, { Component } from 'react'
+import styled from 'styled-components'
+
+import { BaseTable, TextButton, TooltipAnchor, TooltipHint } from '@gnomad/ui'
+
+const Table = styled(BaseTable)`
+ min-width: 100%;
+
+ tr.border {
+ td,
+ th {
+ border-top: 2px solid #aaa;
+ }
+ }
+
+ th.right-align,
+ td.right-align {
+ padding-right: 25px;
+ text-align: right;
+ }
+`
+
+const TogglePopulationButton = styled(TextButton)`
+ display: inline-flex;
+ flex-direction: row;
+ align-items: center;
+ padding-left: ${(props: any) => (props.isExpanded ? '15px' : '10px')};
+ background-image: ${(props: any) =>
+ props.isExpanded
+ ? 'url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7)'
+ : 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAVCAYAAABhe09AAAAATElEQVQoU2NkQAOM9BFQ1jXYf/fyBUeYbYzKugb/GRgYDsAEYQIgBWBBZAGwIIoA438GhAoQ586VCxAVMA5ID6OKjoEDSAZuLV18CwAQVSMV/9L8fgAAAABJRU5ErkJggg==)'};
+ background-position: center left ${(props: any) => (props.isExpanded ? '-5px' : '0')};
+ background-repeat: no-repeat;
+ color: inherit;
+ text-align: left;
+`
+
+const SEX_IDENTIFIERS = ['XX', 'XY']
+
+type Subpopulation = {
+ id: string
+ name: string
+ sc: number
+ sn: number
+}
+
+const isSexSpecificPopulation = (pop: Subpopulation) =>
+ SEX_IDENTIFIERS.includes(pop.id) || SEX_IDENTIFIERS.some((id) => pop.id.endsWith(`_${id}`))
+
+const calculatePopSF = (sc: number, sn: number) => {
+ if (sn === 0) {
+ return '-'
+ }
+ return sc / sn
+}
+
+const renderPopSF = (sf: number | string) => {
+ if (typeof sf === 'number') {
+ return sf.toPrecision(4)
+ }
+ return sf
+}
+
+type OwnPopulationsTableProps = {
+ columnLabels?: {
+ sc?: string
+ sn?: string
+ sf?: string
+ }
+ populations: {
+ id: string
+ name: string
+ sc: number
+ sn: number
+ subpopulations?: {
+ id: string
+ name: string
+ sc: number
+ sn: number
+ }[]
+ }[]
+ initiallyExpandRows?: boolean
+}
+
+type CNVPopulationsTableState = any
+
+type CNVPopulationsTableProps = OwnPopulationsTableProps & typeof CNVPopulationsTable.defaultProps
+
+export class CNVPopulationsTable extends Component<
+ CNVPopulationsTableProps,
+ CNVPopulationsTableState
+> {
+ static defaultProps = {
+ columnLabels: {},
+ initiallyExpandRows: false,
+ }
+
+ constructor(props: CNVPopulationsTableProps) {
+ super(props)
+
+ this.state = {
+ sortBy: 'sf',
+ sortAscending: false,
+ expandedPopulations: props.populations.reduce(
+ (acc, pop) => ({ ...acc, [pop.name]: props.initiallyExpandRows }),
+ {}
+ ),
+ }
+ }
+
+ setSortBy(sortBy: any) {
+ this.setState((state: any) => ({
+ sortBy,
+ sortAscending: sortBy === state.sortBy ? !state.sortAscending : state.sortAscending,
+ }))
+ }
+
+ togglePopulationExpanded(populationName: string) {
+ this.setState((state: any) => ({
+ ...state,
+
+ expandedPopulations: {
+ ...state.expandedPopulations,
+ [populationName]: !state.expandedPopulations[populationName],
+ },
+ }))
+ }
+
+ renderColumnHeader({ key, label, tooltip = null, props = {} }: any) {
+ const { sortAscending, sortBy } = this.state
+ let ariaSortAttr = 'none'
+ if (sortBy === key) {
+ ariaSortAttr = sortAscending ? 'ascending' : 'descending'
+ }
+
+ return (
+
+ this.setSortBy(key)}>
+ {tooltip ? (
+ // @ts-expect-error TS(2322) FIXME: Type '{ children: Element; tooltip: any; }' is not... Remove this comment to see the full error message
+
+ {/* @ts-expect-error TS(2745) FIXME: This JSX tag's 'children' prop expects type 'never... Remove this comment to see the full error message */}
+ {label}
+
+ ) : (
+ label
+ )}
+
+
+ )
+ }
+
+ renderPopulationRowHeader(pop: any) {
+ const { expandedPopulations } = this.state
+ const isExpanded = expandedPopulations[pop.name]
+ const colSpan = isExpanded ? 1 : 2
+ const rowSpan = isExpanded ? pop.subpopulations.length + 1 : 1
+ return (
+
+ {pop.subpopulations.length > 0 ? (
+ this.togglePopulationExpanded(pop.name)}
+ >
+ {pop.name}
+
+ ) : (
+ pop.name
+ )}
+
+ )
+ }
+
+ render() {
+ const { columnLabels, populations } = this.props
+ const { expandedPopulations, sortAscending, sortBy } = this.state
+
+ const renderedPopulations = populations
+ .map((pop) => {
+ const transformedSubpopulations = (pop.subpopulations || [])
+ .map((subPop) => ({
+ id: subPop.id,
+ name: subPop.name,
+ sc: subPop.sc,
+ sn: subPop.sn,
+ sf: calculatePopSF(subPop.sc, subPop.sn),
+ }))
+ .sort((a, b) => {
+ // Sort XX/XY subpopulations to bottom of list
+ if (isSexSpecificPopulation(a) && !isSexSpecificPopulation(b)) {
+ return 1
+ }
+ if (isSexSpecificPopulation(b) && !isSexSpecificPopulation(a)) {
+ return -1
+ }
+
+ const [subPop1, subPop2] = sortAscending ? [a, b] : [b, a]
+
+ return sortBy === 'name'
+ ? subPop1.name.localeCompare(subPop2.name)
+ : // @ts-expect-error TS(7053) FIXME: Element implicitly has sn 'any' type because expre... Remove this comment to see the full error message
+ subPop1[sortBy] - subPop2[sortBy]
+ })
+ return {
+ id: pop.id,
+ name: pop.name,
+ sc: pop.sc,
+ sn: pop.sn,
+ sf: calculatePopSF(pop.sc, pop.sn),
+ subpopulations: transformedSubpopulations,
+ }
+ })
+ .sort((a, b) => {
+ // Sort XX/XY populations to bottom of list
+ if (isSexSpecificPopulation(a) && !isSexSpecificPopulation(b)) {
+ return 1
+ }
+ if (isSexSpecificPopulation(b) && !isSexSpecificPopulation(a)) {
+ return -1
+ }
+
+ // Always sort xx/xy populations by name
+ if (isSexSpecificPopulation(b) && isSexSpecificPopulation(a)) {
+ return a.name.localeCompare(b.name)
+ }
+
+ const [pop1, pop2] = sortAscending ? [a, b] : [b, a]
+
+ // @ts-expect-error TS(7053) FIXME: Element implicitly has sn 'any' type because expre... Remove this comment to see the full error message
+ return sortBy === 'name' ? pop1.name.localeCompare(pop2.name) : pop1[sortBy] - pop2[sortBy]
+ })
+
+ // XX/XY numbers are included in the ancestry populations.
+ const totalSC = renderedPopulations
+ .filter((pop) => !isSexSpecificPopulation(pop))
+ .map((pop) => pop.sc)
+ .reduce((acc, n) => acc + n, 0)
+ const totalSN = renderedPopulations
+ .filter((pop) => !isSexSpecificPopulation(pop))
+ .map((pop) => pop.sn)
+ .reduce((acc, n) => acc + n, 0)
+ const totalSF = totalSN !== 0 ? totalSC / totalSN : 0
+
+ return (
+
+
+
+ {this.renderColumnHeader({ key: 'name', label: 'Population', props: { colSpan: 2 } })}
+ {this.renderColumnHeader({
+ key: 'sc',
+ label: columnLabels.sc || 'SC',
+ tooltip: 'Alternate allele count in high quality genotypes', // TODO
+ props: {
+ className: 'right-align',
+ },
+ })}
+ {this.renderColumnHeader({
+ key: 'sn',
+ label: columnLabels.sn || 'SN',
+ tooltip: 'Total number of called high quality genotypes', // TODO
+ props: {
+ className: 'right-align',
+ },
+ })}
+ {this.renderColumnHeader({
+ key: 'sf',
+ label: columnLabels.sf || 'SF',
+ tooltip: 'Total number of called high quality genotypes', // TODO
+ props: {
+ className: 'right-align',
+ },
+ })}
+
+
+ {renderedPopulations.map((pop, i) => (
+
+ 0 &&
+ isSexSpecificPopulation(pop) &&
+ !isSexSpecificPopulation(renderedPopulations[i - 1])
+ ? 'border'
+ : undefined
+ }
+ >
+ {this.renderPopulationRowHeader(pop)}
+ {expandedPopulations[pop.name] && Overall }
+ {pop.sc}
+ {pop.sn}
+ {renderPopSF(pop.sf)}
+
+ {pop.subpopulations &&
+ expandedPopulations[pop.name] &&
+ pop.subpopulations.map((subPop, j) => (
+
+ {subPop.name}
+ {subPop.sc}
+ {subPop.sn}
+ {renderPopSF(subPop.sf)}
+
+ ))}
+
+ ))}
+
+
+
+ Total
+
+ {totalSC}
+ {totalSN}
+ {totalSF.toPrecision(4)}
+
+
+
+ )
+ }
+}
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantPopulationsTable.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantPopulationsTable.tsx
new file mode 100644
index 000000000..a234afbd5
--- /dev/null
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantPopulationsTable.tsx
@@ -0,0 +1,85 @@
+import React from 'react'
+
+import { CopyNumberVariant } from './CopyNumberVariantPage'
+import { populationName } from '@gnomad/dataset-metadata/gnomadPopulations'
+import { CNVPopulationsTable } from './CNVPopulationsTable'
+
+type CopyNumberVariantPopulation = {
+ id: string,
+ sc: number,
+ sn: number,
+ sf: number,
+ name: string
+}
+
+type Subpopulations = {
+ [key: string]: CopyNumberVariantPopulation[];
+}
+
+
+const nestPopulations = (populations: CopyNumberVariantPopulation[]) => {
+ const popIndices = []
+ const subpopulations: Subpopulations = {}
+
+
+ for (let i = 0; i < populations.length; i += 1) {
+ const pop = populations[i]
+
+ const divisions = pop.id.split('_')
+ if (divisions.length === 1) {
+ popIndices.push(i)
+ } else {
+ const parentPop = divisions[0]
+ if (subpopulations[parentPop] === undefined) {
+ subpopulations[parentPop] = [{ ...pop }]
+ } else {
+ subpopulations[parentPop].push({ ...pop })
+ }
+ }
+ }
+
+ return popIndices.map((index) => {
+ const pop = populations[index]
+ return {
+ ...pop,
+ subpopulations: subpopulations[pop.id],
+ }
+ })
+}
+
+const addPopulationNames = (populations: CopyNumberVariantPopulation[]) => {
+ return populations.map((pop: CopyNumberVariantPopulation) => {
+ let name
+ if (pop.id === 'XX' || pop.id.endsWith('_XX')) {
+ name = 'XX'
+ } else if (pop.id === 'XY' || pop.id.endsWith('_XY')) {
+ name = 'XY'
+ } else {
+ name = populationName(pop.id)
+ }
+ return { ...pop, name }
+ })
+}
+
+type CopyNumberVariantPopulationsTableProps = {
+ variant: CopyNumberVariant
+}
+
+const CopyNumberVariantPopulationsTable = ({ variant }: CopyNumberVariantPopulationsTableProps) => {
+ const populations = nestPopulations(addPopulationNames((variant as any).populations))
+
+ const columnLabels = {
+ sc: 'SCount',
+ sn: 'SNumber',
+ sf: 'SFrequency',
+ }
+
+ return (
+
+ )
+}
+
+export default CopyNumberVariantPopulationsTable
From bdd1fa172dbf0387738789763cac3846e16850e3 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 6 Oct 2023 15:52:55 -0400
Subject: [PATCH 23/62] add cnv page to variant page router
---
browser/src/VariantPageRouter.tsx | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/browser/src/VariantPageRouter.tsx b/browser/src/VariantPageRouter.tsx
index bffbe6933..09dd8819e 100644
--- a/browser/src/VariantPageRouter.tsx
+++ b/browser/src/VariantPageRouter.tsx
@@ -9,6 +9,7 @@ import {
DatasetId,
labelForDataset,
hasStructuralVariants,
+ hasCopyNumberVariants,
} from '@gnomad/dataset-metadata/metadata'
import DocumentTitle from './DocumentTitle'
import Link from './Link'
@@ -21,6 +22,7 @@ const MitochondrialVariantPage = lazy(
)
const MNVPage = lazy(() => import('./MNVPage/MNVPage'))
const StructuralVariantPage = lazy(() => import('./StructuralVariantPage/StructuralVariantPage'))
+const CopyNumberVariantPage = lazy(() => import('./CopyNumberVariantPage/CopyNumberVariantPage'))
const VariantPage = lazy(() => import('./VariantPage/VariantPage'))
type VariantSearchProps = {
@@ -111,6 +113,10 @@ const VariantPageRouter = ({ datasetId, variantId }: VariantPageRouterProps) =>
return
}
+ if (hasCopyNumberVariants(datasetId)){
+ return
+ }
+
if (isVariantId(variantId)) {
const normalizedVariantId = normalizeVariantId(variantId).replace(/^MT/, 'M')
const [chrom, _pos, ref, alt] = normalizedVariantId.split('-')
From 094ad474eb39cd0f3cc738bf54ed9789b732248e Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 6 Oct 2023 15:53:19 -0400
Subject: [PATCH 24/62] WIP cnv page
---
.../CopyNumberVariantPage.tsx | 182 ++++++++++++++++++
1 file changed, 182 insertions(+)
create mode 100644 browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
new file mode 100644
index 000000000..bc6e483e9
--- /dev/null
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
@@ -0,0 +1,182 @@
+import React from 'react'
+import styled from 'styled-components'
+
+import { ExternalLink, Page } from '@gnomad/ui'
+
+import { DatasetId, labelForDataset } from '@gnomad/dataset-metadata/metadata'
+import DocumentTitle from '../DocumentTitle'
+import GnomadPageHeading from '../GnomadPageHeading'
+// import { Histogram } from '../VariantPage/VariantPage'
+// import InfoButton from '../help/InfoButton'
+import Query from '../Query'
+import { variantFeedbackUrl } from '../variantFeedback'
+// import MultiallelicCopyNumberVariantPlot from './MultiallelicCopyNumberVariantPlot'
+// import CopyNumberVariantAgeDistribution from './CopyNumberVariantAgeDistribution'
+import CopyNumberVariantAttributeList from './CopyNumberVariantAttributeList'
+// import CopyNumberVariantConsequenceList from './CopyNumberVariantConsequenceList'
+// import CopyNumberVariantGenotypeQualityMetrics from './CopyNumberVariantGenotypeQualityMetrics'
+import CopyNumberVariantPopulationsTable from './CopyNumberVariantPopulationsTable'
+// import SVReferenceList from './SVReferenceList'
+
+const Wrapper = styled.div`
+ display: flex;
+ flex-flow: row wrap;
+ justify-content: space-between;
+`
+
+const ResponsiveSection = styled.section`
+ width: calc(50% - 15px);
+
+ @media (max-width: 992px) {
+ width: 100%;
+ }
+`
+
+export type CopyNumberVariant = {
+ alts: string[] | null
+ sc: number
+ sn: number
+ sf: number
+ chrom: string
+ end: number
+ filters: string[]
+ genes: string[]
+ length: number
+ populations: {
+ id: string
+ sc: number
+ sn: number
+ sf: number
+ }[]
+ pos: number
+ qual: number
+ type: string
+ posmin: number
+ posmax: number
+ endmin: number
+ endmax: number
+ variant_id: string
+}
+
+type CopyNumberVariantPageProps = {
+ datasetId: DatasetId
+ variant: CopyNumberVariant
+}
+
+const CopyNumberVariantPage = ({ datasetId, variant }: CopyNumberVariantPageProps) => (
+ // @ts-expect-error TS(2746) FIXME: This JSX tag's 'children' prop expects a single ch... Remove this comment to see the full error message
+
+
+
+ Copy number variant: {variant.variant_id}
+
+
+
+
+
+
+ External Resources
+ {/* */}
+ Feedback
+ {/* @ts-expect-error TS(2786) FIXME: 'ExternalLink' cannot be used as a JSX component. */}
+
+ Report an issue with this variant
+
+
+
+
+
+ Population Frequencies
+
+
+
+
+
+ {/*
+
+
+
+ Age Distribution
+
+ {variant.age_distribution ? (
+
+ {datasetId !== 'gnomad_sv_r2_1' && (
+ Age distribution is based on the full SV dataset, not the selected subset.
+ )}
+
+
+ ) : (
+ Age data is not available for this variant.
+ )}
+
+ */}
+
+)
+
+type ConnectedCopyNumberVariantPageProps = {
+ datasetId: DatasetId
+ variantId: string
+}
+
+const ConnectedCopyNumberVariantPage = ({
+ datasetId,
+ variantId,
+}: ConnectedCopyNumberVariantPageProps) => {
+ const operationName = 'CopyNumberVariant'
+ const url = datasetId === 'gnomad_cnv_r4' ? '/api' : 'https://gnomad.broadinstitute.org/api/'
+
+ const query = `
+ query ${operationName}($datasetId: CopyNumberVariantDatasetId!, $variantId: String!) {
+ copy_number_variant(dataset: $datasetId, variantId: $variantId) {
+ alts
+ sc
+ sn
+ sf
+ chrom
+ end
+ filters
+ genes
+ length
+ populations {
+ id
+ sc
+ sn
+ sf
+ }
+ pos
+ qual
+ reference_genome
+ type
+ posmin
+ posmax
+ endmin
+ endmax
+ variant_id
+ }
+ }
+ `
+
+ return (
+ data.copy_number_variant}
+ >
+ {({ data }: any) => {
+ const variant = {
+ ...data.copy_number_variant,
+ variant_id: data.copy_number_variant.variant_id.toUpperCase(),
+ }
+ return
+ }}
+
+
+ )
+
+}
+
+export default ConnectedCopyNumberVariantPage
From 5d72c9666baaff513aa3a66a58f674e46212c26f Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 6 Oct 2023 15:53:36 -0400
Subject: [PATCH 25/62] WIP cnv attribute list
---
.../CopyNumberVariantAttributeList.tsx | 149 ++++++++++++++++++
1 file changed, 149 insertions(+)
create mode 100644 browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
new file mode 100644
index 000000000..c748d210f
--- /dev/null
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
@@ -0,0 +1,149 @@
+import React from 'react'
+
+import { Badge } from '@gnomad/ui'
+
+import AttributeList from '../AttributeList'
+import InfoButton from '../help/InfoButton'
+import Link from '../Link'
+import { cnvTypeLabels } from '../CopyNumberVariantList/copyNumberVariantTypes'
+import { CopyNumberVariant } from './CopyNumberVariantPage'
+import { textOrMissingTextWarning } from '../missingContent'
+
+const FILTER_LABELS = {
+ TRUE: 'TRUE',
+}
+
+const FILTER_DESCRIPTIONS = {
+ TRUE: 'TRUE',
+}
+
+
+
+const filterLabel = (filter: string) =>
+ textOrMissingTextWarning('filter label', FILTER_LABELS, filter)
+
+const filterDescription = (filter: string) =>
+ textOrMissingTextWarning('filter description', FILTER_DESCRIPTIONS, filter)
+
+type OwnPointLinkProps = {
+ chrom: string
+ pos: number
+ windowSize?: number
+}
+
+// @ts-expect-error TS(2456) FIXME: Type alias 'PointLinkProps' circularly references ... Remove this comment to see the full error message
+type PointLinkProps = OwnPointLinkProps & typeof PointLink.defaultProps
+
+// @ts-expect-error TS(7022) FIXME: 'PointLink' implicitly has type 'any' because it d... Remove this comment to see the full error message
+const PointLink = ({ chrom, pos, windowSize }: PointLinkProps) => (
+
+ {chrom}:{pos}
+
+)
+
+PointLink.defaultProps = {
+ windowSize: 10000,
+}
+
+type OwnComplexTypeHelpButtonProps = {
+ complexType?: string
+}
+
+// @ts-expect-error TS(2456) FIXME: Type alias 'ComplexTypeHelpButtonProps' circularly... Remove this comment to see the full error message
+type ComplexTypeHelpButtonProps = OwnComplexTypeHelpButtonProps &
+ typeof ComplexTypeHelpButton.defaultProps
+
+// @ts-expect-error TS(7022) FIXME: 'ComplexTypeHelpButton' implicitly has type 'any' ... Remove this comment to see the full error message
+const ComplexTypeHelpButton = ({ complexType }: ComplexTypeHelpButtonProps) => {
+ if (!complexType) {
+ return null
+ }
+
+ // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
+ const helpTopic = {
+ CCR: null,
+ dDUP: 'sv-class_CPX_dDUP_dDUP-iDEL',
+ dDUP_iDEL: 'sv-class_CPX_dDUP_dDUP-iDEL',
+ delINV: 'sv-class_CPX_delINV_INVdel',
+ delINVdel: 'sv-class_CPX_delINVdel',
+ delINVdup: 'sv-class_CPX_delINVdup_dupINVdel',
+ dupINV: 'sv-class_CPX_dupINV_INVdup',
+ dupINVdel: 'sv-class_CPX_delINVdup_dupINVdel',
+ dupINVdup: 'sv-class_CPX_dupINVdup',
+ INS_iDEL: 'sv-class_CPX_INS-iDEL',
+ INVdel: 'sv-class_CPX_delINV_INVdel',
+ INVdup: 'sv-class_CPX_dupINV_INVdup',
+ piDUP_FR: 'sv-class_CPX_piDUP-FR_piDUP-RF',
+ piDUP_RF: 'sv-class_CPX_piDUP-FR_piDUP-RF',
+ }[complexType]
+
+ if (!helpTopic) {
+ return null
+ }
+
+ return
+}
+
+ComplexTypeHelpButton.defaultProps = {
+ complexType: null,
+}
+
+type CopyNumberVariantAttributeListProps = {
+ variant: CopyNumberVariant
+}
+
+const CopyNumberVariantAttributeList = ({ variant }: CopyNumberVariantAttributeListProps) => (
+
+ {/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
+
+ {variant.filters.length > 0 ? (
+ variant.filters.map((filter) => (
+
+ {filterLabel(filter)}
+
+ ))
+ ) : (
+ Pass
+ )}
+
+
+ {/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
+
+ {variant.sc}
+
+ {/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
+
+ {variant.sn}
+
+ {/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
+
+ {(variant.sn === 0 ? 0 : variant.sc / variant.sn).toPrecision(4)}
+
+ {/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
+ {variant.qual}
+ {/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
+
+ {variant.type === 'DUP' || variant.type === 'DEL' ? (
+
+ ) : (
+
+ {variant.chrom}:{variant.pos}-{variant.end}
+
+ )}
+
+ {/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
+
+ {variant.length === -1 ? '—' : `${variant.length.toLocaleString()} bp`}
+
+ {/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
+
+ {/* @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message */}
+ {cnvTypeLabels[variant.type]}
+
+
+
+)
+
+export default CopyNumberVariantAttributeList
From d3d2e61ae01fee52c3f2075f3117554302d8afbd Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 12 Oct 2023 12:29:13 -0400
Subject: [PATCH 26/62] add cnv coverage track for percent callable
---
.../data_pipeline/data_types/cnv_coverage.py | 13 ++++++++++
.../gnomad_v4_copy_number_variant_coverage.py | 26 +++++++++++++++++++
2 files changed, 39 insertions(+)
create mode 100644 data-pipeline/src/data_pipeline/data_types/cnv_coverage.py
create mode 100644 data-pipeline/src/data_pipeline/pipelines/gnomad_v4_copy_number_variant_coverage.py
diff --git a/data-pipeline/src/data_pipeline/data_types/cnv_coverage.py b/data-pipeline/src/data_pipeline/data_types/cnv_coverage.py
new file mode 100644
index 000000000..6d9ea70b6
--- /dev/null
+++ b/data-pipeline/src/data_pipeline/data_types/cnv_coverage.py
@@ -0,0 +1,13 @@
+import hail as hl
+
+
+
+def prepare_cnv_track_callable_coverage(coverage_path):
+ coverage = hl.import_table(coverage_path, force_bgz=True)
+
+ coverage = coverage.select(
+ "xpos",
+ "percent_callable"
+ )
+
+ return coverage
diff --git a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_copy_number_variant_coverage.py b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_copy_number_variant_coverage.py
new file mode 100644
index 000000000..eebeaa996
--- /dev/null
+++ b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_copy_number_variant_coverage.py
@@ -0,0 +1,26 @@
+from data_pipeline.pipeline import Pipeline, run_pipeline
+
+from data_pipeline.data_types.cnv_coverage import prepare_cnv_track_callable_coverage
+
+
+pipeline = Pipeline()
+
+pipeline.add_task(
+ "prepare_gnomad_v4_cnvs_track_percent_callable_coverage",
+ prepare_cnv_track_callable_coverage,
+ "/gnomad_v4/gnomad_v4_cnvs/coverage_tracks/track_percent_callable.ht",
+ {"coverage_path": "gs://gnomad-v4-cnvs/coverage_tracks/track_percent_callable.tsv.gz"},
+)
+
+###############################################
+# Outputs
+###############################################
+
+pipeline.set_outputs({"track_percent_callable_coverage": "prepare_gnomad_v4_cnvs_track_percent_callable_coverage"})
+
+###############################################
+# Run
+###############################################
+
+if __name__ == "__main__":
+ run_pipeline(pipeline)
From 8cef11dd9d8deb94ddbae5e8cd0b132ab239bbef Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 13 Oct 2023 14:26:29 -0400
Subject: [PATCH 27/62] fix datasetselector oraganization for cnvs
---
browser/src/DatasetSelector.tsx | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/browser/src/DatasetSelector.tsx b/browser/src/DatasetSelector.tsx
index 21e4db9bf..66d0eb520 100644
--- a/browser/src/DatasetSelector.tsx
+++ b/browser/src/DatasetSelector.tsx
@@ -449,23 +449,27 @@ const DatasetSelector = withRouter(({ datasetOptions, history, selectedDataset }
search: queryString.stringify({ dataset: datasetId }),
})
- const topLevelShortVariantDataset = shortVariantDatasetId(selectedDataset)
const topLevelStructuralVariantDataset = structuralVariantDatasetId(selectedDataset)
+ const defaultTopLevelShortVariantDataset = includeGnomad2 ? 'gnomad_r2_1' : 'gnomad_r3'
+ const topLevelShortVariantDataset = hasShortVariants(selectedDataset)
+ ? selectedDataset
+ : defaultTopLevelShortVariantDataset
+
let datasets: any = []
if (includeShortVariants) {
const shortVariantDatasets = [
{
id: 'current_short_variant',
- isActive: hasShortVariants(selectedDataset),
+ isActive: hasShortVariants(selectedDataset) && !hasCopyNumberVariants(selectedDataset),
label: labelForDataset(topLevelShortVariantDataset),
url: datasetLink(topLevelShortVariantDataset),
childReferenceGenome: referenceGenome(topLevelShortVariantDataset),
},
{
id: 'other_short_variant',
- isActive: hasShortVariants(selectedDataset),
+ isActive: hasShortVariants(selectedDataset) && !hasCopyNumberVariants(selectedDataset),
label: 'More datasets',
children: [] as ChildDataset[],
},
@@ -652,7 +656,7 @@ const DatasetSelector = withRouter(({ datasetOptions, history, selectedDataset }
description: `samples`,
// description: `${sampleCounts.gnomad_cnv_r4.total.toLocaleString()} samples`,
childReferenceGenome: referenceGenome('gnomad_cnv_r4'),
- }
+ },
],
}
)
@@ -665,6 +669,7 @@ DatasetSelector.propTypes = {
datasetOptions: PropTypes.shape({
includeShortVariants: PropTypes.bool,
includeStructuralVariants: PropTypes.bool,
+ includeCopyNumberVariants: PropTypes.bool,
includeExac: PropTypes.bool,
includeGnomad2Subsets: PropTypes.bool,
includeGnomad3: PropTypes.bool,
@@ -677,6 +682,7 @@ DatasetSelector.defaultProps = {
datasetOptions: {
includeShortVariants: true,
includeStructuralVariants: true,
+ includeCopyNumberVariants: true,
includeExac: true,
includeGnomad2: true,
includeGnomad2Subsets: true,
From 66875e46e793cf881819b90f965adad3d8b5acc0 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 13 Oct 2023 14:26:45 -0400
Subject: [PATCH 28/62] add variantfeedback spec tests
---
browser/src/variantFeedback.spec.ts | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/browser/src/variantFeedback.spec.ts b/browser/src/variantFeedback.spec.ts
index fdf3b49b2..f0a0cee35 100644
--- a/browser/src/variantFeedback.spec.ts
+++ b/browser/src/variantFeedback.spec.ts
@@ -35,6 +35,10 @@ const expectedResults: Record = {
'http://example.com/variant_report_form?dataset_id_parameter=gnomAD%20v2&variant_id_param=1-234-A-C',
gnomad_sv_r4:
'http://example.com/variant_report_form?dataset_id_parameter=gnomAD%20v3&variant_id_param=1-234-A-C',
+ gnomad_r4:
+ 'http://example.com/variant_report_form?dataset_id_parameter=gnomAD%20v2&variant_id_param=1-234-A-C',
+ gnomad_cnv_r4:
+ 'http://example.com/variant_report_form?dataset_id_parameter=gnomAD%20v2&variant_id_param=1-234-A-C',
}
const originalEnv = process.env
From 13fbc27bb66161b75b2ed1feb046f6092fc6f338 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 13 Oct 2023 14:27:01 -0400
Subject: [PATCH 29/62] create cnv reference list
---
.../CNVReferenceList.tsx | 33 +++++++++++++++++++
1 file changed, 33 insertions(+)
create mode 100644 browser/src/CopyNumberVariantPage/CNVReferenceList.tsx
diff --git a/browser/src/CopyNumberVariantPage/CNVReferenceList.tsx b/browser/src/CopyNumberVariantPage/CNVReferenceList.tsx
new file mode 100644
index 000000000..4261790a0
--- /dev/null
+++ b/browser/src/CopyNumberVariantPage/CNVReferenceList.tsx
@@ -0,0 +1,33 @@
+import React from 'react'
+
+import { ExternalLink, List, ListItem } from '@gnomad/ui'
+
+import { CopyNumberVariant } from './CopyNumberVariantPage'
+
+const ucscUrl = (chrom: any, pos: any, end: any) =>
+ `https://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&position=chr${chrom}%3A${pos}-${end}`
+
+type CNVUCSCLinksProps = {
+ variant: CopyNumberVariant
+}
+
+const CNVUCSCLinks = ({ variant }: CNVUCSCLinksProps) => {
+ // @ts-expect-error TS(2786) FIXME: 'ExternalLink' cannot be used as a JSX component.
+ return UCSC
+}
+
+type CNVReferenceListProps = {
+ variant: CopyNumberVariant
+}
+
+const CNVReferenceList = ({ variant }: CNVReferenceListProps) => (
+ // @ts-expect-error TS(2745) FIXME: This JSX tag's 'children' prop expects type 'never... Remove this comment to see the full error message
+
+ {/* @ts-expect-error TS(2745) FIXME: This JSX tag's 'children' prop expects type 'never... Remove this comment to see the full error message */}
+
+
+
+
+)
+
+export default CNVReferenceList
From 548e0d45670f11d536c04c09f80284ecd8b97a64 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 13 Oct 2023 14:27:17 -0400
Subject: [PATCH 30/62] add v4 and cnv v4 to metadata
---
dataset-metadata/metadata.spec.ts | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dataset-metadata/metadata.spec.ts b/dataset-metadata/metadata.spec.ts
index 3d48fed5d..e81147fa3 100644
--- a/dataset-metadata/metadata.spec.ts
+++ b/dataset-metadata/metadata.spec.ts
@@ -204,6 +204,8 @@ const expectedCoverageDatasetIds: Record = {
gnomad_sv_r2_1_controls: 'gnomad_r2_1',
gnomad_sv_r2_1_non_neuro: 'gnomad_r2_1',
gnomad_sv_r4: 'gnomad_r3',
+ gnomad_r4: 'gnomad_r4',
+ gnomad_cnv_r4: 'gnomad_cnv_r4'
}
describe.each(allDatasetIds)('coverageDataset for dataset %s', (datasetId: DatasetId) => {
From 4b2a3455f085746ad6dccf47db657fdd47de207e Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 13 Oct 2023 14:27:58 -0400
Subject: [PATCH 31/62] add CNV info to gene page display
---
browser/src/GenePage/GenePage.tsx | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/browser/src/GenePage/GenePage.tsx b/browser/src/GenePage/GenePage.tsx
index a215a0573..711d69261 100644
--- a/browser/src/GenePage/GenePage.tsx
+++ b/browser/src/GenePage/GenePage.tsx
@@ -19,6 +19,7 @@ import {
ReferenceGenome,
hasExons,
isExac,
+ hasCopyNumberVariants,
isV2,
} from '@gnomad/dataset-metadata/metadata'
import ConstraintTable from '../ConstraintTable/ConstraintTable'
@@ -51,7 +52,13 @@ import VariantsInGene from './VariantsInGene'
import { GnomadConstraint } from '../ConstraintTable/GnomadConstraintTable'
import { ExacConstraint } from '../ConstraintTable/ExacConstraintTable'
-import { Variant, ClinvarVariant, StructuralVariant } from '../VariantPage/VariantPage'
+import {
+ Variant,
+ ClinvarVariant,
+ StructuralVariant,
+ CopyNumberVariant,
+} from '../VariantPage/VariantPage'
+import CopyNumberVariantsInGene from './CopyNumberVariantsInGene'
export type Strand = '+' | '-'
@@ -111,6 +118,7 @@ export type Gene = GeneMetadata & {
gnomad_v2_regional_missense_constraint?: RegionalMissenseConstraint
variants: Variant[]
structural_variants: StructuralVariant[]
+ copy_number_variants: CopyNumberVariant[]
clinvar_variants: ClinvarVariant[]
homozygous_variant_cooccurrence_counts: HomozygousVariantCooccurrenceCountsPerSeverityAndAf
heterozygous_variant_cooccurrence_counts: HeterozygousVariantCooccurrenceCountsPerSeverityAndAf
@@ -347,6 +355,7 @@ const GenePage = ({ datasetId, gene, geneId }: Props) => {
datasetOptions={{
includeShortVariants: true,
includeStructuralVariants: gene.chrom !== 'M',
+ includeCopyNumberVariants: true,
includeExac: gene.chrom !== 'M',
includeGnomad2: gene.chrom !== 'M',
includeGnomad3: true,
@@ -434,6 +443,8 @@ const GenePage = ({ datasetId, gene, geneId }: Props) => {
/>
) : gene.chrom === 'M' ? (
+ ) : hasCopyNumberVariants(datasetId) ? (
+ // TODO: CREATE COVERAGETRACKS
) : (
{
{/* eslint-disable-next-line no-nested-ternary */}
{hasStructuralVariants(datasetId) ? (
+ ) : hasCopyNumberVariants(datasetId) ? (
+
) : gene.chrom === 'M' ? (
) : (
From 390ca74c85ab914227a3f92b8fd047632a008106 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 13 Oct 2023 14:28:25 -0400
Subject: [PATCH 32/62] update cnv pop table labels
---
.../CopyNumberVariantPopulationsTable.tsx | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantPopulationsTable.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantPopulationsTable.tsx
index a234afbd5..90b42d6a7 100644
--- a/browser/src/CopyNumberVariantPage/CopyNumberVariantPopulationsTable.tsx
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantPopulationsTable.tsx
@@ -69,9 +69,9 @@ const CopyNumberVariantPopulationsTable = ({ variant }: CopyNumberVariantPopulat
const populations = nestPopulations(addPopulationNames((variant as any).populations))
const columnLabels = {
- sc: 'SCount',
- sn: 'SNumber',
- sf: 'SFrequency',
+ sc: 'Site Count',
+ sn: 'Number of Sites',
+ sf: 'Site Frequency',
}
return (
From 9e89be31783bd2dca53f494a8cded8f6f56867fe Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 13 Oct 2023 14:28:48 -0400
Subject: [PATCH 33/62] WIP variant cnv page
---
.../CopyNumberVariantPage.tsx | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
index bc6e483e9..b6b376a18 100644
--- a/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
@@ -10,13 +10,10 @@ import GnomadPageHeading from '../GnomadPageHeading'
// import InfoButton from '../help/InfoButton'
import Query from '../Query'
import { variantFeedbackUrl } from '../variantFeedback'
-// import MultiallelicCopyNumberVariantPlot from './MultiallelicCopyNumberVariantPlot'
// import CopyNumberVariantAgeDistribution from './CopyNumberVariantAgeDistribution'
import CopyNumberVariantAttributeList from './CopyNumberVariantAttributeList'
-// import CopyNumberVariantConsequenceList from './CopyNumberVariantConsequenceList'
-// import CopyNumberVariantGenotypeQualityMetrics from './CopyNumberVariantGenotypeQualityMetrics'
import CopyNumberVariantPopulationsTable from './CopyNumberVariantPopulationsTable'
-// import SVReferenceList from './SVReferenceList'
+import CNVReferenceList from './CNVReferenceList'
const Wrapper = styled.div`
display: flex;
@@ -67,7 +64,10 @@ const CopyNumberVariantPage = ({ datasetId, variant }: CopyNumberVariantPageProp
// @ts-expect-error TS(2746) FIXME: This JSX tag's 'children' prop expects a single ch... Remove this comment to see the full error message
-
+
Copy number variant: {variant.variant_id}
@@ -76,7 +76,7 @@ const CopyNumberVariantPage = ({ datasetId, variant }: CopyNumberVariantPageProp
External Resources
- {/* */}
+
Feedback
{/* @ts-expect-error TS(2786) FIXME: 'ExternalLink' cannot be used as a JSX component. */}
@@ -88,9 +88,7 @@ const CopyNumberVariantPage = ({ datasetId, variant }: CopyNumberVariantPageProp
-
-
+
{/*
@@ -174,9 +172,7 @@ const ConnectedCopyNumberVariantPage = ({
return
}}
-
)
-
}
export default ConnectedCopyNumberVariantPage
From 62139f138c3589a971d9443758dac6b4d326c2d8 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 13 Oct 2023 15:09:40 -0400
Subject: [PATCH 34/62] create cnv types ts
---
.../CopyNumberVariantList/copyNumberVariantTypes.tsx | 11 +++++++++++
1 file changed, 11 insertions(+)
create mode 100644 browser/src/CopyNumberVariantList/copyNumberVariantTypes.tsx
diff --git a/browser/src/CopyNumberVariantList/copyNumberVariantTypes.tsx b/browser/src/CopyNumberVariantList/copyNumberVariantTypes.tsx
new file mode 100644
index 000000000..160e8dd7b
--- /dev/null
+++ b/browser/src/CopyNumberVariantList/copyNumberVariantTypes.tsx
@@ -0,0 +1,11 @@
+export const cnvTypes = ['DEL', 'DUP']
+
+export const cnvTypeLabels = {
+ DEL: 'deletion',
+ DUP: 'duplication',
+}
+
+export const cnvTypeColors = {
+ DEL: '#D43925',
+ DUP: '#2376B2',
+}
From 287f00ab620986e44c0cf8c804fea2af20b19553 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 13 Oct 2023 15:09:57 -0400
Subject: [PATCH 35/62] update attribute list
---
.../CopyNumberVariantAttributeList.tsx | 98 +++----------------
1 file changed, 11 insertions(+), 87 deletions(-)
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
index c748d210f..514305818 100644
--- a/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
@@ -10,84 +10,19 @@ import { CopyNumberVariant } from './CopyNumberVariantPage'
import { textOrMissingTextWarning } from '../missingContent'
const FILTER_LABELS = {
- TRUE: 'TRUE',
+ TRUE: 'TRUE',
}
const FILTER_DESCRIPTIONS = {
- TRUE: 'TRUE',
+ TRUE: 'true',
}
-
-
const filterLabel = (filter: string) =>
textOrMissingTextWarning('filter label', FILTER_LABELS, filter)
const filterDescription = (filter: string) =>
textOrMissingTextWarning('filter description', FILTER_DESCRIPTIONS, filter)
-type OwnPointLinkProps = {
- chrom: string
- pos: number
- windowSize?: number
-}
-
-// @ts-expect-error TS(2456) FIXME: Type alias 'PointLinkProps' circularly references ... Remove this comment to see the full error message
-type PointLinkProps = OwnPointLinkProps & typeof PointLink.defaultProps
-
-// @ts-expect-error TS(7022) FIXME: 'PointLink' implicitly has type 'any' because it d... Remove this comment to see the full error message
-const PointLink = ({ chrom, pos, windowSize }: PointLinkProps) => (
-
- {chrom}:{pos}
-
-)
-
-PointLink.defaultProps = {
- windowSize: 10000,
-}
-
-type OwnComplexTypeHelpButtonProps = {
- complexType?: string
-}
-
-// @ts-expect-error TS(2456) FIXME: Type alias 'ComplexTypeHelpButtonProps' circularly... Remove this comment to see the full error message
-type ComplexTypeHelpButtonProps = OwnComplexTypeHelpButtonProps &
- typeof ComplexTypeHelpButton.defaultProps
-
-// @ts-expect-error TS(7022) FIXME: 'ComplexTypeHelpButton' implicitly has type 'any' ... Remove this comment to see the full error message
-const ComplexTypeHelpButton = ({ complexType }: ComplexTypeHelpButtonProps) => {
- if (!complexType) {
- return null
- }
-
- // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
- const helpTopic = {
- CCR: null,
- dDUP: 'sv-class_CPX_dDUP_dDUP-iDEL',
- dDUP_iDEL: 'sv-class_CPX_dDUP_dDUP-iDEL',
- delINV: 'sv-class_CPX_delINV_INVdel',
- delINVdel: 'sv-class_CPX_delINVdel',
- delINVdup: 'sv-class_CPX_delINVdup_dupINVdel',
- dupINV: 'sv-class_CPX_dupINV_INVdup',
- dupINVdel: 'sv-class_CPX_delINVdup_dupINVdel',
- dupINVdup: 'sv-class_CPX_dupINVdup',
- INS_iDEL: 'sv-class_CPX_INS-iDEL',
- INVdel: 'sv-class_CPX_delINV_INVdel',
- INVdup: 'sv-class_CPX_dupINV_INVdup',
- piDUP_FR: 'sv-class_CPX_piDUP-FR_piDUP-RF',
- piDUP_RF: 'sv-class_CPX_piDUP-FR_piDUP-RF',
- }[complexType]
-
- if (!helpTopic) {
- return null
- }
-
- return
-}
-
-ComplexTypeHelpButton.defaultProps = {
- complexType: null,
-}
-
type CopyNumberVariantAttributeListProps = {
variant: CopyNumberVariant
}
@@ -108,42 +43,31 @@ const CopyNumberVariantAttributeList = ({ variant }: CopyNumberVariantAttributeL
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
-
- {variant.sc}
-
+ {variant.sc}
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
-
- {variant.sn}
-
+ {variant.sn}
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
-
+
{(variant.sn === 0 ? 0 : variant.sc / variant.sn).toPrecision(4)}
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
{variant.qual}
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
- {variant.type === 'DUP' || variant.type === 'DEL' ? (
-
- ) : (
-
- {variant.chrom}:{variant.pos}-{variant.end}
-
- )}
+
+ {variant.chrom}:{variant.pos}-{variant.end}
+
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
-
- {variant.length === -1 ? '—' : `${variant.length.toLocaleString()} bp`}
-
+
+ {variant.length === -1 ? '—' : `${variant.length.toLocaleString()} bp`}
+
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
{/* @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message */}
{cnvTypeLabels[variant.type]}
-
)
export default CopyNumberVariantAttributeList
From c111e15315a3a4ec2782b244a52c8db97dcfb3aa Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 13 Oct 2023 15:10:27 -0400
Subject: [PATCH 36/62] add filter zoom region for cnvs
---
.../src/RegionViewer/filterVariantsInZoomRegion.ts | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/browser/src/RegionViewer/filterVariantsInZoomRegion.ts b/browser/src/RegionViewer/filterVariantsInZoomRegion.ts
index be2190e9a..8b8e2e1f6 100644
--- a/browser/src/RegionViewer/filterVariantsInZoomRegion.ts
+++ b/browser/src/RegionViewer/filterVariantsInZoomRegion.ts
@@ -1,4 +1,5 @@
import { sortedIndexBy, sortedLastIndexBy } from 'lodash-es'
+import { CopyNumberVariant } from '../CopyNumberVariantPage/CopyNumberVariantPage'
const filterVariantsInZoomRegion = (variants: any, zoomRegion: any) => {
if (!zoomRegion) {
@@ -23,3 +24,14 @@ export const filterStructuralVariantsInZoomRegion = (structuralVariants: any, zo
(variant.pos2 <= stop && variant.end2 >= start)
)
}
+
+export const filterCopyNumberVariantsInZoomRegion = (copyNumberVariants: CopyNumberVariant[], zoomRegion: any) => {
+ if (!zoomRegion) {
+ return copyNumberVariants
+ }
+ const { start, stop } = zoomRegion
+ return copyNumberVariants.filter(
+ (variant: any) =>
+ (variant.pos <= stop && variant.end >= start)
+ )
+}
From e61855385bad001c55eef9d3d11e501021e13c98 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 13 Oct 2023 15:11:30 -0400
Subject: [PATCH 37/62] update graphql types
---
graphql-api/src/graphql/types/dataset-id.graphql | 1 +
graphql-api/src/graphql/types/gene.graphql | 2 +-
graphql-api/src/graphql/types/region.graphql | 2 +-
3 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/graphql-api/src/graphql/types/dataset-id.graphql b/graphql-api/src/graphql/types/dataset-id.graphql
index 73165f935..34e5e5da4 100644
--- a/graphql-api/src/graphql/types/dataset-id.graphql
+++ b/graphql-api/src/graphql/types/dataset-id.graphql
@@ -1,4 +1,5 @@
enum DatasetId {
+ gnomad_r4
gnomad_r3
gnomad_r3_controls_and_biobanks
gnomad_r3_non_cancer
diff --git a/graphql-api/src/graphql/types/gene.graphql b/graphql-api/src/graphql/types/gene.graphql
index 4c6e80862..5dbd91626 100644
--- a/graphql-api/src/graphql/types/gene.graphql
+++ b/graphql-api/src/graphql/types/gene.graphql
@@ -83,7 +83,7 @@ type Gene {
heterozygous_variant_cooccurrence_counts: [HeterozygousVariantCooccurrenceCounts!]!
@cost(value: 5)
homozygous_variant_cooccurrence_counts: [HomozygousVariantCooccurrenceCounts!]! @cost(value: 5)
- copy_number_variants(dataset: CopyNumberVariantDatasetId!): [CopyNumberVariant!]! @cost(value: 10) #TODO: MAKE REQUIRED DATASETID
+ copy_number_variants(dataset: CopyNumberVariantDatasetId!): [CopyNumberVariant!]! @cost(value: 10)
}
type GeneSearchResult {
diff --git a/graphql-api/src/graphql/types/region.graphql b/graphql-api/src/graphql/types/region.graphql
index 0c3cb43d6..91fce5bac 100644
--- a/graphql-api/src/graphql/types/region.graphql
+++ b/graphql-api/src/graphql/types/region.graphql
@@ -31,7 +31,7 @@ type Region {
variants(dataset: DatasetId!): [Variant!]! @cost(value: 10)
structural_variants(dataset: StructuralVariantDatasetId!): [StructuralVariant!]! @cost(value: 10)
mitochondrial_variants(dataset: DatasetId!): [MitochondrialVariant!]! @cost(value: 10)
- copy_number_variants(dataset: CopyNumberVariantDatasetId!): [CopyNumberVariant!]! @cost(value: 10) #TODO: MAKE REQUIRED DATASETID
+ copy_number_variants(dataset: CopyNumberVariantDatasetId!): [CopyNumberVariant!]! @cost(value: 10)
clinvar_variants: [ClinVarVariant!] @cost(value: 10)
From abcf5a98e1809f19db5f87003ee7322d2f3c3b1c Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Wed, 18 Oct 2023 12:06:42 -0400
Subject: [PATCH 38/62] create tests
---
.../CopyNumberVariants.spec.tsx | 23 +++++++
.../CopyNumberVariantPage.spec.tsx | 60 +++++++++++++++++++
browser/src/DatasetSelector.spec.tsx | 4 ++
browser/src/GenePage/GenePage.spec.tsx | 22 +++++++
browser/src/Searchbox.spec.tsx | 2 +
5 files changed, 111 insertions(+)
create mode 100644 browser/src/CopyNumberVariantList/CopyNumberVariants.spec.tsx
create mode 100644 browser/src/CopyNumberVariantPage/CopyNumberVariantPage.spec.tsx
diff --git a/browser/src/CopyNumberVariantList/CopyNumberVariants.spec.tsx b/browser/src/CopyNumberVariantList/CopyNumberVariants.spec.tsx
new file mode 100644
index 000000000..086a09bc5
--- /dev/null
+++ b/browser/src/CopyNumberVariantList/CopyNumberVariants.spec.tsx
@@ -0,0 +1,23 @@
+import React from 'react'
+import { describe, test, expect } from '@jest/globals'
+import CopyNumberVariants, { Context } from './CopyNumberVariants'
+import cnvFactory from '../__factories__/CopyNumberVariant'
+import { createRenderer } from 'react-test-renderer/shallow'
+
+describe('CopyNumberVariants', () => {
+ const context: Context = { chrom: '12' }
+
+ const variants = cnvFactory.buildList(3).map((v) => ({
+ ...v,
+ }))
+
+ test('has no unexpected changes', () => {
+ // We can't do a full render because the Grid component invoked a couple of
+ // layers down uses react-sizeme. Since Grid is defined in GBTK, not this
+ // project, the sizeme mock in this project isn't applied.
+ const tree = createRenderer().render(
+
+ )
+ expect(tree).toMatchSnapshot()
+ })
+})
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.spec.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.spec.tsx
new file mode 100644
index 000000000..4aa3cb32c
--- /dev/null
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.spec.tsx
@@ -0,0 +1,60 @@
+import React from 'react'
+import renderer from 'react-test-renderer'
+import { jest, expect, test, describe } from '@jest/globals'
+import { mockQueries } from '../../../tests/__helpers__/queries'
+import Query, { BaseQuery } from '../Query'
+import { forDatasetsMatching } from '../../../tests/__helpers__/datasets'
+import CopyNumberVariantPage from './CopyNumberVariantPage'
+import cnvFactory from '../__factories__/CopyNumberVariant'
+import { withDummyRouter } from '../../../tests/__helpers__/router'
+
+jest.mock('../Query', () => {
+ const originalModule = jest.requireActual('../Query')
+
+ return {
+ __esModule: true,
+ ...(originalModule as object),
+ default: jest.fn(),
+ BaseQuery: jest.fn(),
+ }
+})
+
+const { resetMockApiCalls, resetMockApiResponses, simulateApiResponse, setMockApiResponses } =
+ mockQueries()
+
+beforeEach(() => {
+ Query.mockImplementation(
+ jest.fn(({ query, children, operationName, variables }) =>
+ simulateApiResponse('Query', query, children, operationName, variables)
+ )
+ )
+ ;(BaseQuery as any).mockImplementation(
+ jest.fn(({ query, children, operationName, variables }) =>
+ simulateApiResponse('BaseQuery', query, children, operationName, variables)
+ )
+ )
+})
+
+afterEach(() => {
+ resetMockApiCalls()
+ resetMockApiResponses()
+})
+
+forDatasetsMatching(/gnomad_cnv_r4/, 'CopyNumberVariantPage with dataset %s', (datasetId) => {
+ describe.each(['DEL', 'DUP'])('with variant of type %s', (variantType: string) => {
+ test('has no unexpected changes', () => {
+ const variant = cnvFactory.build({ type: variantType })
+ setMockApiResponses({
+ CopyNumberVariant: () => ({
+ copy_number_variant: variant,
+ }),
+ })
+ const tree = renderer.create(
+ withDummyRouter(
+
+ )
+ )
+ expect(tree).toMatchSnapshot()
+ })
+ })
+})
diff --git a/browser/src/DatasetSelector.spec.tsx b/browser/src/DatasetSelector.spec.tsx
index c4c25e103..c57292d3f 100644
--- a/browser/src/DatasetSelector.spec.tsx
+++ b/browser/src/DatasetSelector.spec.tsx
@@ -29,6 +29,10 @@ forAllDatasets('DataSelector with "%s" dataset selected', (datasetId) => {
includeGnomad2Subsets: true,
includeGnomad3: true,
includeGnomad3Subsets: true,
+<<<<<<< HEAD
+=======
+ includeCopyNumberVariants: true,
+>>>>>>> 104caa5d (create tests)
}}
/>
)
diff --git a/browser/src/GenePage/GenePage.spec.tsx b/browser/src/GenePage/GenePage.spec.tsx
index cfaebfd78..872123c64 100644
--- a/browser/src/GenePage/GenePage.spec.tsx
+++ b/browser/src/GenePage/GenePage.spec.tsx
@@ -56,6 +56,7 @@ afterEach(() => {
})
const svRegexp = /_sv/
+const cnvRegexp = /_cnv/
forDatasetsNotMatching(svRegexp, 'GenePage with non-SV dataset "%s"', (datasetId) => {
const gene = geneFactory.build()
@@ -124,6 +125,25 @@ forDatasetsMatching(svRegexp, 'GenePage with SV dataset "%s"', (datasetId) => {
expect(tree).toMatchSnapshot()
})
+ forDatasetsMatching(cnvRegexp, 'GenePage with CNV dataset "%s"', (datasetId) => {
+ test('has no unexpected changes', () => {
+ const gene = geneFactory.build()
+ setMockApiResponses({
+ CopyNumberVariantsInGene: () => ({
+ gene: { copy_number_variants: [] },
+ }),
+ RegionCoverage: () => ({
+ region: {
+ coverage: {},
+ },
+ }),
+ })
+ const tree = renderer.create(
+ withDummyRouter( )
+ )
+ expect(tree).toMatchSnapshot()
+ })
+
test('queries the API for region coverage with the correct parameters', async () => {
const gene = geneFactory.build()
setMockApiResponses({
@@ -162,6 +182,7 @@ describe.each([
['gnomad_r3_non_neuro', false],
['gnomad_r3_non_topmed', false],
['gnomad_r3_non_v2', false],
+ ['gnomad_cnv_r4', false],
] as [DatasetId, boolean][])('GenePage with non-SV dataset "%s"', (datasetId, expectedResult) => {
test('queries the API for gene coverage with the correct parameters', async () => {
const gene = geneFactory.build()
@@ -206,6 +227,7 @@ describe.each([
['gnomad_r3_non_neuro', 'GRCh38', true],
['gnomad_r3_non_topmed', 'GRCh38', true],
['gnomad_r3_non_v2', 'GRCh38', true],
+ ['gnomad_cnv_r4','GRCh38', false],
] as [DatasetId, ReferenceGenome, boolean][])(
'gene query with dataset %s',
(datasetId, expectedReferenceGenome, expectedIncludeShortTandemRepeats) => {
diff --git a/browser/src/Searchbox.spec.tsx b/browser/src/Searchbox.spec.tsx
index e78cb8ece..89bd949e3 100644
--- a/browser/src/Searchbox.spec.tsx
+++ b/browser/src/Searchbox.spec.tsx
@@ -39,6 +39,8 @@ describe('Searchbox', () => {
gnomad_sv_r2_1_controls: 'gnomad_sv_r2_1',
gnomad_sv_r2_1_non_neuro: 'gnomad_sv_r2_1',
gnomad_sv_r4: 'gnomad_sv_r4',
+ gnomad_r4: 'gnomad_r4',
+ gnomad_cnv_r4: 'gnomad_cnv_r4',
}
test('has correct default dataset', () => {
From 6ccf5e6bd37a2ee1f5efa3a0c5a0573fa5da63bf Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Wed, 18 Oct 2023 15:24:18 -0400
Subject: [PATCH 39/62] create cnv factories
---
.../src/__factories__/CopyNumberVariant.ts | 51 +++++++++++++++++++
1 file changed, 51 insertions(+)
create mode 100644 browser/src/__factories__/CopyNumberVariant.ts
diff --git a/browser/src/__factories__/CopyNumberVariant.ts b/browser/src/__factories__/CopyNumberVariant.ts
new file mode 100644
index 000000000..12a44239e
--- /dev/null
+++ b/browser/src/__factories__/CopyNumberVariant.ts
@@ -0,0 +1,51 @@
+import { Factory } from 'fishery'
+import { CopyNumberVariant } from '../CopyNumberVariantPage/CopyNumberVariantPage'
+
+const cnvFactory = Factory.define(
+ ({ params }) => {
+ const {
+ alts = null,
+ sc = 123,
+ sn = 345,
+ sf = 0.5,
+ chrom = '21',
+ end = 456,
+ filters = [],
+ genes = [],
+ length = 333,
+ populations = [],
+ pos = 123,
+ qual = 99,
+ type = 'DUP',
+ posmin = 100121281,
+ posmax = 100121284,
+ endmin = 100168738,
+ endmax = 100168742,
+ } = params
+
+ const variant_id = `${chrom}__${type}`
+
+ return {
+ alts,
+ sc,
+ sn,
+ sf,
+ chrom,
+ end,
+ filters,
+ genes,
+ length,
+ populations,
+ pos,
+ qual,
+ type,
+ posmin,
+ posmax,
+ endmin,
+ endmax,
+ variant_id,
+ }
+ }
+)
+
+export default cnvFactory
From a091f0dc2d8b18567b7a33f622d7d7170e205444 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 19 Oct 2023 10:23:14 -0400
Subject: [PATCH 40/62] add exome only coverage for cnvs
---
browser/src/GenePage/GenePage.tsx | 4 ++--
dataset-metadata/metadata.ts | 16 +++++++++++++---
2 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/browser/src/GenePage/GenePage.tsx b/browser/src/GenePage/GenePage.tsx
index 711d69261..e1bdaba3e 100644
--- a/browser/src/GenePage/GenePage.tsx
+++ b/browser/src/GenePage/GenePage.tsx
@@ -14,6 +14,7 @@ import { Badge, Button } from '@gnomad/ui'
import {
DatasetId,
genesHaveExomeCoverage,
+ genesHaveGenomeCoverage,
labelForDataset,
hasStructuralVariants,
ReferenceGenome,
@@ -443,13 +444,12 @@ const GenePage = ({ datasetId, gene, geneId }: Props) => {
/>
) : gene.chrom === 'M' ? (
- ) : hasCopyNumberVariants(datasetId) ? (
- // TODO: CREATE COVERAGETRACKS
) : (
)}
diff --git a/dataset-metadata/metadata.ts b/dataset-metadata/metadata.ts
index 4ff9a0595..3f0a545c7 100644
--- a/dataset-metadata/metadata.ts
+++ b/dataset-metadata/metadata.ts
@@ -18,7 +18,7 @@ export const datasetLabels = {
gnomad_sv_r2_1_non_neuro: 'gnomAD SVs v2.1 (non-neuro)',
gnomad_sv_r4: 'gnomAD SVs v4',
gnomad_r4: '', //* TODO
- gnomad_cnv_r4: "gnomAD CNVs v4.1",
+ gnomad_cnv_r4: "gnomAD CNVs v4.0.0",
} as const
export type DatasetId = keyof typeof datasetLabels
@@ -120,11 +120,13 @@ type DatasetMetadata = {
hasShortVariants: boolean
hasStructuralVariants: boolean
hasCopyNumberVariants: boolean
+ hasCopyNumberVariantCoverage: boolean
hasConstraints: boolean
hasVariantCoocurrence: boolean
hasNonCodingConstraints: boolean
hasExome: boolean
genesHaveExomeCoverage: boolean
+ genesHaveGenomeCoverage: boolean
transcriptsHaveExomeCoverage: boolean
regionsHaveExomeCoverage: boolean
hasLocalAncestryPopulations: boolean
@@ -175,6 +177,8 @@ const metadataForDataset = (datasetId: DatasetId): DatasetMetadata => ({
isV4SVs: datasetId === 'gnomad_sv_r4',
hasShortVariants: !structuralVariantDatasetIds.includes(datasetId),
hasStructuralVariants: structuralVariantDatasetIds.includes(datasetId),
+ hasCopyNumberVariants: copyNumberVariantDatasetIds.includes(datasetId),
+ hasCopyNumberVariantCoverage: datasetId.startsWith('gnomad_cnv'),
hasVariantCoocurrence: datasetId.startsWith('gnomad') && datasetId.includes('r2'),
hasConstraints: !datasetId.startsWith('gnomad_r3') && datasetId !== 'gnomad_sv_r4',
hasNonCodingConstraints: datasetId.startsWith('gnomad_r3') || datasetId === 'gnomad_sv_r4',
@@ -182,9 +186,9 @@ const metadataForDataset = (datasetId: DatasetId): DatasetMetadata => ({
genesHaveExomeCoverage: !datasetId.startsWith('gnomad_r3') && datasetId !== 'gnomad_sv_r4',
transcriptsHaveExomeCoverage: !datasetId.startsWith('gnomad_r3') && datasetId !== 'gnomad_sv_r4',
isV4CNVs: datasetId === 'gnomad_cnv_r4',
- hasCopyNumberVariants: copyNumberVariantDatasetIds.includes(datasetId),
referenceGenome:
- datasetId.startsWith('gnomad_r3') || datasetId === 'gnomad_cnv_r4' ||datasetId === 'gnomad_sv_r4' ? 'GRCh38' : 'GRCh37',
+ datasetId.startsWith('gnomad_r3') || datasetId === 'gnomad_cnv_r4' ||datasetId === 'gnomad_sv_r4' || datasetId.startsWith('gnomad_r4') ? 'GRCh38' : 'GRCh37',
+ genesHaveGenomeCoverage: !datasetId.startsWith('gnomad_cnv'),
regionsHaveExomeCoverage:
!datasetId.startsWith('gnomad_sv') && !datasetId.startsWith('gnomad_r3'),
hasLocalAncestryPopulations: datasetId.startsWith('gnomad_r3') || datasetId === 'gnomad_sv_r4',
@@ -248,6 +252,9 @@ export const hasExome = (datsetId: DatasetId) => getMetadata(datsetId, 'hasExome
export const genesHaveExomeCoverage = (datsetId: DatasetId) =>
getMetadata(datsetId, 'genesHaveExomeCoverage')
+ export const genesHaveGenomeCoverage = (datsetId: DatasetId) =>
+ getMetadata(datsetId, 'genesHaveGenomeCoverage')
+
export const transcriptsHaveExomeCoverage = (datsetId: DatasetId) =>
getMetadata(datsetId, 'transcriptsHaveExomeCoverage')
@@ -337,3 +344,6 @@ export const isV4CNVs = (datasetId: DatasetId) => getMetadata(datasetId, 'isV4CN
export const copyNumberVariantDatasetId = (datasetId: DatasetId) =>
getMetadata(datasetId, 'copyNumberVariantDatasetId')
+
+export const hasCopyNumberVariantCoverage = (datasetId: DatasetId) =>
+ getMetadata(datasetId, 'hasCopyNumberVariantCoverage')
From d28db682d98a60747bf1e00a9c04883f4f45fdf9 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 19 Oct 2023 14:47:09 -0400
Subject: [PATCH 41/62] add param to only display exome coverage for cnvs
---
browser/src/DatasetSelector.spec.tsx | 3 ---
browser/src/RegionPage/RegionPage.tsx | 10 ++++++++++
dataset-metadata/metadata.ts | 5 +++++
3 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/browser/src/DatasetSelector.spec.tsx b/browser/src/DatasetSelector.spec.tsx
index c57292d3f..8333850e5 100644
--- a/browser/src/DatasetSelector.spec.tsx
+++ b/browser/src/DatasetSelector.spec.tsx
@@ -29,10 +29,7 @@ forAllDatasets('DataSelector with "%s" dataset selected', (datasetId) => {
includeGnomad2Subsets: true,
includeGnomad3: true,
includeGnomad3Subsets: true,
-<<<<<<< HEAD
-=======
includeCopyNumberVariants: true,
->>>>>>> 104caa5d (create tests)
}}
/>
)
diff --git a/browser/src/RegionPage/RegionPage.tsx b/browser/src/RegionPage/RegionPage.tsx
index 681783ba6..b8d864e8c 100644
--- a/browser/src/RegionPage/RegionPage.tsx
+++ b/browser/src/RegionPage/RegionPage.tsx
@@ -8,7 +8,10 @@ import {
labelForDataset,
hasNonCodingConstraints,
regionsHaveExomeCoverage,
+ regionsHaveGenomeCoverage,
isSVs,
+ isV4CNVs,
+ hasCopyNumberVariants,
} from '@gnomad/dataset-metadata/metadata'
import DocumentTitle from '../DocumentTitle'
import GnomadPageHeading from '../GnomadPageHeading'
@@ -27,6 +30,7 @@ import RegionCoverageTrack from './RegionCoverageTrack'
import RegionInfo from './RegionInfo'
import RegularVariantsInRegion from './VariantsInRegion'
import StructuralVariantsInRegion from './StructuralVariantsInRegion'
+import CopyNumberVariantsInRegion from './CopyNumberVariantsInRegion'
const RegionInfoColumnWrapper = styled.div`
display: flex;
@@ -80,6 +84,10 @@ const variantsInRegion = (datasetId: DatasetId, region: Region) => {
return
}
+ if (isV4CNVs(datasetId)) {
+ return
+ }
+
if (region.chrom === 'M') {
return (
@@ -119,6 +127,7 @@ const RegionPage = ({ datasetId, region }: RegionPageProps) => {
datasetOptions={{
includeShortVariants: true,
includeStructuralVariants: chrom !== 'M',
+ includeCopyNumberVariants: true,
includeExac: region.reference_genome === 'GRCh37' && chrom !== 'M',
includeGnomad2: region.reference_genome === 'GRCh37' && chrom !== 'M',
includeGnomad3: region.reference_genome === 'GRCh38' || chrom === 'M',
@@ -158,6 +167,7 @@ const RegionPage = ({ datasetId, region }: RegionPageProps) => {
datasetId={datasetId}
chrom={chrom}
includeExomeCoverage={regionsHaveExomeCoverage(datasetId)}
+ includeGenomeCoverage={regionsHaveGenomeCoverage(datasetId)}
start={start}
stop={stop}
/>
diff --git a/dataset-metadata/metadata.ts b/dataset-metadata/metadata.ts
index 3f0a545c7..017740b7e 100644
--- a/dataset-metadata/metadata.ts
+++ b/dataset-metadata/metadata.ts
@@ -129,6 +129,7 @@ type DatasetMetadata = {
genesHaveGenomeCoverage: boolean
transcriptsHaveExomeCoverage: boolean
regionsHaveExomeCoverage: boolean
+ regionsHaveGenomeCoverage: boolean
hasLocalAncestryPopulations: boolean
isLiftoverSource: boolean
isLiftoverTarget: boolean
@@ -192,6 +193,7 @@ const metadataForDataset = (datasetId: DatasetId): DatasetMetadata => ({
regionsHaveExomeCoverage:
!datasetId.startsWith('gnomad_sv') && !datasetId.startsWith('gnomad_r3'),
hasLocalAncestryPopulations: datasetId.startsWith('gnomad_r3') || datasetId === 'gnomad_sv_r4',
+ regionsHaveGenomeCoverage: !datasetId.startsWith('gnomad_cnv'),
isLiftoverSource: datasetId.startsWith('gnomad_r2_1'),
isLiftoverTarget: datasetId.startsWith('gnomad_r3'),
usesGrch37: !datasetId.startsWith('gnomad_r3') && datasetId !== 'gnomad_sv_r4',
@@ -261,6 +263,9 @@ export const transcriptsHaveExomeCoverage = (datsetId: DatasetId) =>
export const regionsHaveExomeCoverage = (datsetId: DatasetId) =>
getMetadata(datsetId, 'regionsHaveExomeCoverage')
+export const regionsHaveGenomeCoverage = (datsetId: DatasetId) =>
+ getMetadata(datsetId, 'regionsHaveGenomeCoverage')
+
export const hasShortVariants = (datasetId: DatasetId) => getMetadata(datasetId, 'hasShortVariants')
export const hasStructuralVariants = (datasetId: DatasetId) =>
From eaa2939a23b1248afc2d47709a3a9c7706f4e511 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 19 Oct 2023 14:47:21 -0400
Subject: [PATCH 42/62] add cnv type
---
browser/src/VariantPage/VariantPage.tsx | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/browser/src/VariantPage/VariantPage.tsx b/browser/src/VariantPage/VariantPage.tsx
index e496a4160..b3f463252 100644
--- a/browser/src/VariantPage/VariantPage.tsx
+++ b/browser/src/VariantPage/VariantPage.tsx
@@ -126,6 +126,12 @@ export type StructuralVariant = {
ac_hom: number | null
}
+export type CopyNumberVariant = {
+ id: string
+ sc: number
+ sn: number
+}
+
export type Histogram = {
bin_edges: number[]
bin_freq: number[]
@@ -825,6 +831,7 @@ const VariantPage = ({ datasetId, variantId }: VariantPageProps) => {
includeGnomad3: usesGrch38(datasetId),
// Variant ID not valid for SVs
includeStructuralVariants: false,
+ includeCopyNumberVariants: false,
}}
selectedDataset={datasetId}
extra={
From 999689d85bd1a5f6d97ec842170fc36894b0edec Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Mon, 23 Oct 2023 13:30:11 -0400
Subject: [PATCH 43/62] add format prettier
---
browser/src/VariantList/sortUtilities.ts | 42 +++++++++++-------------
1 file changed, 20 insertions(+), 22 deletions(-)
diff --git a/browser/src/VariantList/sortUtilities.ts b/browser/src/VariantList/sortUtilities.ts
index 405657c38..4de3bad96 100644
--- a/browser/src/VariantList/sortUtilities.ts
+++ b/browser/src/VariantList/sortUtilities.ts
@@ -1,30 +1,28 @@
export const isEmpty = (val: any) => val === undefined || val === null || val === ''
-export const makeCompareFunction = (key: any, fn: any) => (
- v1: any,
- v2: any,
- order = 'ascending'
-) => {
- let key1
- let key2
+export const makeCompareFunction =
+ (key: any, fn: any) =>
+ (v1: any, v2: any, order = 'ascending') => {
+ let key1
+ let key2
- if (typeof key === 'function') {
- key1 = key(v1)
- key2 = key(v2)
- } else {
- key1 = v1[key]
- key2 = v2[key]
- }
+ if (typeof key === 'function') {
+ key1 = key(v1)
+ key2 = key(v2)
+ } else {
+ key1 = v1[key]
+ key2 = v2[key]
+ }
- if (isEmpty(key1)) {
- return 1
- }
- if (isEmpty(key2)) {
- return -1
- }
+ if (isEmpty(key1)) {
+ return 1
+ }
+ if (isEmpty(key2)) {
+ return -1
+ }
- return order === 'ascending' ? fn(key1, key2) : fn(key2, key1)
-}
+ return order === 'ascending' ? fn(key1, key2) : fn(key2, key1)
+ }
export const makeStringCompareFunction = (key: any) =>
makeCompareFunction(key, (v1: any, v2: any) => v1.localeCompare(v2))
From db258fe81dae330001d7ef70d7aee664224d3339 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Wed, 25 Oct 2023 10:28:09 -0400
Subject: [PATCH 44/62] draft track callable coverage
---
.../data_pipeline/data_types/cnv_coverage.py | 2 +-
.../pipelines/gnomad_v4_cnv_coverage.py | 26 ++++
.../src/graphql/resolvers/cnv-coverage.ts | 76 ++++++++++
graphql-api/src/graphql/types/gene.graphql | 1 +
.../src/queries/cnv-coverage-queries.ts | 132 ++++++++++++++++++
5 files changed, 236 insertions(+), 1 deletion(-)
create mode 100644 data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_coverage.py
create mode 100644 graphql-api/src/graphql/resolvers/cnv-coverage.ts
create mode 100644 graphql-api/src/queries/cnv-coverage-queries.ts
diff --git a/data-pipeline/src/data_pipeline/data_types/cnv_coverage.py b/data-pipeline/src/data_pipeline/data_types/cnv_coverage.py
index 6d9ea70b6..cafe0fb88 100644
--- a/data-pipeline/src/data_pipeline/data_types/cnv_coverage.py
+++ b/data-pipeline/src/data_pipeline/data_types/cnv_coverage.py
@@ -3,7 +3,7 @@
def prepare_cnv_track_callable_coverage(coverage_path):
- coverage = hl.import_table(coverage_path, force_bgz=True)
+ coverage = hl.import_table(coverage_path, force_bgz=True, types={'xpos': hl.tfloat64, 'percent_callable': hl.tfloat64})
coverage = coverage.select(
"xpos",
diff --git a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_coverage.py b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_coverage.py
new file mode 100644
index 000000000..eebeaa996
--- /dev/null
+++ b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_coverage.py
@@ -0,0 +1,26 @@
+from data_pipeline.pipeline import Pipeline, run_pipeline
+
+from data_pipeline.data_types.cnv_coverage import prepare_cnv_track_callable_coverage
+
+
+pipeline = Pipeline()
+
+pipeline.add_task(
+ "prepare_gnomad_v4_cnvs_track_percent_callable_coverage",
+ prepare_cnv_track_callable_coverage,
+ "/gnomad_v4/gnomad_v4_cnvs/coverage_tracks/track_percent_callable.ht",
+ {"coverage_path": "gs://gnomad-v4-cnvs/coverage_tracks/track_percent_callable.tsv.gz"},
+)
+
+###############################################
+# Outputs
+###############################################
+
+pipeline.set_outputs({"track_percent_callable_coverage": "prepare_gnomad_v4_cnvs_track_percent_callable_coverage"})
+
+###############################################
+# Run
+###############################################
+
+if __name__ == "__main__":
+ run_pipeline(pipeline)
diff --git a/graphql-api/src/graphql/resolvers/cnv-coverage.ts b/graphql-api/src/graphql/resolvers/cnv-coverage.ts
new file mode 100644
index 000000000..1f9b08bcc
--- /dev/null
+++ b/graphql-api/src/graphql/resolvers/cnv-coverage.ts
@@ -0,0 +1,76 @@
+import { UserVisibleError } from '../../errors'
+import {
+ fetchTrackCallableCoverageForRegion,
+ fetchTrackCallableCoverageForGene,
+} from '../../queries/cnv-coverage-queries'
+
+// const formatCoverageBins = (bins: any) =>
+// bins.map((bin: any) => ({
+// pos: bin.pos,
+// mean: bin.mean,
+// median: bin.median,
+// over_1: bin.over_x[0],
+// over_5: bin.over_x[1],
+// over_10: bin.over_x[2],
+// over_15: bin.over_x[3],
+// over_20: bin.over_x[4],
+// over_25: bin.over_x[5],
+// over_30: bin.over_x[6],
+// over_50: bin.over_x[7],
+// over_100: bin.over_x[8],
+// }))
+
+const formatTrackCallableCoverageBins = (bins: any) =>
+ bins.map((bin: any) => ({
+ pos: bin.pos,
+ percent_callable: bin[0],
+ }))
+
+const resolveTrackCallableCoverageInRegion = async (obj: any, _args: any, ctx: any) => {
+ const coverage = await fetchTrackCallableCoverageForRegion(ctx.esClient, obj.dataset, obj)
+ return formatTrackCallableCoverageBins(coverage)
+}
+
+const resolveTrackCallableCoverageInGene = async (obj: any, _args: any, ctx: any) => {
+ try {
+ console.log("fetchTrackCallableCoverageForGene In Resolver")
+ const coverage = await fetchTrackCallableCoverageForGene(ctx.esClient, obj.dataset, obj)
+ return formatTrackCallableCoverageBins(coverage)
+ } catch (e) {
+ console.error('Error resolver coverager:', e)
+ throw e
+ }
+}
+
+// const resolveGenomeCoverageInRegion = async (obj: any, _args: any, ctx: any) => {
+// const coverage = await fetchGenomeCoverageForRegion(ctx.esClient, obj.dataset, obj)
+// return formatCoverageBins(coverage)
+// }
+
+// const resolveCoverageInGene = async (obj: any, args: any, ctx: any) => {
+// const coverage = await fetchCoverageForGene(ctx.esClient, args.dataset, obj)
+
+// return {
+// exome: formatCoverageBins(coverage.exome),
+// genome: formatCoverageBins(coverage.genome),
+// }
+// }
+
+const resolvers = {
+ Region: {
+ coverage: (obj: any, args: any) => {
+ if (obj.stop - obj.start >= 2.5e6) {
+ throw new UserVisibleError('Coverage is not available for a region this large')
+ }
+ return { ...obj, dataset: args.dataset }
+ },
+ },
+ RegionCoverage: {
+ track_callable: resolveTrackCallableCoverageInRegion,
+ },
+ Gene: {
+ track_callable: resolveTrackCallableCoverageInGene,
+ },
+}
+
+export default resolvers
diff --git a/graphql-api/src/graphql/types/gene.graphql b/graphql-api/src/graphql/types/gene.graphql
index 5dbd91626..7b96e2beb 100644
--- a/graphql-api/src/graphql/types/gene.graphql
+++ b/graphql-api/src/graphql/types/gene.graphql
@@ -78,6 +78,7 @@ type Gene {
coverage(dataset: DatasetId): FeatureCoverage! @cost(value: 5)
mitochondrial_coverage(dataset: DatasetId!): [MitochondrialCoverageBin!] @cost(value: 5)
+ cnv_track_callable_coverage(dataset: CopyNumberVariantDatasetId!): [CNVTrackCallabeCoverageBin!] @cost(value: 5)
short_tandem_repeats(dataset: DatasetId!): [ShortTandemRepeat!]! @cost(value: 5)
heterozygous_variant_cooccurrence_counts: [HeterozygousVariantCooccurrenceCounts!]!
diff --git a/graphql-api/src/queries/cnv-coverage-queries.ts b/graphql-api/src/queries/cnv-coverage-queries.ts
new file mode 100644
index 000000000..480ce4fc1
--- /dev/null
+++ b/graphql-api/src/queries/cnv-coverage-queries.ts
@@ -0,0 +1,132 @@
+import { withCache } from '../cache'
+import { UserVisibleError } from '../errors'
+
+import { extendRegions, mergeOverlappingRegions, totalRegionSize } from './helpers/region-helpers'
+
+import { assertDatasetAndReferenceGenomeMatch } from './helpers/validation-helpers'
+
+const COVERAGE_INDICES = {
+ gnomad_cnv_r4: {
+ track_callable: 'gnomad_v4_cnv_track_callable_coverage',
+ },
+}
+
+// ================================================================================================
+// Base query
+// ================================================================================================
+
+const fetchTrackCallableCoverage = async (esClient: any, { index, regions }: any) => {
+ try {
+ console.log('fetchtrackcallablecoverage')
+ const response = await esClient.search({
+ index,
+ type: '_doc',
+ size: 0,
+ body: {
+ query: {
+ bool: {
+ filter: [
+ {
+ bool: {
+ should: regions.map(({ start, stop }: any) => ({
+ range: { xpos: { gte: start, lte: stop } },
+ })),
+ },
+ },
+ ],
+ },
+ },
+ aggregations: {
+ chart: {
+ terms: {
+ field: 'xpos',
+ interval: 10000,
+ },
+ aggregations: {
+ percent_callable: { avg: { field: 'percent_callable' } },
+ },
+ },
+ },
+ },
+ })
+
+ return response.body.aggregations.chart.buckets.map((bucket: any) => ({
+ pos: bucket.key,
+ percent_callable: [Math.ceil((bucket.percent_callable.value || 0) * 100) / 100],
+ }))
+ } catch (error) {
+ console.error('Error fetching coverage:', error)
+ throw error
+ }
+}
+
+// ================================================================================================
+// Region queries
+// ================================================================================================
+
+export const fetchTrackCallableCoverageForRegion = (esClient: any, datasetId: any, region: any) => {
+ assertDatasetAndReferenceGenomeMatch(datasetId, region.reference_genome)
+
+ if (!datasetId.startsWith('gnomad_cnv_')) {
+ throw new UserVisibleError('Track callabe coverage is not available for non-CNVs')
+ }
+
+ // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
+ const trackCallableCoverageIndex = COVERAGE_INDICES[datasetId]
+
+ const regionSize = region.stop - region.start + 150
+ const bucketSize = Math.max(Math.floor(regionSize / 500), 1)
+
+ return fetchTrackCallableCoverage(esClient, {
+ index: trackCallableCoverageIndex,
+ //contig: `chr${region.chrom}` ,
+ regions: [{ start: region.start - 75, stop: region.stop + 75 }],
+ bucketSize,
+ })
+}
+
+// ================================================================================================
+// Gene query
+// ================================================================================================
+
+export const _fetchTrackCallableCoverageForGene = async (
+ esClient: any,
+ datasetId: any,
+ gene: any
+) => {
+ assertDatasetAndReferenceGenomeMatch(datasetId, gene.reference_genome)
+ console.log('fetch gene')
+
+ if (!datasetId.startsWith('gnomad_cnv_')) {
+ throw new UserVisibleError('Track callabe coverage is not available for non-CNVs')
+ }
+
+ const paddedExons = extendRegions(75, gene.exons)
+ console.log(paddedExons, 'paddedexons')
+ const mergedExons = mergeOverlappingRegions(
+ paddedExons.sort((a: any, b: any) => a.start - b.start)
+ )
+ console.log(mergedExons, 'mergedExons')
+
+ const totalIntervalSize = totalRegionSize(mergedExons)
+ const bucketSize = Math.max(Math.floor(totalIntervalSize / 500), 1)
+
+ // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
+ const trackCallableCoverageIndex = COVERAGE_INDICES[datasetId]
+ console.log(trackCallableCoverageIndex, 'trackCallableCoverageIndex')
+
+ const trackCallableCoverage = await fetchTrackCallableCoverage(esClient, {
+ index: trackCallableCoverageIndex,
+ // contig: `chr${gene.chrom}`,
+ regions: mergedExons,
+ bucketSize,
+ })
+ console.log(trackCallableCoverage, 'trackCallableCoverage')
+
+ return {
+ track_callable: trackCallableCoverage,
+ }
+}
+export const fetchTrackCallableCoverageForGene =
+ _fetchTrackCallableCoverageForGene
+
From 9446351c02331a37616c1d219cc151e930c6316d Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Wed, 25 Oct 2023 10:38:41 -0400
Subject: [PATCH 45/62] add cnv coverage bin type
---
.../graphql/types/copy-number-variant.graphql | 21 ++++++++++++-------
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/graphql-api/src/graphql/types/copy-number-variant.graphql b/graphql-api/src/graphql/types/copy-number-variant.graphql
index 8dc40a3e6..e4541e334 100644
--- a/graphql-api/src/graphql/types/copy-number-variant.graphql
+++ b/graphql-api/src/graphql/types/copy-number-variant.graphql
@@ -16,10 +16,10 @@ type CopyNumberVariant {
length: Int
pos: Int!
type: String
- posmin: Int!
- posmax: Int!
- endmin: Int!
- endmax: Int!
+ posmin: Int
+ posmax: Int
+ endmin: Int
+ endmax: Int
variant_id: String!
}
@@ -38,9 +38,14 @@ type CopyNumberVariantDetails {
qual: Float
reference_genome: ReferenceGenomeId!
type: String
- posmin: Int!
- posmax: Int!
- endmin: Int!
- endmax: Int!
+ posmin: Int
+ posmax: Int
+ endmin: Int
+ endmax: Int
variant_id: String!
+}
+
+type CNVTrackCallabeCoverageBin {
+ pos: Float!
+ percent_callable: Float
}
\ No newline at end of file
From f2376ea2ed1cda57c362c78a9b0df106d9c43c21 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 26 Oct 2023 17:50:42 -0400
Subject: [PATCH 46/62] update metadata and sample counts
---
dataset-metadata/datasets/gnomad-cnv-v4/sampleCounts.js | 5 +++++
dataset-metadata/metadata.ts | 2 +-
dataset-metadata/sampleCounts.ts | 2 ++
3 files changed, 8 insertions(+), 1 deletion(-)
create mode 100644 dataset-metadata/datasets/gnomad-cnv-v4/sampleCounts.js
diff --git a/dataset-metadata/datasets/gnomad-cnv-v4/sampleCounts.js b/dataset-metadata/datasets/gnomad-cnv-v4/sampleCounts.js
new file mode 100644
index 000000000..ce2b38110
--- /dev/null
+++ b/dataset-metadata/datasets/gnomad-cnv-v4/sampleCounts.js
@@ -0,0 +1,5 @@
+const sampleCounts = {
+ total: 464566,
+ }
+ module.exports = sampleCounts
+
\ No newline at end of file
diff --git a/dataset-metadata/metadata.ts b/dataset-metadata/metadata.ts
index 017740b7e..cf42e29a8 100644
--- a/dataset-metadata/metadata.ts
+++ b/dataset-metadata/metadata.ts
@@ -18,7 +18,7 @@ export const datasetLabels = {
gnomad_sv_r2_1_non_neuro: 'gnomAD SVs v2.1 (non-neuro)',
gnomad_sv_r4: 'gnomAD SVs v4',
gnomad_r4: '', //* TODO
- gnomad_cnv_r4: "gnomAD CNVs v4.0.0",
+ gnomad_cnv_r4: "gnomAD exome CNVs v4.0",
} as const
export type DatasetId = keyof typeof datasetLabels
diff --git a/dataset-metadata/sampleCounts.ts b/dataset-metadata/sampleCounts.ts
index 494057632..a9e487757 100644
--- a/dataset-metadata/sampleCounts.ts
+++ b/dataset-metadata/sampleCounts.ts
@@ -11,6 +11,7 @@ const {
subsets: gnomadSvV2SubsetSampleCounts,
...gnomadSvV2SampleCounts
} = require('./datasets/gnomad-sv-v2/sampleCounts')
+const gnomadCnvV4SubsetSampleCounts = require('./datasets/gnomad-cnv-v4/sampleCounts')
const sampleCounts = [
{ exac: exacSampleCounts },
@@ -27,6 +28,7 @@ const sampleCounts = [
[`gnomad_sv_r2_1_${subset}`]: gnomadSvV2SubsetSampleCounts[subset],
})),
{ gnomad_sv_r4: { total: 63046 } },
+ { gnomad_cnv_r4: gnomadCnvV4SubsetSampleCounts },
].reduce(Object.assign, {})
export default sampleCounts
From 10927899bfd434ea667c166104b84f06b9acc4d3 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 26 Oct 2023 17:51:19 -0400
Subject: [PATCH 47/62] add final graphql edits
---
graphql-api/src/datasets.ts | 4 +++
graphql-api/src/queries/coverage-queries.ts | 30 +++++++++++++++++++
.../src/queries/helpers/validation-helpers.ts | 6 ++++
3 files changed, 40 insertions(+)
diff --git a/graphql-api/src/datasets.ts b/graphql-api/src/datasets.ts
index 2037b084e..be1934b9c 100644
--- a/graphql-api/src/datasets.ts
+++ b/graphql-api/src/datasets.ts
@@ -1,4 +1,6 @@
export const DATASET_LABELS = {
+ gnomad_r4: 'gnomAD v4',
+ gnomad_cnv_r4: 'gnomAD v4 cnv',
gnomad_r3: 'gnomAD v3',
gnomad_r3_controls_and_biobanks: 'gnomAD v3 (controls and biobanks)',
gnomad_r3_non_cancer: 'gnomAD v3 (non-cancer)',
@@ -14,6 +16,8 @@ export const DATASET_LABELS = {
}
export const DATASET_REFERENCE_GENOMES: Record = {
+ gnomad_r4: 'GRCh38',
+ gnomad_cnv_r4: 'GRCh38',
gnomad_r3: 'GRCh38',
gnomad_r3_controls_and_biobanks: 'GRCh38',
gnomad_r3_non_cancer: 'GRCh38',
diff --git a/graphql-api/src/queries/coverage-queries.ts b/graphql-api/src/queries/coverage-queries.ts
index 3a320f8e8..6cc431700 100644
--- a/graphql-api/src/queries/coverage-queries.ts
+++ b/graphql-api/src/queries/coverage-queries.ts
@@ -6,6 +6,14 @@ import { extendRegions, mergeOverlappingRegions, totalRegionSize } from './helpe
import { assertDatasetAndReferenceGenomeMatch } from './helpers/validation-helpers'
const COVERAGE_INDICES = {
+ gnomad_cnv_r4: {
+ exome: 'gnomad_v4_exome_coverage',
+ genome: null,
+ },
+ gnomad_r4: {
+ exome: 'gnomad_v4_exome_coverage',
+ genome: null,
+ },
gnomad_r3: {
exome: null,
genome: 'gnomad_v3_genome_coverage',
@@ -68,6 +76,28 @@ const fetchCoverage = async (esClient: any, { index, contig, regions, bucketSize
},
})
+ console.log(
+ 'RESPONSE Hits of query COVERAGE',
+ response.body.aggregations.coverage.buckets.map((bucket: any) => ({
+ pos: bucket.key,
+ mean: bucket.mean.value || 0,
+ median: bucket.median.value || 0,
+
+ over_x: [
+ // Round values
+ Math.ceil((bucket.over_1.value || 0) * 100) / 100,
+ Math.ceil((bucket.over_5.value || 0) * 100) / 100,
+ Math.ceil((bucket.over_10.value || 0) * 100) / 100,
+ Math.ceil((bucket.over_15.value || 0) * 100) / 100,
+ Math.ceil((bucket.over_20.value || 0) * 100) / 100,
+ Math.ceil((bucket.over_25.value || 0) * 100) / 100,
+ Math.ceil((bucket.over_30.value || 0) * 100) / 100,
+ Math.ceil((bucket.over_50.value || 0) * 100) / 100,
+ Math.ceil((bucket.over_100.value || 0) * 100) / 100,
+ ],
+ }))
+ )
+
return response.body.aggregations.coverage.buckets.map((bucket: any) => ({
pos: bucket.key,
mean: bucket.mean.value || 0,
diff --git a/graphql-api/src/queries/helpers/validation-helpers.ts b/graphql-api/src/queries/helpers/validation-helpers.ts
index 34e9bae6f..9a5ac7dbf 100644
--- a/graphql-api/src/queries/helpers/validation-helpers.ts
+++ b/graphql-api/src/queries/helpers/validation-helpers.ts
@@ -2,6 +2,12 @@ import { DATASET_LABELS, DATASET_REFERENCE_GENOMES } from '../../datasets'
import { UserVisibleError } from '../../errors'
export const assertDatasetAndReferenceGenomeMatch = (datasetId: any, referenceGenome: any) => {
+ if (!(datasetId in DATASET_LABELS)) {
+ throw new UserVisibleError(
+ `Dataset with id ${datasetId} does not exist`
+ )
+ }
+
if (DATASET_REFERENCE_GENOMES[datasetId] !== referenceGenome) {
throw new UserVisibleError(
// @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
From 9fb2d64ed578335b4fbea51dd2dc14b29ad3143a Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 26 Oct 2023 17:51:56 -0400
Subject: [PATCH 48/62] fix pipeline edits
---
.../datasets/gnomad_v4/gnomad_v4_cnvs.py | 2 +-
.../pipelines/export_to_elasticsearch.py | 46 +++++++++++++++++++
.../data_pipeline/pipelines/gnomad_v4_cnvs.py | 2 +-
3 files changed, 48 insertions(+), 2 deletions(-)
diff --git a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
index eed025f38..869b12224 100644
--- a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
+++ b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnvs.py
@@ -23,7 +23,7 @@ def prepare_gnomad_v4_cnvs(vcf_path):
ds = hl.import_vcf(vcf_path, force_bgz=True, min_partitions=32, reference_genome="GRCh38").rows()
ds = ds.annotate(
- variant_id=ds.rsid.replace("^variantbs80_", ""),
+ variant_id=ds.rsid.replace("^GD_", "").replace("^variant_is_80_", ""),
reference_genome="GRCh38",
# Start
chrom=ds.locus.contig.replace("chr", ""),
diff --git a/data-pipeline/src/data_pipeline/pipelines/export_to_elasticsearch.py b/data-pipeline/src/data_pipeline/pipelines/export_to_elasticsearch.py
index a1c4b00d0..be674106f 100644
--- a/data-pipeline/src/data_pipeline/pipelines/export_to_elasticsearch.py
+++ b/data-pipeline/src/data_pipeline/pipelines/export_to_elasticsearch.py
@@ -39,6 +39,13 @@
from data_pipeline.pipelines.gnomad_v4_cnvs import pipeline as gnomad_v4_cnvs_pipeline
+from data_pipeline.pipelines.gnomad_v4_cnv_track_percent_callable import pipeline as gnomad_v4_cnv_coverage_pipeline
+
+from data_pipeline.pipelines.gnomad_v4_cnv_del_burden import pipeline as gnomad_v4_cnv_del_burden
+
+from data_pipeline.pipelines.gnomad_v4_cnv_dup_burden import pipeline as gnomad_v4_cnv_dup_burden
+
+
logger = logging.getLogger("gnomad_data_pipeline")
@@ -119,6 +126,45 @@ def add_liftover_document_id(ds):
"block_size": 1_000,
},
},
+ "gnomad_v4_exome_coverage": {
+ "get_table": lambda: hl.read_table(
+ "gs://gnomad-matt-data-pipeline/gnomad_v4_coverage_test_2023-10-12-1142/gnomad_v4_exome_coverage.ht"
+ ),
+ "args": {"index": "gnomad_v4_exome_coverage", "id_field": "xpos", "num_shards": 2, "block_size": 10_000},
+ },
+ "gnomad_v4_cnv_track_callable": {
+ "get_table": lambda: subset_table(
+ hl.read_table(gnomad_v4_cnv_coverage_pipeline.get_output("track_percent_callable").get_output_path())
+ ),
+ "args": {
+ "index": "gnomad_v4_cnv_track_callable",
+ "id_field": "xpos",
+ "num_shards": 2,
+ "block_size": 10_000,
+ },
+ },
+ "gnomad_v4_cnv_del_burden": {
+ "get_table": lambda: subset_table(
+ hl.read_table(gnomad_v4_cnv_del_burden.get_output("del_burden").get_output_path())
+ ),
+ "args": {
+ "index": "gnomad_v4_cnv_del_burden",
+ "id_field": "xpos",
+ "num_shards": 2,
+ "block_size": 10_000,
+ },
+ },
+ "gnomad_v4_cnv_dup_burden": {
+ "get_table": lambda: subset_table(
+ hl.read_table(gnomad_v4_cnv_dup_burden.get_output("dup_burden").get_output_path())
+ ),
+ "args": {
+ "index": "gnomad_v4_cnv_dup_burden",
+ "id_field": "xpos",
+ "num_shards": 2,
+ "block_size": 10_000,
+ },
+ },
##############################################################################################################
# gnomAD v3
##############################################################################################################
diff --git a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py
index 42e21586d..0c4643b63 100644
--- a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py
+++ b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py
@@ -14,7 +14,7 @@
prepare_gnomad_v4_cnvs,
"/gnomad_v4/gnomad_v4_cnvs/cnvs.ht",
{
- "vcf_path": "gs://gnomad-v4-cnvs/2023-09-07-jfu-test4/GNOMAD_V4.4.3_browser_prototype_1.1.vcf.gz",
+ "vcf_path": "gs://gnomad-v4-cnvs/2023-10-24-jfu/GNOMAD_V4_release_1.0.vcf.gz",
},
)
From fa089585c74b9370d006caf5881fac587a494ec2 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 26 Oct 2023 17:52:56 -0400
Subject: [PATCH 49/62] Final Gene and Region Page edits for CNV
---
.../CopyNumberVariantFilterControls.tsx | 102 ++++++
.../CopyNumberVariantPlot.tsx | 99 ++++++
.../CopyNumberVariantPropType.ts | 61 ++++
.../CopyNumberVariantTracks.tsx | 128 ++++++++
.../CopyNumberVariants.tsx | 309 ++++++++++++++++++
.../CopyNumberVariantsTable.tsx | 51 +++
.../ExportCopyNumberVariantsButton.tsx | 105 ++++++
.../copyNumberVariantTableColumns.tsx | 142 ++++++++
.../filterCopyNumberVariants.ts | 40 +++
.../CNVPopulationsTable.tsx | 6 +-
.../CNVReferenceList.tsx | 2 +-
.../CopyNumberVariantAttributeList.tsx | 5 +-
.../CopyNumberVariantPage.tsx | 19 --
.../CopyNumberVariantPopulationsTable.tsx | 2 +-
browser/src/DatasetSelector.tsx | 71 ++--
.../src/GenePage/CopyNumberVariantsInGene.tsx | 91 ++++++
browser/src/GenePage/VariantsInGene.tsx | 64 ++--
.../RegionPage/CopyNumberVariantsInRegion.tsx | 96 ++++++
browser/src/Searchbox.tsx | 2 +-
19 files changed, 1306 insertions(+), 89 deletions(-)
create mode 100644 browser/src/CopyNumberVariantList/CopyNumberVariantFilterControls.tsx
create mode 100644 browser/src/CopyNumberVariantList/CopyNumberVariantPlot.tsx
create mode 100644 browser/src/CopyNumberVariantList/CopyNumberVariantPropType.ts
create mode 100644 browser/src/CopyNumberVariantList/CopyNumberVariantTracks.tsx
create mode 100644 browser/src/CopyNumberVariantList/CopyNumberVariants.tsx
create mode 100644 browser/src/CopyNumberVariantList/CopyNumberVariantsTable.tsx
create mode 100644 browser/src/CopyNumberVariantList/ExportCopyNumberVariantsButton.tsx
create mode 100644 browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx
create mode 100644 browser/src/CopyNumberVariantList/filterCopyNumberVariants.ts
create mode 100644 browser/src/GenePage/CopyNumberVariantsInGene.tsx
create mode 100644 browser/src/RegionPage/CopyNumberVariantsInRegion.tsx
diff --git a/browser/src/CopyNumberVariantList/CopyNumberVariantFilterControls.tsx b/browser/src/CopyNumberVariantList/CopyNumberVariantFilterControls.tsx
new file mode 100644
index 000000000..5d362754f
--- /dev/null
+++ b/browser/src/CopyNumberVariantList/CopyNumberVariantFilterControls.tsx
@@ -0,0 +1,102 @@
+import React from 'react'
+import styled from 'styled-components'
+
+import { Checkbox, SearchInput } from '@gnomad/ui'
+
+import CategoryFilterControl from '../CategoryFilterControl'
+
+import { cnvTypes, cnvTypeColors } from './copyNumberVariantTypes'
+
+const CategoryFilterLabel = styled.span`
+ margin-bottom: 0.5em;
+ font-weight: bold;
+`
+
+const CategoryFiltersWrapper = styled.div`
+ display: flex;
+ flex-direction: column;
+
+ @media (max-width: 700px) {
+ align-items: center;
+ }
+`
+
+const CheckboxWrapper = styled.div`
+ /* stylelint-ignore-line block-no-empty */
+`
+
+const SearchWrapper = styled.div`
+ /* stylelint-ignore-line block-no-empty */
+`
+
+const SettingsWrapper = styled.div`
+ display: flex;
+ flex-flow: row wrap;
+ justify-content: space-between;
+ align-items: center;
+
+ @media (max-width: 700px) {
+ flex-direction: column;
+ align-items: center;
+ }
+`
+
+type Props = {
+ onChange: (...args: any[]) => any
+ colorKey: 'type'
+ value: {
+ includeTypes: {
+ [key: string]: boolean
+ }
+ includeFilteredVariants: boolean
+ searchText: string
+ }
+}
+
+const CopyNumberVariantFilterControls = ({ onChange, colorKey, value }: Props) => (
+
+
+
+ Classes
+
+ ({
+ id: type,
+ label: type,
+ // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
+ color: colorKey === 'type' ? cnvTypeColors[type] : 'gray',
+ }))}
+ categorySelections={value.includeTypes}
+ id="sv-type-category-filter"
+ onChange={(includeTypes: any) => {
+ onChange({ ...value, includeTypes })
+ }}
+ />
+
+
+
+
+ {
+ onChange({ ...value, includeFilteredVariants })
+ }}
+ />
+
+
+
+
+ {
+ onChange({ ...value, searchText })
+ }}
+ value={value.searchText}
+ />
+
+
+)
+
+export default CopyNumberVariantFilterControls
diff --git a/browser/src/CopyNumberVariantList/CopyNumberVariantPlot.tsx b/browser/src/CopyNumberVariantList/CopyNumberVariantPlot.tsx
new file mode 100644
index 000000000..a20dce88b
--- /dev/null
+++ b/browser/src/CopyNumberVariantList/CopyNumberVariantPlot.tsx
@@ -0,0 +1,99 @@
+import React from 'react'
+
+type Props = {
+ color: string
+ isHighlighted: boolean
+ isPositionDefined: (...args: any[]) => any
+ scalePosition: (...args: any[]) => any
+ variant: {
+ pos: number
+ end: number
+ type: string
+ }
+ width: number
+}
+
+const CopyNumberVariantPlot = ({
+ color,
+ isHighlighted,
+ isPositionDefined,
+ scalePosition,
+ variant,
+ width,
+}: Props) => {
+ const trackHeight = 14
+ const barHeight = 10
+ const barY = Math.floor((trackHeight - barHeight) / 2)
+ const arrowWidth = 3
+ const halfBarHeight = barHeight / 2
+
+ // For SV classes that are not represented by a single point, exclude the padding base from the track.
+ // See https://github.com/broadinstitute/gnomad-browser/issues/687
+ let startX = scalePosition(variant.pos + 1)
+ let stopX = scalePosition(variant.end)
+
+ const startIsDefined = isPositionDefined(variant.pos + 1)
+ const stopIsDefined = isPositionDefined(variant.end)
+
+ // Set a minimum width for bars.
+ if (startIsDefined && stopIsDefined && stopX - startX < 3) {
+ const diff = 3 - (stopX - startX)
+ startX -= diff / 2
+ stopX += diff / 2
+ }
+
+ // If one endpoint is undefined, which should only happen if the SV extends outside the visible region,
+ // offset the start/stop coordinate to make room for the arrow marker at the end of the bar.
+
+ if (!startIsDefined) {
+ startX += arrowWidth
+ }
+ if (!stopIsDefined) {
+ stopX -= arrowWidth
+ }
+
+
+ return (
+
+ {isHighlighted && (
+
+ )}
+
+ (
+
+ {!startIsDefined && (
+
+ )}
+
+ {!stopIsDefined && (
+
+ )}
+
+ )
+
+ )
+}
+
+export default CopyNumberVariantPlot
diff --git a/browser/src/CopyNumberVariantList/CopyNumberVariantPropType.ts b/browser/src/CopyNumberVariantList/CopyNumberVariantPropType.ts
new file mode 100644
index 000000000..b585c4968
--- /dev/null
+++ b/browser/src/CopyNumberVariantList/CopyNumberVariantPropType.ts
@@ -0,0 +1,61 @@
+import PropTypes from 'prop-types'
+
+// TODO: MATCH EVERYTHING WITH THE API TYPE
+type CopyNumberVariantPropType = {
+ alts?: string[] | null
+ sc: number
+ sn: number
+ sf: number
+ chrom: string
+ end: number
+ filters?: string[]
+ genes?: string[]
+ length: number
+ populations?: {
+ id: string
+ sc: number
+ sn: number
+ sf: number
+ }[]
+ pos: number
+ qual?: number
+ type: string
+ posmin?: number
+ posmax?: number
+ endmin?: number
+ endmax?: number
+ variant_id: string
+}
+
+const PopulationPropType = PropTypes.shape({
+ id: PropTypes.string.isRequired,
+ sc: PropTypes.number.isRequired,
+ sn: PropTypes.number.isRequired,
+ sf: PropTypes.number.isRequired,
+ })
+
+// @ts-expect-error TS(2322) FIXME: Type 'Requireable = PropTypes.shape(
+ {
+ alts: PropTypes.arrayOf(PropTypes.string),
+ sc: PropTypes.number.isRequired,
+ sn: PropTypes.number.isRequired,
+ sf: PropTypes.number,
+ chrom: PropTypes.string.isRequired,
+ end: PropTypes.number.isRequired,
+ filters: PropTypes.arrayOf(PropTypes.string.isRequired),
+ genes: PropTypes.arrayOf(PropTypes.string),
+ length: PropTypes.number.isRequired,
+ populations: PropTypes.arrayOf(PopulationPropType),
+ pos: PropTypes.number.isRequired,
+ qual: PropTypes.number,
+ type: PropTypes.string.isRequired,
+ posmin: PropTypes.number.isRequired,
+ posmax: PropTypes.number.isRequired,
+ endmin: PropTypes.number.isRequired,
+ endmax: PropTypes.number.isRequired,
+ variant_id: PropTypes.string.isRequired,
+ }
+)
+
+export default CopyNumberVariantPropType
diff --git a/browser/src/CopyNumberVariantList/CopyNumberVariantTracks.tsx b/browser/src/CopyNumberVariantList/CopyNumberVariantTracks.tsx
new file mode 100644
index 000000000..ba82ea98d
--- /dev/null
+++ b/browser/src/CopyNumberVariantList/CopyNumberVariantTracks.tsx
@@ -0,0 +1,128 @@
+import React from 'react'
+import { FixedSizeList } from 'react-window'
+
+// @ts-expect-error TS(7016) FIXME: Could not find a declaration file for module '@gno... Remove this comment to see the full error message
+import { Track } from '@gnomad/region-viewer'
+
+import Link from '../Link'
+import CopyNumberVariantPlot from './CopyNumberVariantPlot'
+import CopyNumberVariantPropType from './CopyNumberVariantPropType'
+
+type RowProps = {
+ data: {
+ highlightedVariant?: string
+ isPositionDefined: (...args: any[]) => any
+ onHover: (...args: any[]) => any
+ scalePosition: (...args: any[]) => any
+ trackColor: (...args: any[]) => any
+ variants: CopyNumberVariantPropType[]
+ width: number
+ }
+ index: number
+ style: {
+ [key: string]: string | number
+ }
+}
+
+const Row = ({
+ data: {
+ highlightedVariant,
+ isPositionDefined,
+ onHover,
+ scalePosition,
+ trackColor,
+ variants,
+ width,
+ },
+ index,
+ style,
+}: RowProps) => {
+ const variant = variants[index]
+ return (
+
+ {
+ onHover(variant.variant_id)
+ }}
+ >
+
+
+
+ )
+}
+
+type OwnCopyNumberVariantTracksProps = {
+ highlightedVariant?: string
+ numTracksRendered: number
+ onHover: (...args: any[]) => any
+ onScroll: (...args: any[]) => any
+ trackColor: (...args: any[]) => any
+ trackHeight: number
+ variants: CopyNumberVariantPropType[]
+}
+
+// @ts-expect-error TS(2456) FIXME: Type alias 'OwnCopyNumberVariantTracksProps' circular... Remove this comment to see the full error message
+type CopyNumberVariantTracksProps = OwnCopyNumberVariantTracksProps &
+ typeof CopyNumberVariantTracks.defaultProps
+
+// @ts-expect-error TS(7022) FIXME: 'CopyNumberVariantTracks' implicitly has type 'any... Remove this comment to see the full error message
+const CopyNumberVariantTracks = ({
+ forwardedRef, // eslint-disable-line react/prop-types
+ highlightedVariant,
+ numTracksRendered,
+ onHover,
+ onScroll,
+ trackColor,
+ trackHeight,
+ variants,
+}: CopyNumberVariantTracksProps) => (
+ {
+ onHover(null)
+ }}
+ >
+
+ {({ isPositionDefined, scalePosition, width }: any) => (
+ variants[rowIndex].variant_id}
+ itemSize={trackHeight}
+ onScroll={onScroll}
+ overscanCount={10}
+ width="100%"
+ >
+ {/* @ts-expect-error TS(2769) FIXME: No overload matches this call. */}
+ {Row}
+
+ )}
+
+
+)
+
+CopyNumberVariantTracks.defaultProps = {
+ highlightedVariant: null,
+}
+
+export default React.forwardRef((props, ref) => (
+
+))
diff --git a/browser/src/CopyNumberVariantList/CopyNumberVariants.tsx b/browser/src/CopyNumberVariantList/CopyNumberVariants.tsx
new file mode 100644
index 000000000..f9b5aea61
--- /dev/null
+++ b/browser/src/CopyNumberVariantList/CopyNumberVariants.tsx
@@ -0,0 +1,309 @@
+import React, { useCallback, useMemo, useRef, useState } from 'react'
+import styled from 'styled-components'
+
+// @ts-expect-error TS(7016) FIXME: Could not find a declaration file for module '@gno... Remove this comment to see the full error message
+import { PositionAxisTrack } from '@gnomad/region-viewer'
+import { Button, SegmentedControl } from '@gnomad/ui'
+
+import { showNotification } from '../Notifications'
+import StatusMessage from '../StatusMessage'
+import { TrackPageSection } from '../TrackPage'
+import userPreferences from '../userPreferences'
+import VariantTableConfigurationModal from '../VariantList/VariantTableConfigurationModal'
+
+import ExportCopyNumberVariantsButton from './ExportCopyNumberVariantsButton'
+import filterCopyNumberVariants from './filterCopyNumberVariants'
+import CopyNumberVariantFilterControls from './CopyNumberVariantFilterControls'
+
+import { cnvTypeColors } from './copyNumberVariantTypes'
+import CopyNumberVariantPropType from './CopyNumberVariantPropType'
+import copyNumberVariantTableColumns, {
+ getColumnsForContext,
+} from './copyNumberVariantTableColumns'
+import CopyNumberVariantsTable from './CopyNumberVariantsTable'
+import CopyNumberVariantTracks from './CopyNumberVariantTracks'
+
+const NUM_ROWS_RENDERED = 20
+const TRACK_HEIGHT = 14
+const TABLE_ROW_HEIGHT = 25
+
+const Wrapper = styled.div`
+ margin-bottom: 1em;
+`
+
+const ControlWrapper = styled(Wrapper)`
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+
+ @media (min-width: 900px) {
+ margin-right: 160px;
+ }
+`
+
+const HUMAN_CHROMOSOMES = [...Array.from(new Array(22), (x: any, i: any) => `${i + 1}`), 'X', 'Y']
+
+
+const DEFAULT_COLUMNS = [
+ 'source',
+ 'class',
+ 'pos',
+ 'length',
+ 'sc',
+ 'sn',
+ 'sf',
+]
+
+const sortVariants = (variants: any, { sortKey, sortOrder }: any) => {
+ const sortColumn = copyNumberVariantTableColumns.find((column: any) => column.key === sortKey)
+ // @ts-expect-error TS(2532) FIXME: Object is possibly 'undefined'.
+ return [...variants].sort((v1, v2) => sortColumn.compareFunction(v1, v2, sortOrder))
+}
+
+export interface Context {
+ chrom: string
+}
+
+type CopyNumberVariantsProps = {
+ context: Context
+ exportFileName: string
+ variants: CopyNumberVariantPropType[]
+}
+
+const CopyNumberVariants = ({ context, exportFileName, variants }: CopyNumberVariantsProps) => {
+ const table = useRef(null)
+ const tracks = useRef(null)
+
+ const [selectedColumns, setSelectedColumns] = useState(() => {
+ try {
+ return userPreferences.getPreference('copyNumberVariantTableColumns') || DEFAULT_COLUMNS
+ } catch (error) {
+ return DEFAULT_COLUMNS
+ }
+ })
+
+ const renderedTableColumns = useMemo(() => {
+ const columnsForContext = getColumnsForContext(context)
+ return (
+ ['variant_id', ...selectedColumns]
+ // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
+ .map((columnKey) => columnsForContext[columnKey])
+ .filter(Boolean)
+ .map((column) => ({
+ ...column,
+ isSortable: Boolean(column.compareFunction),
+ tooltip: column.description,
+ }))
+ )
+ }, [context, selectedColumns])
+
+ const [filter, setFilter] = useState({
+ includeTypes: {
+ DEL: true,
+ DUP: true,
+ },
+ includeFilteredVariants: false,
+ searchText: '',
+ })
+
+ const [sortState, setSortState] = useState({
+ sortKey: 'variant_id',
+ sortOrder: 'ascending',
+ })
+ const { sortKey, sortOrder } = sortState
+
+ // @ts-expect-error TS(7006) FIXME: Parameter 'newSortKey' implicitly has an 'any' typ... Remove this comment to see the full error message
+ const setSortKey = useCallback((newSortKey) => {
+ setSortState((prevSortState) => {
+ if (newSortKey === prevSortState.sortKey) {
+ return {
+ sortKey: newSortKey,
+ sortOrder: prevSortState.sortOrder === 'ascending' ? 'descending' : 'ascending',
+ }
+ }
+
+ return {
+ sortKey: newSortKey,
+ sortOrder: 'descending',
+ }
+ })
+ }, [])
+
+ const filteredVariants = useMemo(
+ () => filterCopyNumberVariants(variants, filter, renderedTableColumns),
+ [variants, filter, renderedTableColumns]
+ )
+
+ const renderedVariants = useMemo(
+ () => sortVariants(filteredVariants, sortState),
+ [filteredVariants, sortState]
+ )
+
+ const [showTableConfigurationModal, setShowTableConfigurationModal] = useState(false)
+ const [variantHoveredInTable, setVariantHoveredInTable] = useState(null)
+ const [variantHoveredInTrack, setVariantHoveredInTrack] = useState(null)
+
+ const shouldHighlightTableRow = useCallback(
+ // @ts-expect-error TS(7006) FIXME: Parameter 'variant' implicitly has an 'any' type.
+ (variant) => {
+ return variant.variant_id === variantHoveredInTrack
+ },
+ [variantHoveredInTrack]
+ )
+
+ // @ts-expect-error TS(7031) FIXME: Binding element 'scrollOffset' implicitly has an '... Remove this comment to see the full error message
+ const onScrollTable = useCallback(({ scrollOffset, scrollUpdateWasRequested }) => {
+ if (tracks.current && !scrollUpdateWasRequested) {
+ ;(tracks.current as any).scrollTo(
+ Math.round(scrollOffset * (TRACK_HEIGHT / TABLE_ROW_HEIGHT))
+ )
+ }
+ }, [])
+
+ // @ts-expect-error TS(7031) FIXME: Binding element 'scrollOffset' implicitly has an '... Remove this comment to see the full error message
+ const onScrollTracks = useCallback(({ scrollOffset, scrollUpdateWasRequested }) => {
+ if (table.current && !scrollUpdateWasRequested) {
+ ;(table.current as any).scrollTo(Math.round(scrollOffset * (TABLE_ROW_HEIGHT / TRACK_HEIGHT)))
+ }
+ }, [])
+
+ const [colorKey, setColorKey] = useState('type')
+ const trackColor = useCallback(
+ // @ts-expect-error TS(7006) FIXME: Parameter 'variant' implicitly has an 'any' type.
+ (variant) => {
+ if (colorKey === 'type') {
+ // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
+ return cnvTypeColors[variant.type]
+ }
+ },
+ [colorKey]
+ )
+
+ if (variants.length === 0) {
+ return No variants found
+ }
+
+ const numRowsRendered = Math.min(renderedVariants.length, NUM_ROWS_RENDERED)
+
+ // pos/end and pos2/end2 coordinates are based on the chromosome which they are located on.
+ // If that chromosome is not the same as the one that the region viewer's coordinates
+ // are based on, then offset the positions so that they are based on the
+ // region viewer's coordinate system.
+ const currentChromIndex = HUMAN_CHROMOSOMES.indexOf(context.chrom) // eslint-disable-line react/destructuring-assignment
+ const positionCorrectedVariants = renderedVariants.map((variant) => {
+ const copy = { ...variant }
+
+ // This can only happen when chrom2/pos2/end2 is non-null
+ if (variant.chrom2) {
+ const chromIndex = HUMAN_CHROMOSOMES.indexOf(variant.chrom)
+ copy.pos += (chromIndex - currentChromIndex) * 1e9
+ copy.end += (chromIndex - currentChromIndex) * 1e9
+ }
+
+ return copy
+ })
+
+
+ return (
+
+
+ ; highlightedVa... Remove this comment to see the full error message
+ highlightedVariant={variantHoveredInTable}
+ numTracksRendered={numRowsRendered}
+ onHover={setVariantHoveredInTrack}
+ onScroll={onScrollTracks}
+ trackColor={trackColor}
+ trackHeight={TRACK_HEIGHT}
+ variants={positionCorrectedVariants}
+ />
+
+
+
+
+
+
+
+
+
+
+ {
+ setShowTableConfigurationModal(true)
+ }}
+ style={{ marginLeft: '1ch' }}
+ >
+ Configure table
+
+
+
+
+ {renderedVariants.length ? (
+ ; cellData: { c... Remove this comment to see the full error message
+ cellData={{
+ colorKey,
+ highlightWords: filter.searchText.split(',').map((s) => s.trim()).filter((term) => term !== ''),
+ }}
+ columns={renderedTableColumns}
+ numRowsRendered={numRowsRendered}
+ onHoverVariant={setVariantHoveredInTable}
+ onRequestSort={setSortKey}
+ onScroll={onScrollTable}
+ rowHeight={TABLE_ROW_HEIGHT}
+ shouldHighlightRow={shouldHighlightTableRow}
+ sortKey={sortKey}
+ sortOrder={sortOrder}
+ variants={renderedVariants}
+ />
+ ) : (
+ No matching variants
+ )}
+
+
+
+ {showTableConfigurationModal && (
+
{
+ setShowTableConfigurationModal(false)
+ }}
+ onSave={(newSelectedColumns) => {
+ setSelectedColumns(newSelectedColumns)
+ setShowTableConfigurationModal(false)
+
+ userPreferences
+ .savePreference('copyNumberVariantTableColumns', newSelectedColumns)
+ .then(null, (error: any) => {
+ showNotification({
+ title: 'Error',
+ message: error.message,
+ status: 'error',
+ })
+ })
+ }}
+ />
+ )}
+
+ )
+}
+
+export default CopyNumberVariants
diff --git a/browser/src/CopyNumberVariantList/CopyNumberVariantsTable.tsx b/browser/src/CopyNumberVariantList/CopyNumberVariantsTable.tsx
new file mode 100644
index 000000000..8d0cda85d
--- /dev/null
+++ b/browser/src/CopyNumberVariantList/CopyNumberVariantsTable.tsx
@@ -0,0 +1,51 @@
+import React, { forwardRef, memo } from 'react'
+
+import { Grid } from '@gnomad/ui'
+
+import { CopyNumberVariant } from '../CopyNumberVariantPage/CopyNumberVariantPage'
+
+type Props = {
+ columns: any[]
+ forwardedRef:
+ | ((...args: any[]) => any)
+ | {
+ current?: any
+ }
+ numRowsRendered: number
+ onHoverVariant: (...args: any[]) => any
+ rowHeight: number
+ variants: CopyNumberVariant[]
+}
+
+const CopyNumberVariantsTable = ({
+ columns,
+ forwardedRef,
+ numRowsRendered,
+ onHoverVariant,
+ rowHeight,
+ variants,
+ ...rest
+}: Props) => {
+ return (
+ {
+ onHoverVariant(rowIndex === null ? null : variants[rowIndex].variant_id)
+ }}
+ rowHeight={rowHeight}
+ rowKey={(variant) => variant.variant_id}
+ />
+ )
+}
+
+const MemoizedCopyNumberVariantsTable = memo(CopyNumberVariantsTable)
+
+export default forwardRef((props, ref) => (
+ // @ts-expect-error TS(2739) FIXME: Type '{ forwardedRef: ForwardedRef; }' is... Remove this comment to see the full error message
+
+))
diff --git a/browser/src/CopyNumberVariantList/ExportCopyNumberVariantsButton.tsx b/browser/src/CopyNumberVariantList/ExportCopyNumberVariantsButton.tsx
new file mode 100644
index 000000000..db8d49a3d
--- /dev/null
+++ b/browser/src/CopyNumberVariantList/ExportCopyNumberVariantsButton.tsx
@@ -0,0 +1,105 @@
+import React from 'react'
+
+import { Button } from '@gnomad/ui'
+
+import { cnvTypeLabels } from './copyNumberVariantTypes'
+import { CopyNumberVariant } from '../CopyNumberVariantPage/CopyNumberVariantPage'
+
+const columns = [
+ {
+ label: 'Variant ID',
+ getValue: (variant: CopyNumberVariant) => variant.variant_id,
+ },
+ {
+ label: 'Class',
+ // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
+ getValue: (variant: CopyNumberVariant) => cnvTypeLabels[variant.type] || variant.type,
+ },
+ {
+ label: 'Position',
+ getValue: (variant: CopyNumberVariant) => {
+ return `${variant.pos}-${variant.end}`
+ },
+ },
+ {
+ label: 'Size',
+ getValue: (variant: CopyNumberVariant) => {
+ return `${variant.length}`
+ },
+ },
+ {
+ label: 'Site Count',
+ getValue: (variant: CopyNumberVariant) => JSON.stringify(variant.sc),
+ },
+ {
+ label: 'Number at Site',
+ getValue: (variant: CopyNumberVariant) => JSON.stringify(variant.sn),
+ },
+ {
+ label: 'Site Frequency',
+ getValue: (variant: CopyNumberVariant) => JSON.stringify(variant.sf),
+ },
+]
+
+const exportVariantsToCsv = (variants: CopyNumberVariant[], baseFileName: any) => {
+ const headerRow = columns.map((c) => c.label)
+
+ const csv = `${headerRow}\r\n${variants
+ .map((variant: CopyNumberVariant) =>
+ columns
+ .map((c) => c.getValue(variant))
+ .map((val) =>
+ val.includes(',') || val.includes('"') || val.includes("'")
+ ? `"${val.replace('"', '""')}"`
+ : val
+ )
+ .join(',')
+ )
+ .join('\r\n')}\r\n`
+
+ const date = new Date()
+ const timestamp = `${date.getFullYear()}_${(date.getMonth() + 1)
+ .toString()
+ .padStart(2, '0')}_${date.getDate().toString().padStart(2, '0')}_${date
+ .getHours()
+ .toString()
+ .padStart(2, '0')}_${date.getMinutes().toString().padStart(2, '0')}_${date
+ .getSeconds()
+ .toString()
+ .padStart(2, '0')}`
+
+ const blob = new Blob([csv], { type: 'text/csv' })
+ const url = URL.createObjectURL(blob)
+ const link = document.createElement('a')
+ link.setAttribute('href', url)
+ link.setAttribute('download', `${baseFileName.replace(/\s+/g, '_')}_${timestamp}.csv`)
+ // @ts-expect-error TS(2551) FIXME: Property 'onClick' does not exist on type 'HTMLAnc... Remove this comment to see the full error message
+ link.onClick = () => {
+ URL.revokeObjectURL(url)
+ link.remove()
+ }
+ document.body.appendChild(link)
+ link.click()
+}
+
+type ExportCopyNumberVariantsButtonProps = {
+ exportFileName: string
+ variants: any[]
+}
+
+const ExportCopyNumberVariantsButton = ({
+ exportFileName,
+ variants,
+ ...rest
+}: ExportCopyNumberVariantsButtonProps) => (
+ {
+ exportVariantsToCsv(variants, exportFileName)
+ }}
+ >
+ Export variants to CSV
+
+)
+
+export default ExportCopyNumberVariantsButton
diff --git a/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx b/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx
new file mode 100644
index 000000000..447523e07
--- /dev/null
+++ b/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx
@@ -0,0 +1,142 @@
+import React from 'react'
+import Highlighter from 'react-highlight-words'
+
+import Link from '../Link'
+import { Cell, NumericCell, renderAlleleCountCell, renderAlleleFrequencyCell } from '../tableCells'
+import SampleSourceIcon from '../VariantList/SampleSourceIcon'
+import { makeNumericCompareFunction, makeStringCompareFunction } from '../VariantList/sortUtilities'
+import VariantCategoryMarker from '../VariantList/VariantCategoryMarker'
+
+import { cnvTypeColors, cnvTypeLabels } from './copyNumberVariantTypes'
+import { Context } from './CopyNumberVariants'
+import { CopyNumberVariant } from '../CopyNumberVariantPage/CopyNumberVariantPage'
+
+const renderType = (variant: CopyNumberVariant, _ :any, { colorKey, highlightWords }: any) => {
+ return (
+
+ {colorKey === 'type' && (
+ // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
+
+ )}
+
+ |
+ )
+}
+
+const copyNumberVariantTableColumns = [
+ {
+ key: 'sc',
+ heading: 'Site Count',
+ minWidth: 110,
+ compareFunction: makeNumericCompareFunction('sc'),
+ render: renderAlleleCountCell,
+ },
+
+ {
+ key: 'sn',
+ heading: 'Number at Site',
+ minWidth: 110,
+ compareFunction: makeNumericCompareFunction('sn'),
+ render: renderAlleleCountCell,
+ },
+
+ {
+ key: 'sf',
+ heading: 'Site Frequency',
+ minWidth: 110,
+ compareFunction: makeNumericCompareFunction('sf'),
+ render: renderAlleleFrequencyCell,
+ shouldShowInContext: (context: Context) => context.chrom !== 'Y',
+ },
+
+ {
+ key: 'class',
+ heading: 'Class',
+ minWidth: 130,
+ compareFunction: makeStringCompareFunction('type'),
+ getSearchTerms: (variant: CopyNumberVariant) => variant.type === 'DEL' || 'DUP',
+ render: renderType,
+ },
+
+ {
+ key: 'length',
+ heading: 'Size',
+ minWidth: 100,
+ compareFunction: makeNumericCompareFunction('length'),
+ render: (variant: CopyNumberVariant) => {
+ let s
+ if (variant.length === -1) {
+ s = '—'
+ } else {
+ const size = variant.length
+ if (size >= 1e6) {
+ s = `${(size / 1e6).toPrecision(3)} Mb`
+ } else if (size >= 1e3) {
+ s = `${(size / 1e3).toPrecision(3)} kb`
+ } else {
+ s = `${size} bp`
+ }
+ }
+
+ return {s}
+ },
+ },
+
+ {
+ key: 'pos',
+ heading: 'Position',
+ minWidth: 200,
+ compareFunction: makeNumericCompareFunction('pos'),
+ render: (variant: any) => {
+ const position = `${variant.pos} - ${variant.end}`
+ return {position} |
+ },
+ },
+
+ {
+ key: 'source',
+ heading: 'Source',
+ grow: 0,
+ minWidth: 70,
+ render: (variant: any) => ,
+ },
+
+ {
+ key: 'variant_id',
+ heading: 'Variant ID',
+ isRowHeader: true,
+ minWidth: 110,
+ compareFunction: makeStringCompareFunction('variant_id'),
+ getSearchTerms: (variant: any) => [variant.variant_id],
+ render: (variant: any, _ :any,{ highlightWords }: any) => {
+ return (
+
+
+
+
+ |
+ )
+ },
+ },
+]
+
+export default copyNumberVariantTableColumns
+
+export const getColumnsForContext = (context: Context) => {
+ const columns = copyNumberVariantTableColumns
+ .filter(
+ (column) => column.shouldShowInContext === undefined || column.shouldShowInContext(context)
+ )
+ .reduce((acc, column) => ({ ...acc, [column.key]: column }), {})
+
+ return columns
+}
diff --git a/browser/src/CopyNumberVariantList/filterCopyNumberVariants.ts b/browser/src/CopyNumberVariantList/filterCopyNumberVariants.ts
new file mode 100644
index 000000000..14e9f2ff2
--- /dev/null
+++ b/browser/src/CopyNumberVariantList/filterCopyNumberVariants.ts
@@ -0,0 +1,40 @@
+const filterVariants = (variants: any, filter: any, selectedColumns: any) => {
+ let filteredVariants = variants
+
+ filteredVariants = filteredVariants.filter((v: any) =>
+ filter.includeTypes[v.type] === undefined
+ ? filter.includeTypes.OTH
+ : filter.includeTypes[v.type]
+ )
+
+
+ if (!filter.includeFilteredVariants) {
+ filteredVariants = filteredVariants.filter((v: any) => v.filters.length === 0 )
+ }
+
+
+ if (filter.searchText) {
+ const searchColumns = selectedColumns.filter((column: any) => !!column.getSearchTerms)
+ const getVariantSearchTerms = (variant: any) =>
+ searchColumns
+ .flatMap((column: any) => column.getSearchTerms(variant))
+ .filter(Boolean)
+ .map((s: any) => s.toLowerCase())
+
+ const searchTerms = filter.searchText
+ .toLowerCase()
+ .split(',')
+ .map((s: any) => s.trim())
+ .filter((s: any) => s.length > 0)
+
+ filteredVariants = filteredVariants.filter((variant: any) =>
+ getVariantSearchTerms(variant).some((variantTerm: any) =>
+ searchTerms.some((searchTerm: any) => variantTerm.includes(searchTerm))
+ )
+ )
+ }
+
+ return filteredVariants
+}
+
+export default filterVariants
diff --git a/browser/src/CopyNumberVariantPage/CNVPopulationsTable.tsx b/browser/src/CopyNumberVariantPage/CNVPopulationsTable.tsx
index ef870e676..ffcf1921a 100644
--- a/browser/src/CopyNumberVariantPage/CNVPopulationsTable.tsx
+++ b/browser/src/CopyNumberVariantPage/CNVPopulationsTable.tsx
@@ -250,7 +250,7 @@ export class CNVPopulationsTable extends Component<
{this.renderColumnHeader({
key: 'sc',
label: columnLabels.sc || 'SC',
- tooltip: 'Alternate allele count in high quality genotypes', // TODO
+ tooltip: 'Number of individuals that carry this variant',
props: {
className: 'right-align',
},
@@ -258,7 +258,7 @@ export class CNVPopulationsTable extends Component<
{this.renderColumnHeader({
key: 'sn',
label: columnLabels.sn || 'SN',
- tooltip: 'Total number of called high quality genotypes', // TODO
+ tooltip: 'Number of individuals that have a non-null genotype',
props: {
className: 'right-align',
},
@@ -266,7 +266,7 @@ export class CNVPopulationsTable extends Component<
{this.renderColumnHeader({
key: 'sf',
label: columnLabels.sf || 'SF',
- tooltip: 'Total number of called high quality genotypes', // TODO
+ tooltip: 'Proportion of individuals carrying this variant',
props: {
className: 'right-align',
},
diff --git a/browser/src/CopyNumberVariantPage/CNVReferenceList.tsx b/browser/src/CopyNumberVariantPage/CNVReferenceList.tsx
index 4261790a0..2308ebcb0 100644
--- a/browser/src/CopyNumberVariantPage/CNVReferenceList.tsx
+++ b/browser/src/CopyNumberVariantPage/CNVReferenceList.tsx
@@ -5,7 +5,7 @@ import { ExternalLink, List, ListItem } from '@gnomad/ui'
import { CopyNumberVariant } from './CopyNumberVariantPage'
const ucscUrl = (chrom: any, pos: any, end: any) =>
- `https://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&position=chr${chrom}%3A${pos}-${end}`
+ `https://genome.ucsc.edu/cgi-bin/hgTracks?db=hg38&position=chr${chrom}%3A${pos}-${end}`
type CNVUCSCLinksProps = {
variant: CopyNumberVariant
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
index 514305818..eb82cf630 100644
--- a/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
@@ -45,7 +45,7 @@ const CopyNumberVariantAttributeList = ({ variant }: CopyNumberVariantAttributeL
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
{variant.sc}
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
- {variant.sn}
+ {variant.sn}
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
{(variant.sn === 0 ? 0 : variant.sc / variant.sn).toPrecision(4)}
@@ -64,8 +64,9 @@ const CopyNumberVariantAttributeList = ({ variant }: CopyNumberVariantAttributeL
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
+ {console.log(variant.type)}
{/* @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message */}
- {cnvTypeLabels[variant.type]}
+ {cnvTypeLabels[variant.type]} {/* TODO: ADD INFOBUTTONS*/}
)
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
index b6b376a18..9cc9a7e11 100644
--- a/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
@@ -89,25 +89,6 @@ const CopyNumberVariantPage = ({ datasetId, variant }: CopyNumberVariantPageProp
Population Frequencies
-
- {/*
-
-
-
- Age Distribution
-
- {variant.age_distribution ? (
-
- {datasetId !== 'gnomad_sv_r2_1' && (
- Age distribution is based on the full SV dataset, not the selected subset.
- )}
-
-
- ) : (
- Age data is not available for this variant.
- )}
-
- */}
)
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantPopulationsTable.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantPopulationsTable.tsx
index 90b42d6a7..9a17b8fff 100644
--- a/browser/src/CopyNumberVariantPage/CopyNumberVariantPopulationsTable.tsx
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantPopulationsTable.tsx
@@ -70,7 +70,7 @@ const CopyNumberVariantPopulationsTable = ({ variant }: CopyNumberVariantPopulat
const columnLabels = {
sc: 'Site Count',
- sn: 'Number of Sites',
+ sn: 'Number at Site',
sf: 'Site Frequency',
}
diff --git a/browser/src/DatasetSelector.tsx b/browser/src/DatasetSelector.tsx
index 66d0eb520..6b1b2e444 100644
--- a/browser/src/DatasetSelector.tsx
+++ b/browser/src/DatasetSelector.tsx
@@ -586,17 +586,29 @@ const DatasetSelector = withRouter(({ datasetOptions, history, selectedDataset }
datasets = datasets.concat(shortVariantDatasets)
}
- if (includeStructuralVariants) {
+ if (includeStructuralVariants || includeCopyNumberVariants) {
+ const topLevelStructuralVariantDataset = hasStructuralVariants(selectedDataset)
+ ? selectedDataset
+ : 'gnomad_sv_r2_1'
+
+ const topLevelCopyNumberVariantDataset = hasCopyNumberVariants(selectedDataset)
+ ? selectedDataset
+ : 'gnomad_cnv_r4'
+
+ const currentDataset = hasStructuralVariants(selectedDataset)
+ ? topLevelStructuralVariantDataset
+ : topLevelCopyNumberVariantDataset
+
datasets.push(
{
- id: 'current_sv_dataset',
- isActive: hasStructuralVariants(selectedDataset),
- label: labelForDataset(topLevelStructuralVariantDataset),
- url: datasetLink(topLevelStructuralVariantDataset),
+ id: 'current_sv_or_cnv_dataset',
+ isActive: hasStructuralVariants(selectedDataset) || hasCopyNumberVariants(selectedDataset),
+ label: labelForDataset(currentDataset),
+ url: datasetLink(currentDataset),
},
{
id: 'other_structural_variant',
- isActive: hasStructuralVariants(selectedDataset),
+ isActive: hasStructuralVariants(selectedDataset) || hasCopyNumberVariants(selectedDataset),
label: 'More datasets',
children: [
{
@@ -627,38 +639,35 @@ const DatasetSelector = withRouter(({ datasetOptions, history, selectedDataset }
description: `${sampleCounts.gnomad_sv_r2_1_controls.total.toLocaleString()} samples`,
childReferenceGenome: referenceGenome('gnomad_sv_r2_1_controls'),
},
- ],
- }
- )
- }
-
- if (includeCopyNumberVariants) {
- const topLevelCopyNumberVariantDataset = hasCopyNumberVariants(selectedDataset)
- ? selectedDataset
- : 'gnomad_cnv_r4'
-
- datasets.push(
- {
- id: 'current_cnv_dataset',
- isActive: hasCopyNumberVariants(selectedDataset),
- label: labelForDataset(topLevelCopyNumberVariantDataset),
- url: datasetLink(topLevelCopyNumberVariantDataset),
- },
- {
- id: 'other_cnv_variant',
- isActive: hasCopyNumberVariants(selectedDataset),
- label: 'More datasets',
- children: [
{
id: 'gnomad_cnv_r4',
label: labelForDataset('gnomad_cnv_r4'),
url: datasetLink('gnomad_cnv_r4'),
- description: `samples`,
- // description: `${sampleCounts.gnomad_cnv_r4.total.toLocaleString()} samples`,
+ description: `${sampleCounts.gnomad_cnv_r4.total.toLocaleString()} samples`,
childReferenceGenome: referenceGenome('gnomad_cnv_r4'),
},
],
- }
+ },
+ // {
+ // id: 'current_cnv_dataset',
+ // isActive: hasCopyNumberVariants(selectedDataset),
+ // label: labelForDataset(topLevelCopyNumberVariantDataset),
+ // url: datasetLink(topLevelCopyNumberVariantDataset),
+ // },
+ // {
+ // id: 'other_cnv_variant',
+ // isActive: hasCopyNumberVariants(selectedDataset),
+ // label: 'More datasets',
+ // children: [
+ // {
+ // id: 'gnomad_cnv_r4',
+ // label: labelForDataset('gnomad_cnv_r4'),
+ // url: datasetLink('gnomad_cnv_r4'),
+ // description: `${sampleCounts.gnomad_cnv_r4.total.toLocaleString()} samples`,
+ // childReferenceGenome: referenceGenome('gnomad_cnv_r4'),
+ // },
+ // ],
+ // }
)
}
diff --git a/browser/src/GenePage/CopyNumberVariantsInGene.tsx b/browser/src/GenePage/CopyNumberVariantsInGene.tsx
new file mode 100644
index 000000000..0911a17d0
--- /dev/null
+++ b/browser/src/GenePage/CopyNumberVariantsInGene.tsx
@@ -0,0 +1,91 @@
+import React from 'react'
+
+import { referenceGenome } from '@gnomad/dataset-metadata/metadata'
+import Query from '../Query'
+import { filterCopyNumberVariantsInZoomRegion } from '../RegionViewer/filterVariantsInZoomRegion'
+import CopyNumberVariants from '../CopyNumberVariantList/CopyNumberVariants'
+import { CopyNumberVariant } from '../CopyNumberVariantPage/CopyNumberVariantPage'
+
+type OwnProps = {
+ datasetId: string
+ gene: {
+ chrom: string
+ gene_id: string
+ }
+ zoomRegion?: {
+ start: number
+ stop: number
+ }
+}
+
+// @ts-expect-error TS(2456) FIXME: Type alias 'Props' circularly references itself.
+type Props = OwnProps & typeof CopyNumberVariantsInGene.defaultProps
+
+// @ts-expect-error TS(7022) FIXME: 'CopyNumberVariantsInGene' implicitly has type 'an... Remove this comment to see the full error message
+const CopyNumberVariantsInGene = ({ datasetId, gene, zoomRegion, ...rest }: Props) => {
+ const operationName = 'CopyNumberVariantsInGene'
+ const query = `
+ query ${operationName}($datasetId: CopyNumberVariantDatasetId!, $geneId: String!, $referenceGenome: ReferenceGenomeId!) {
+ gene(gene_id: $geneId, reference_genome: $referenceGenome) {
+ copy_number_variants(dataset: $datasetId) {
+ sc
+ sn
+ sf
+ chrom
+ end
+ filters
+ length
+ pos
+ posmin
+ posmax
+ endmin
+ endmax
+ type
+ variant_id
+ }
+ }
+ }
+ `
+ const url = datasetId === 'gnomad_cnv_r4' ? '/api' : 'https://gnomad.broadinstitute.org/api/'
+
+ return (
+ data.gene && data.gene.copy_number_variants}
+ >
+ {({ data }: any) => {
+ const copy_number_variants = filterCopyNumberVariantsInZoomRegion(
+ data.gene.copy_number_variants,
+ zoomRegion
+ ).map((variant: CopyNumberVariant) => ({
+ ...variant,
+ variant_id: variant.variant_id.toUpperCase(),
+ }))
+
+ return (
+
+ )
+ }}
+
+ )
+}
+
+CopyNumberVariantsInGene.defaultProps = {
+ zoomRegion: null,
+}
+
+export default CopyNumberVariantsInGene
diff --git a/browser/src/GenePage/VariantsInGene.tsx b/browser/src/GenePage/VariantsInGene.tsx
index 028ef2026..042c2ce45 100644
--- a/browser/src/GenePage/VariantsInGene.tsx
+++ b/browser/src/GenePage/VariantsInGene.tsx
@@ -298,37 +298,39 @@ const ConnectedVariantsInGene = ({
datasetId,
gene,
...otherProps
-}: ConnectedVariantsInGeneProps) => (
- data.gene && data.gene.variants}
- >
- {({ data }: any) => {
- let variants = annotateVariantsWithClinvar(data.gene.variants, data.gene.clinvar_variants)
- if (gene.pext) {
- variants = annotateVariantsWithPext(variants, gene.pext)
- }
+}: ConnectedVariantsInGeneProps) => {
+ return (
+ data.gene && data.gene.variants}
+ >
+ {({ data }: any) => {
+ let variants = annotateVariantsWithClinvar(data.gene.variants, data.gene.clinvar_variants)
+ if (gene.pext) {
+ variants = annotateVariantsWithPext(variants, gene.pext)
+ }
- return (
-
- )
- }}
-
-)
+ return (
+
+ )
+ }}
+
+ )
+}
export default ConnectedVariantsInGene
diff --git a/browser/src/RegionPage/CopyNumberVariantsInRegion.tsx b/browser/src/RegionPage/CopyNumberVariantsInRegion.tsx
new file mode 100644
index 000000000..1ee791fc1
--- /dev/null
+++ b/browser/src/RegionPage/CopyNumberVariantsInRegion.tsx
@@ -0,0 +1,96 @@
+import React from 'react'
+
+import { referenceGenome } from '@gnomad/dataset-metadata/metadata'
+import Query from '../Query'
+import { filterCopyNumberVariantsInZoomRegion } from '../RegionViewer/filterVariantsInZoomRegion'
+import CopyNumberVariants from '../CopyNumberVariantList/CopyNumberVariants'
+import { CopyNumberVariant } from '../CopyNumberVariantPage/CopyNumberVariantPage'
+
+type OwnProps = {
+ datasetId: string
+ region: {
+ chrom: string
+ start: number
+ stop: number
+ }
+ zoomRegion?: {
+ start: number
+ stop: number
+ }
+}
+
+// @ts-expect-error TS(2456) FIXME: Type alias 'Props' circularly references itself.
+type Props = OwnProps & typeof CopyNumberVariantsInRegion.defaultProps
+
+// @ts-expect-error TS(7022) FIXME: 'CopyNumberVariantsInRegion' implicitly has type '... Remove this comment to see the full error message
+const CopyNumberVariantsInRegion = ({ datasetId, region, zoomRegion, ...rest }: Props) => {
+ const url = datasetId === 'gnomad_cnv_r4' ? '/api' : 'https://gnomad.broadinstitute.org/api/'
+
+ const operationName = 'CopyNumberVariantsInRegion'
+ const query = `
+ query ${operationName}($datasetId: CopyNumberVariantDatasetId!, $chrom: String!, $start: Int!, $stop: Int!, $referenceGenome: ReferenceGenomeId!) {
+ region(chrom: $chrom, start: $start, stop: $stop, reference_genome: $referenceGenome) {
+ copy_number_variants(dataset: $datasetId) {
+ sc
+ sn
+ sf
+ chrom
+ end
+ filters
+ length
+ pos
+ posmin
+ posmax
+ endmin
+ endmax
+ type
+ variant_id
+ }
+ }
+ }
+ `
+
+ return (
+ data.region && data.region.copy_number_variants}
+ >
+ {({ data }: any) => {
+ const regionId = `${region.chrom}-${region.start}-${region.stop}`
+ const variants = filterCopyNumberVariantsInZoomRegion(
+ data.region.copy_number_variants,
+ zoomRegion
+ ).map((variant: CopyNumberVariant) => ({
+ ...variant,
+ variant_id: variant.variant_id.toUpperCase(),
+ }))
+
+ return (
+
+ )
+ }}
+
+ )
+}
+
+CopyNumberVariantsInRegion.defaultProps = {
+ zoomRegion: null,
+}
+
+export default CopyNumberVariantsInRegion
diff --git a/browser/src/Searchbox.tsx b/browser/src/Searchbox.tsx
index d675dc0c5..94b6a2c75 100644
--- a/browser/src/Searchbox.tsx
+++ b/browser/src/Searchbox.tsx
@@ -89,7 +89,7 @@ export default withRouter((props: any) => {
gnomAD v3.1.2
gnomAD SVs v4
- gnomAD exome CNVs v4
+ gnomAD exome CNVs v4.0
gnomAD v2.1.1
From a603cedb6d75a702892a932016fb37ec8447bbf0 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 26 Oct 2023 18:12:52 -0400
Subject: [PATCH 50/62] eslint pass
---
.../CopyNumberVariants.tsx | 13 +++-------
.../CopyNumberVariantAttributeList.tsx | 4 +--
browser/src/CoverageTrack.tsx | 2 +-
browser/src/GenePage/GeneCoverageTrack.tsx | 1 -
browser/src/GenePage/GenePage.spec.tsx | 3 +--
browser/src/GenePage/GenePage.tsx | 1 +
browser/src/RegionPage/RegionPage.tsx | 1 -
.../gnomad_v4/gnomad_v4_cnv_del_burden.py | 9 +++++++
.../gnomad_v4/gnomad_v4_cnv_dup_burden.py | 9 +++++++
.../gnomad_v4_cnv_track_percent_callable.py | 11 ++++++++
.../pipelines/gnomad_v4_cnv_del_burden.py | 26 +++++++++++++++++++
.../pipelines/gnomad_v4_cnv_dup_burden.py | 26 +++++++++++++++++++
.../gnomad_v4_cnv_track_percent_callable.py | 26 +++++++++++++++++++
13 files changed, 114 insertions(+), 18 deletions(-)
create mode 100644 data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnv_del_burden.py
create mode 100644 data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnv_dup_burden.py
create mode 100644 data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnv_track_percent_callable.py
create mode 100644 data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_del_burden.py
create mode 100644 data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_dup_burden.py
create mode 100644 data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_track_percent_callable.py
diff --git a/browser/src/CopyNumberVariantList/CopyNumberVariants.tsx b/browser/src/CopyNumberVariantList/CopyNumberVariants.tsx
index f9b5aea61..474086b13 100644
--- a/browser/src/CopyNumberVariantList/CopyNumberVariants.tsx
+++ b/browser/src/CopyNumberVariantList/CopyNumberVariants.tsx
@@ -3,7 +3,7 @@ import styled from 'styled-components'
// @ts-expect-error TS(7016) FIXME: Could not find a declaration file for module '@gno... Remove this comment to see the full error message
import { PositionAxisTrack } from '@gnomad/region-viewer'
-import { Button, SegmentedControl } from '@gnomad/ui'
+import { Button } from '@gnomad/ui'
import { showNotification } from '../Notifications'
import StatusMessage from '../StatusMessage'
@@ -31,15 +31,6 @@ const Wrapper = styled.div`
margin-bottom: 1em;
`
-const ControlWrapper = styled(Wrapper)`
- display: flex;
- justify-content: flex-end;
- align-items: center;
-
- @media (min-width: 900px) {
- margin-right: 160px;
- }
-`
const HUMAN_CHROMOSOMES = [...Array.from(new Array(22), (x: any, i: any) => `${i + 1}`), 'X', 'Y']
@@ -167,9 +158,11 @@ const CopyNumberVariants = ({ context, exportFileName, variants }: CopyNumberVar
}
}, [])
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
const [colorKey, setColorKey] = useState('type')
const trackColor = useCallback(
// @ts-expect-error TS(7006) FIXME: Parameter 'variant' implicitly has an 'any' type.
+ // eslint-disable-next-line consistent-return
(variant) => {
if (colorKey === 'type') {
// @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
index eb82cf630..48e18e5e5 100644
--- a/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
@@ -3,7 +3,6 @@ import React from 'react'
import { Badge } from '@gnomad/ui'
import AttributeList from '../AttributeList'
-import InfoButton from '../help/InfoButton'
import Link from '../Link'
import { cnvTypeLabels } from '../CopyNumberVariantList/copyNumberVariantTypes'
import { CopyNumberVariant } from './CopyNumberVariantPage'
@@ -64,9 +63,8 @@ const CopyNumberVariantAttributeList = ({ variant }: CopyNumberVariantAttributeL
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
- {console.log(variant.type)}
{/* @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message */}
- {cnvTypeLabels[variant.type]} {/* TODO: ADD INFOBUTTONS*/}
+ {cnvTypeLabels[variant.type]}
)
diff --git a/browser/src/CoverageTrack.tsx b/browser/src/CoverageTrack.tsx
index fd6ea52a5..b36ee9f64 100644
--- a/browser/src/CoverageTrack.tsx
+++ b/browser/src/CoverageTrack.tsx
@@ -105,7 +105,7 @@ class CoverageTrack extends Component {
plotElement: any
state = {
- selectedMetric: 'mean',
+ selectedMetric: 'over_30',
}
plotRef = (el: any) => {
diff --git a/browser/src/GenePage/GeneCoverageTrack.tsx b/browser/src/GenePage/GeneCoverageTrack.tsx
index 25127c39e..718eb7d9f 100644
--- a/browser/src/GenePage/GeneCoverageTrack.tsx
+++ b/browser/src/GenePage/GeneCoverageTrack.tsx
@@ -42,7 +42,6 @@ query ${operationName}($geneId: String!, $datasetId: DatasetId!, $referenceGenom
}
}
`
-
type OwnProps = {
datasetId: string
geneId: string
diff --git a/browser/src/GenePage/GenePage.spec.tsx b/browser/src/GenePage/GenePage.spec.tsx
index 872123c64..2a77958cf 100644
--- a/browser/src/GenePage/GenePage.spec.tsx
+++ b/browser/src/GenePage/GenePage.spec.tsx
@@ -253,5 +253,4 @@ describe.each([
expectedIncludeShortTandemRepeats
)
})
- }
-)
+ })
diff --git a/browser/src/GenePage/GenePage.tsx b/browser/src/GenePage/GenePage.tsx
index e1bdaba3e..b629c054c 100644
--- a/browser/src/GenePage/GenePage.tsx
+++ b/browser/src/GenePage/GenePage.tsx
@@ -592,6 +592,7 @@ const GenePage = ({ datasetId, gene, geneId }: Props) => {
{/* eslint-disable-next-line no-nested-ternary */}
{hasStructuralVariants(datasetId) ? (
+ // eslint-disable-next-line no-nested-ternary
) : hasCopyNumberVariants(datasetId) ? (
) : gene.chrom === 'M' ? (
diff --git a/browser/src/RegionPage/RegionPage.tsx b/browser/src/RegionPage/RegionPage.tsx
index b8d864e8c..534cd5260 100644
--- a/browser/src/RegionPage/RegionPage.tsx
+++ b/browser/src/RegionPage/RegionPage.tsx
@@ -11,7 +11,6 @@ import {
regionsHaveGenomeCoverage,
isSVs,
isV4CNVs,
- hasCopyNumberVariants,
} from '@gnomad/dataset-metadata/metadata'
import DocumentTitle from '../DocumentTitle'
import GnomadPageHeading from '../GnomadPageHeading'
diff --git a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnv_del_burden.py b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnv_del_burden.py
new file mode 100644
index 000000000..c5ca244fd
--- /dev/null
+++ b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnv_del_burden.py
@@ -0,0 +1,9 @@
+import hail as hl
+
+
+def prepare_cnv_del_burden(burden_path):
+ del_burden = hl.import_table(burden_path, force_bgz=True, types={"xpos": hl.tfloat64, "burden_del": hl.tfloat64})
+
+ del_burden = del_burden.select("xpos", "burden_del")
+
+ return del_burden
diff --git a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnv_dup_burden.py b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnv_dup_burden.py
new file mode 100644
index 000000000..1a7d3aade
--- /dev/null
+++ b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnv_dup_burden.py
@@ -0,0 +1,9 @@
+import hail as hl
+
+
+def prepare_cnv_dup_burden(burden_path):
+ dup_burden = hl.import_table(burden_path, force_bgz=True, types={"xpos": hl.tfloat64, "burden_dup": hl.tfloat64})
+
+ dup_burden = dup_burden.select("xpos", "burden_dup")
+
+ return dup_burden
diff --git a/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnv_track_percent_callable.py b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnv_track_percent_callable.py
new file mode 100644
index 000000000..a2febc302
--- /dev/null
+++ b/data-pipeline/src/data_pipeline/datasets/gnomad_v4/gnomad_v4_cnv_track_percent_callable.py
@@ -0,0 +1,11 @@
+import hail as hl
+
+
+def prepare_cnv_track_callable(coverage_path):
+ coverage = hl.import_table(
+ coverage_path, force_bgz=True, types={"xpos": hl.tfloat64, "percent_callable": hl.tfloat64}
+ )
+
+ coverage = coverage.select("xpos", "percent_callable")
+
+ return coverage
diff --git a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_del_burden.py b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_del_burden.py
new file mode 100644
index 000000000..5b717656a
--- /dev/null
+++ b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_del_burden.py
@@ -0,0 +1,26 @@
+from data_pipeline.pipeline import Pipeline, run_pipeline
+
+from data_pipeline.datasets.gnomad_v4.gnomad_v4_cnv_del_burden import prepare_cnv_del_burden
+
+
+pipeline = Pipeline()
+
+pipeline.add_task(
+ "prepare_gnomad_v4_cnv_del_burden",
+ prepare_cnv_del_burden,
+ "/gnomad_v4/gnomad_v4_cnvs/cnv_tracks/del_burden.ht",
+ {"burden_path": "gs://gnomad-v4-cnvs/2023-10-24jfu/burden_del_1.0.txt.gz"},
+)
+
+###############################################
+# Outputs
+###############################################
+
+pipeline.set_outputs({"del_burden": "prepare_gnomad_v4_cnv_del_burden"})
+
+###############################################
+# Run
+###############################################
+
+if __name__ == "__main__":
+ run_pipeline(pipeline)
diff --git a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_dup_burden.py b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_dup_burden.py
new file mode 100644
index 000000000..3c82b16f0
--- /dev/null
+++ b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_dup_burden.py
@@ -0,0 +1,26 @@
+from data_pipeline.pipeline import Pipeline, run_pipeline
+
+from data_pipeline.datasets.gnomad_v4.gnomad_v4_cnv_dup_burden import prepare_cnv_dup_burden
+
+
+pipeline = Pipeline()
+
+pipeline.add_task(
+ "prepare_gnomad_v4_cnv_dup_burden",
+ prepare_cnv_dup_burden,
+ "/gnomad_v4/gnomad_v4_cnvs/cnv_tracks/dup_burden.ht",
+ {"burden_path": "gs://gnomad-v4-cnvs/2023-10-24jfu/burden_dup_1.0.txt.gz"},
+)
+
+###############################################
+# Outputs
+###############################################
+
+pipeline.set_outputs({"dup_burden": "prepare_gnomad_v4_cnv_dup_burden"})
+
+###############################################
+# Run
+###############################################
+
+if __name__ == "__main__":
+ run_pipeline(pipeline)
diff --git a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_track_percent_callable.py b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_track_percent_callable.py
new file mode 100644
index 000000000..7cd44dcf9
--- /dev/null
+++ b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_track_percent_callable.py
@@ -0,0 +1,26 @@
+from data_pipeline.pipeline import Pipeline, run_pipeline
+
+from data_pipeline.datasets.gnomad_v4.gnomad_v4_cnv_track_percent_callable import prepare_cnv_track_callable
+
+
+pipeline = Pipeline()
+
+pipeline.add_task(
+ "prepare_gnomad_v4_cnvs_track_percent_callable",
+ prepare_cnv_track_callable,
+ "/gnomad_v4/gnomad_v4_cnvs/cnv_tracks/track_percent_callable.ht",
+ {"coverage_path": "gs://gnomad-v4-cnvs/2023-10-24jfu/track_percent_callable.tsv.gz"},
+)
+
+###############################################
+# Outputs
+###############################################
+
+pipeline.set_outputs({"track_percent_callable": "prepare_gnomad_v4_cnvs_track_percent_callable"})
+
+###############################################
+# Run
+###############################################
+
+if __name__ == "__main__":
+ run_pipeline(pipeline)
From b1fabcdf373dc573b6948c4cdd7368e56254706d Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 26 Oct 2023 18:15:16 -0400
Subject: [PATCH 51/62] remove inital coverage files
---
browser/help/topics/dataset-selection.md | 6 +++++
.../data_pipeline/data_types/cnv_coverage.py | 13 ----------
.../pipelines/gnomad_v4_cnv_coverage.py | 26 -------------------
.../gnomad_v4_copy_number_variant_coverage.py | 26 -------------------
4 files changed, 6 insertions(+), 65 deletions(-)
delete mode 100644 data-pipeline/src/data_pipeline/data_types/cnv_coverage.py
delete mode 100644 data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_coverage.py
delete mode 100644 data-pipeline/src/data_pipeline/pipelines/gnomad_v4_copy_number_variant_coverage.py
diff --git a/browser/help/topics/dataset-selection.md b/browser/help/topics/dataset-selection.md
index 486d6880b..7e4d6f7e4 100644
--- a/browser/help/topics/dataset-selection.md
+++ b/browser/help/topics/dataset-selection.md
@@ -56,3 +56,9 @@ The following subsets from previous versions are currently available, but access
- _gnomAD SVs v2.1: Structural variant (SV) calls generated from a set of GS samples that largely overlaps those in gnomAD v2.1. This current SV release includes 10,847 unrelated genomes. See the [gnomAD-SV paper](https://broad.io/gnomad_sv) for details._
- _gnomAD SVs v2.1 (non-neuro): Only samples from individuals who were not ascertained for having a neurological condition in a neurological case/control study._
- _gnomAD SVs v2.1 (controls): Only samples from individuals who were not selected as a case in a case/control study of common disease._
+
+### Copy number variants
+
++ gnomAD exome CNVs v4.0: Copy number variant (CNV) calls generated from a set of ES samples that largely overlaps those in gnomAD v4. This current CNV release includes 464,566 unrelated exomes
+
+The data selection drop-down also updates accompanying data such as the coverage plot, constraint statistics, regional constraint, and variant positional distribution plot.
diff --git a/data-pipeline/src/data_pipeline/data_types/cnv_coverage.py b/data-pipeline/src/data_pipeline/data_types/cnv_coverage.py
deleted file mode 100644
index cafe0fb88..000000000
--- a/data-pipeline/src/data_pipeline/data_types/cnv_coverage.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import hail as hl
-
-
-
-def prepare_cnv_track_callable_coverage(coverage_path):
- coverage = hl.import_table(coverage_path, force_bgz=True, types={'xpos': hl.tfloat64, 'percent_callable': hl.tfloat64})
-
- coverage = coverage.select(
- "xpos",
- "percent_callable"
- )
-
- return coverage
diff --git a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_coverage.py b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_coverage.py
deleted file mode 100644
index eebeaa996..000000000
--- a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnv_coverage.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from data_pipeline.pipeline import Pipeline, run_pipeline
-
-from data_pipeline.data_types.cnv_coverage import prepare_cnv_track_callable_coverage
-
-
-pipeline = Pipeline()
-
-pipeline.add_task(
- "prepare_gnomad_v4_cnvs_track_percent_callable_coverage",
- prepare_cnv_track_callable_coverage,
- "/gnomad_v4/gnomad_v4_cnvs/coverage_tracks/track_percent_callable.ht",
- {"coverage_path": "gs://gnomad-v4-cnvs/coverage_tracks/track_percent_callable.tsv.gz"},
-)
-
-###############################################
-# Outputs
-###############################################
-
-pipeline.set_outputs({"track_percent_callable_coverage": "prepare_gnomad_v4_cnvs_track_percent_callable_coverage"})
-
-###############################################
-# Run
-###############################################
-
-if __name__ == "__main__":
- run_pipeline(pipeline)
diff --git a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_copy_number_variant_coverage.py b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_copy_number_variant_coverage.py
deleted file mode 100644
index eebeaa996..000000000
--- a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_copy_number_variant_coverage.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from data_pipeline.pipeline import Pipeline, run_pipeline
-
-from data_pipeline.data_types.cnv_coverage import prepare_cnv_track_callable_coverage
-
-
-pipeline = Pipeline()
-
-pipeline.add_task(
- "prepare_gnomad_v4_cnvs_track_percent_callable_coverage",
- prepare_cnv_track_callable_coverage,
- "/gnomad_v4/gnomad_v4_cnvs/coverage_tracks/track_percent_callable.ht",
- {"coverage_path": "gs://gnomad-v4-cnvs/coverage_tracks/track_percent_callable.tsv.gz"},
-)
-
-###############################################
-# Outputs
-###############################################
-
-pipeline.set_outputs({"track_percent_callable_coverage": "prepare_gnomad_v4_cnvs_track_percent_callable_coverage"})
-
-###############################################
-# Run
-###############################################
-
-if __name__ == "__main__":
- run_pipeline(pipeline)
From 004ba1e36110bd30c0ec02b599a13f77c91aca3f Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Thu, 26 Oct 2023 18:15:35 -0400
Subject: [PATCH 52/62] coverage edits
---
.../src/graphql/resolvers/cnv-coverage.ts | 51 +++++-------
graphql-api/src/graphql/schema.ts | 4 +
.../graphql/types/copy-number-variant.graphql | 4 +-
graphql-api/src/graphql/types/gene.graphql | 2 +-
.../src/queries/cnv-coverage-queries.ts | 77 +++++++------------
graphql-api/src/queries/coverage-queries.ts | 21 -----
6 files changed, 52 insertions(+), 107 deletions(-)
diff --git a/graphql-api/src/graphql/resolvers/cnv-coverage.ts b/graphql-api/src/graphql/resolvers/cnv-coverage.ts
index 1f9b08bcc..f1c9664c9 100644
--- a/graphql-api/src/graphql/resolvers/cnv-coverage.ts
+++ b/graphql-api/src/graphql/resolvers/cnv-coverage.ts
@@ -1,6 +1,4 @@
-import { UserVisibleError } from '../../errors'
import {
- fetchTrackCallableCoverageForRegion,
fetchTrackCallableCoverageForGene,
} from '../../queries/cnv-coverage-queries'
@@ -20,27 +18,16 @@ import {
// over_100: bin.over_x[8],
// }))
-const formatTrackCallableCoverageBins = (bins: any) =>
- bins.map((bin: any) => ({
- pos: bin.pos,
- percent_callable: bin[0],
- }))
-const resolveTrackCallableCoverageInRegion = async (obj: any, _args: any, ctx: any) => {
- const coverage = await fetchTrackCallableCoverageForRegion(ctx.esClient, obj.dataset, obj)
- return formatTrackCallableCoverageBins(coverage)
-}
+// const resolveTrackCallableCoverageInRegion = async (obj: any, _args: any, ctx: any) => {
+// const coverage = await fetchTrackCallableCoverageForRegion(ctx.esClient, obj.dataset, obj)
+// return formatTrackCallableCoverageBins(coverage)
+// }
-const resolveTrackCallableCoverageInGene = async (obj: any, _args: any, ctx: any) => {
- try {
- console.log("fetchTrackCallableCoverageForGene In Resolver")
- const coverage = await fetchTrackCallableCoverageForGene(ctx.esClient, obj.dataset, obj)
- return formatTrackCallableCoverageBins(coverage)
- } catch (e) {
- console.error('Error resolver coverager:', e)
- throw e
+const resolveTrackCallableCoverageInGene = async (obj: any, args: any, ctx: any) => {
+ // Call your data fetching function
+ return fetchTrackCallableCoverageForGene(ctx.esClient, args.dataset, obj);
}
-}
// const resolveGenomeCoverageInRegion = async (obj: any, _args: any, ctx: any) => {
// const coverage = await fetchGenomeCoverageForRegion(ctx.esClient, obj.dataset, obj)
@@ -57,19 +44,19 @@ const resolveTrackCallableCoverageInGene = async (obj: any, _args: any, ctx: any
// }
const resolvers = {
- Region: {
- coverage: (obj: any, args: any) => {
- if (obj.stop - obj.start >= 2.5e6) {
- throw new UserVisibleError('Coverage is not available for a region this large')
- }
- return { ...obj, dataset: args.dataset }
- },
- },
- RegionCoverage: {
- track_callable: resolveTrackCallableCoverageInRegion,
- },
+// Region: {
+// coverage: (obj: any, args: any) => {
+// if (obj.stop - obj.start >= 2.5e6) {
+// throw new UserVisibleError('Coverage is not available for a region this large')
+// }
+// return { ...obj, dataset: args.dataset }
+// },
+// },
+// RegionCoverage: {
+// track_callable: resolveTrackCallableCoverageInRegion,
+// },
Gene: {
- track_callable: resolveTrackCallableCoverageInGene,
+ cnv_track_callable_coverage: resolveTrackCallableCoverageInGene,
},
}
diff --git a/graphql-api/src/graphql/schema.ts b/graphql-api/src/graphql/schema.ts
index 8bf0a294e..f27811d6c 100644
--- a/graphql-api/src/graphql/schema.ts
+++ b/graphql-api/src/graphql/schema.ts
@@ -24,18 +24,22 @@ import transcriptFieldResolvers from './resolvers/transcript-fields'
import variantResolvers from './resolvers/variants'
import variantFieldResolvers from './resolvers/variant-fields'
import variantCooccurrenceResolvers from './resolvers/variant-cooccurrence'
+import cnvCoverageResolvers from './resolvers/cnv-coverage'
const typeDefs = mergeTypeDefs([
...loadFilesSync(path.join(__dirname, './types')),
'directive @cost(value: Int!, multipliers: [String!]) on FIELD_DEFINITION',
])
+
+
const resolvers = mergeResolvers([
aliasResolvers,
browserMetadataResolvers,
clinVarVariantResolvers,
clinVarVariantFieldResolvers,
copyNumberVariantResolvers,
+ cnvCoverageResolvers,
coverageResolvers,
geneResolvers,
geneFieldResolvers,
diff --git a/graphql-api/src/graphql/types/copy-number-variant.graphql b/graphql-api/src/graphql/types/copy-number-variant.graphql
index e4541e334..f9fe1af07 100644
--- a/graphql-api/src/graphql/types/copy-number-variant.graphql
+++ b/graphql-api/src/graphql/types/copy-number-variant.graphql
@@ -45,7 +45,7 @@ type CopyNumberVariantDetails {
variant_id: String!
}
-type CNVTrackCallabeCoverageBin {
- pos: Float!
+type CNVTrackCallableCoverageBin {
+ xpos: Float!
percent_callable: Float
}
\ No newline at end of file
diff --git a/graphql-api/src/graphql/types/gene.graphql b/graphql-api/src/graphql/types/gene.graphql
index 7b96e2beb..dfd7bd187 100644
--- a/graphql-api/src/graphql/types/gene.graphql
+++ b/graphql-api/src/graphql/types/gene.graphql
@@ -78,7 +78,7 @@ type Gene {
coverage(dataset: DatasetId): FeatureCoverage! @cost(value: 5)
mitochondrial_coverage(dataset: DatasetId!): [MitochondrialCoverageBin!] @cost(value: 5)
- cnv_track_callable_coverage(dataset: CopyNumberVariantDatasetId!): [CNVTrackCallabeCoverageBin!] @cost(value: 5)
+ cnv_track_callable_coverage(dataset: CopyNumberVariantDatasetId!): [CNVTrackCallableCoverageBin!] @cost(value: 5)
short_tandem_repeats(dataset: DatasetId!): [ShortTandemRepeat!]! @cost(value: 5)
heterozygous_variant_cooccurrence_counts: [HeterozygousVariantCooccurrenceCounts!]!
diff --git a/graphql-api/src/queries/cnv-coverage-queries.ts b/graphql-api/src/queries/cnv-coverage-queries.ts
index 480ce4fc1..df63f93e9 100644
--- a/graphql-api/src/queries/cnv-coverage-queries.ts
+++ b/graphql-api/src/queries/cnv-coverage-queries.ts
@@ -1,4 +1,3 @@
-import { withCache } from '../cache'
import { UserVisibleError } from '../errors'
import { extendRegions, mergeOverlappingRegions, totalRegionSize } from './helpers/region-helpers'
@@ -15,49 +14,33 @@ const COVERAGE_INDICES = {
// Base query
// ================================================================================================
-const fetchTrackCallableCoverage = async (esClient: any, { index, regions }: any) => {
- try {
- console.log('fetchtrackcallablecoverage')
- const response = await esClient.search({
- index,
- type: '_doc',
- size: 0,
- body: {
- query: {
- bool: {
- filter: [
- {
- bool: {
- should: regions.map(({ start, stop }: any) => ({
- range: { xpos: { gte: start, lte: stop } },
- })),
- },
- },
- ],
- },
- },
- aggregations: {
- chart: {
- terms: {
- field: 'xpos',
- interval: 10000,
- },
- aggregations: {
- percent_callable: { avg: { field: 'percent_callable' } },
+const fetchTrackCallableCoverage = async (esClient: any, { regions }: any) => {
+ const requestBody = {
+ query: {
+ bool: {
+ filter: [
+ {
+ bool: {
+ should: regions.map(({ xstart, xstop }: any) => ({
+ range: { xpos: { gte: xstart, lte: xstop } },
+ })),
},
},
- },
+ ],
},
- })
-
- return response.body.aggregations.chart.buckets.map((bucket: any) => ({
- pos: bucket.key,
- percent_callable: [Math.ceil((bucket.percent_callable.value || 0) * 100) / 100],
- }))
- } catch (error) {
- console.error('Error fetching coverage:', error)
- throw error
+ },
}
+
+ const response = await esClient.search({
+ index: 'gnomad_v4_cnv_track_callable_coverage',
+ type: '_doc',
+ size: 2,
+ body: requestBody,
+ })
+ return response.body.hits.hits.map((hit: any) => ({
+ xpos: parseFloat(hit._source.xpos),
+ percent_callable: Math.ceil((hit._source.percent_callable || 0) * 100) / 100,
+ }))
}
// ================================================================================================
@@ -79,7 +62,6 @@ export const fetchTrackCallableCoverageForRegion = (esClient: any, datasetId: an
return fetchTrackCallableCoverage(esClient, {
index: trackCallableCoverageIndex,
- //contig: `chr${region.chrom}` ,
regions: [{ start: region.start - 75, stop: region.stop + 75 }],
bucketSize,
})
@@ -95,38 +77,31 @@ export const _fetchTrackCallableCoverageForGene = async (
gene: any
) => {
assertDatasetAndReferenceGenomeMatch(datasetId, gene.reference_genome)
- console.log('fetch gene')
if (!datasetId.startsWith('gnomad_cnv_')) {
throw new UserVisibleError('Track callabe coverage is not available for non-CNVs')
}
const paddedExons = extendRegions(75, gene.exons)
- console.log(paddedExons, 'paddedexons')
+
const mergedExons = mergeOverlappingRegions(
paddedExons.sort((a: any, b: any) => a.start - b.start)
)
- console.log(mergedExons, 'mergedExons')
const totalIntervalSize = totalRegionSize(mergedExons)
const bucketSize = Math.max(Math.floor(totalIntervalSize / 500), 1)
// @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expre... Remove this comment to see the full error message
const trackCallableCoverageIndex = COVERAGE_INDICES[datasetId]
- console.log(trackCallableCoverageIndex, 'trackCallableCoverageIndex')
-
const trackCallableCoverage = await fetchTrackCallableCoverage(esClient, {
index: trackCallableCoverageIndex,
- // contig: `chr${gene.chrom}`,
regions: mergedExons,
bucketSize,
})
- console.log(trackCallableCoverage, 'trackCallableCoverage')
return {
- track_callable: trackCallableCoverage,
+ cnv_track_callable_coverage: trackCallableCoverage || [],
}
}
-export const fetchTrackCallableCoverageForGene =
- _fetchTrackCallableCoverageForGene
+export const fetchTrackCallableCoverageForGene = _fetchTrackCallableCoverageForGene
diff --git a/graphql-api/src/queries/coverage-queries.ts b/graphql-api/src/queries/coverage-queries.ts
index 6cc431700..6e3ed9dba 100644
--- a/graphql-api/src/queries/coverage-queries.ts
+++ b/graphql-api/src/queries/coverage-queries.ts
@@ -76,27 +76,6 @@ const fetchCoverage = async (esClient: any, { index, contig, regions, bucketSize
},
})
- console.log(
- 'RESPONSE Hits of query COVERAGE',
- response.body.aggregations.coverage.buckets.map((bucket: any) => ({
- pos: bucket.key,
- mean: bucket.mean.value || 0,
- median: bucket.median.value || 0,
-
- over_x: [
- // Round values
- Math.ceil((bucket.over_1.value || 0) * 100) / 100,
- Math.ceil((bucket.over_5.value || 0) * 100) / 100,
- Math.ceil((bucket.over_10.value || 0) * 100) / 100,
- Math.ceil((bucket.over_15.value || 0) * 100) / 100,
- Math.ceil((bucket.over_20.value || 0) * 100) / 100,
- Math.ceil((bucket.over_25.value || 0) * 100) / 100,
- Math.ceil((bucket.over_30.value || 0) * 100) / 100,
- Math.ceil((bucket.over_50.value || 0) * 100) / 100,
- Math.ceil((bucket.over_100.value || 0) * 100) / 100,
- ],
- }))
- )
return response.body.aggregations.coverage.buckets.map((bucket: any) => ({
pos: bucket.key,
From 84fea62c15d1b4e6b1a365356a5bab917132b1cd Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Fri, 27 Oct 2023 14:41:12 -0400
Subject: [PATCH 53/62] Add snapshot test updates
---
.../ConstraintTable.spec.tsx.snap | 2672 ++-
.../CopyNumberVariants.spec.tsx.snap | 354 +
.../CopyNumberVariantPage.spec.tsx.snap | 851 +
browser/src/GenePage/GenePage.spec.tsx | 5 +-
.../__snapshots__/GenePage.spec.tsx.snap | 4081 +++-
...riantCooccurrenceCountsTable.spec.tsx.snap | 8 +
.../MitochondrialVariantPage.spec.tsx.snap | 17722 +++++++++++++++-
.../__snapshots__/ReadData.spec.tsx.snap | 410 +
.../CopyNumberVariantsRegionCoverageTrack.tsx | 78 +
...chondrialRegionCoverageTrack.spec.tsx.snap | 66 +
...itochondrialVariantsInRegion.spec.tsx.snap | 66 +
.../__snapshots__/RegionPage.spec.tsx.snap | 875 +-
.../RegionPageContainer.spec.tsx.snap | 112 +
...drialTranscriptCoverageTrack.spec.tsx.snap | 64 +
...hondrialVariantsInTranscript.spec.tsx.snap | 66 +
.../TranscriptPage.spec.tsx.snap | 3722 +++-
.../TranscriptPageContainer.spec.tsx.snap | 4846 ++++-
.../DatasetSelector.spec.tsx.snap | 8268 ++++++-
18 files changed, 42273 insertions(+), 1993 deletions(-)
create mode 100644 browser/src/CopyNumberVariantList/__snapshots__/CopyNumberVariants.spec.tsx.snap
create mode 100644 browser/src/CopyNumberVariantPage/__snapshots__/CopyNumberVariantPage.spec.tsx.snap
create mode 100644 browser/src/RegionPage/CopyNumberVariantsRegionCoverageTrack.tsx
diff --git a/browser/src/ConstraintTable/__snapshots__/ConstraintTable.spec.tsx.snap b/browser/src/ConstraintTable/__snapshots__/ConstraintTable.spec.tsx.snap
index 2505d48e5..3fe6ed064 100644
--- a/browser/src/ConstraintTable/__snapshots__/ConstraintTable.spec.tsx.snap
+++ b/browser/src/ConstraintTable/__snapshots__/ConstraintTable.spec.tsx.snap
@@ -30,7 +30,7 @@ exports[`ConstraintTable with "exac" dataset selected with a mitochondrial trans
`;
-exports[`ConstraintTable with "gnomad_r2_1" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_cnv_r4" dataset selected and gene with available constraint has no unexpected changes 1`] = `
[
`;
-exports[`ConstraintTable with "gnomad_r2_1" dataset selected with a minimal gene has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_cnv_r4" dataset selected with a minimal gene has no unexpected changes 1`] = `
Constraint not available for this
gene
`;
-exports[`ConstraintTable with "gnomad_r2_1" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_cnv_r4" dataset selected with a minimal transcript has no unexpected changes 1`] = `
Constraint not available for this
transcript
`;
-exports[`ConstraintTable with "gnomad_r2_1" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_cnv_r4" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
Constraint is not available for mitochondrial
@@ -799,7 +799,7 @@ exports[`ConstraintTable with "gnomad_r2_1" dataset selected with a mitochondria
`;
-exports[`ConstraintTable with "gnomad_r2_1" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_cnv_r4" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
Constraint is not available for mitochondrial
@@ -807,11 +807,8 @@ exports[`ConstraintTable with "gnomad_r2_1" dataset selected with a mitochondria
`;
-exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1" dataset selected and gene with available constraint has no unexpected changes 1`] = `
[
-
- Constraint is based on the full gnomAD dataset, not the selected subset.
-
,
- Constraint is based on the full gnomAD dataset, not the selected subset.
- ,
-
-
-
-
-
+
+
+
+
+ Category
+
+
+
- Category
-
-
+
+
+
+ Observed SNVs
+
+
+
+ Constraint metrics
+
+
+
+
+
+
+
+ Synonymous
+
+
+
+ 0.2
+
+
+
+
+ Z =
+
+
+ 0.46
+
+
+
+ o/e =
- Expected SNVs
+ 0.91
-
-
+
+ (
- Observed SNVs
+ 0.8
-
-
+ 0.95
+
+ )
+
+
+
+
- Constraint metrics
-
-
-
-
-
-
-
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ Missense
+
+
+
- Synonymous
-
-
+ 0.3
+
+
+
+
+ Z =
+
+
+ 0.57
+
+
+
+ o/e =
- 0.2
+ 0.89
-
-
-
- Z =
+ (
- 0.46
+ 0.8
-
+ -
+
- o/e =
-
- 0.91
-
-
- (
-
- 0.8
-
- -
-
-
- 0.95
-
- )
+ 0.99
-
-
-
+
+
+
+
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
+
+
+
+
+ 1
+
+
+
+
+
+
+ pLoF
+
+
+
- Missense
-
-
+ 0.1
+
+
+
+
+ pLI =
+
+ 0.68
+
+
+
+ o/e =
- 0.3
+ 0.79
-
-
-
- Z =
+ (
- 0.57
-
-
-
- o/e =
-
- 0.89
-
-
- (
-
- 0.8
-
- -
-
-
- 0.99
-
- )
+ 0.6
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
- pLoF
-
-
+ -
+
- 0.1
+ 0.9
-
-
-
- pLI =
-
+
+
+
+
- 0.68
-
-
-
- o/e =
-
- 0.79
-
-
- (
-
- 0.6
-
- -
-
-
- 0.9
-
- )
-
-
-
-
+
+
+
+
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
- ,
-]
+ 1
+
+
+
+
+
+
+
`;
-exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected with a minimal gene has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1" dataset selected with a minimal gene has no unexpected changes 1`] = `
Constraint not available for this
gene
`;
-exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1" dataset selected with a minimal transcript has no unexpected changes 1`] = `
Constraint not available for this
transcript
`;
-exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
Constraint is not available for mitochondrial
@@ -1584,7 +1576,7 @@ exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected with a mit
`;
-exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
Constraint is not available for mitochondrial
@@ -1592,7 +1584,7 @@ exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected with a mit
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected and gene with available constraint has no unexpected changes 1`] = `
[
Constraint is based on the full gnomAD dataset, not the selected subset.
@@ -1980,7 +1972,7 @@ exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected and gene
]
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
[
Constraint is based on the full gnomAD dataset, not the selected subset.
@@ -2347,21 +2339,21 @@ exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected and tran
]
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected with a minimal gene has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected with a minimal gene has no unexpected changes 1`] = `
Constraint not available for this
gene
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected with a minimal transcript has no unexpected changes 1`] = `
Constraint not available for this
transcript
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
Constraint is not available for mitochondrial
@@ -2369,7 +2361,7 @@ exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected with a m
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_controls" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
Constraint is not available for mitochondrial
@@ -2377,7 +2369,7 @@ exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected with a m
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected and gene with available constraint has no unexpected changes 1`] = `
[
Constraint is based on the full gnomAD dataset, not the selected subset.
@@ -2765,7 +2757,7 @@ exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected and gene
]
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
[
Constraint is based on the full gnomAD dataset, not the selected subset.
@@ -3132,21 +3124,21 @@ exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected and trans
]
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected with a minimal gene has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected with a minimal gene has no unexpected changes 1`] = `
Constraint not available for this
gene
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected with a minimal transcript has no unexpected changes 1`] = `
Constraint not available for this
transcript
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
Constraint is not available for mitochondrial
@@ -3154,7 +3146,7 @@ exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected with a mi
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_non_cancer" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
Constraint is not available for mitochondrial
@@ -3162,7 +3154,7 @@ exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected with a mi
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected and gene with available constraint has no unexpected changes 1`] = `
[
Constraint is based on the full gnomAD dataset, not the selected subset.
@@ -3550,7 +3542,7 @@ exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected and gene
]
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
[
Constraint is based on the full gnomAD dataset, not the selected subset.
@@ -3917,21 +3909,1799 @@ exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected and tran
]
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected with a minimal gene has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected with a minimal gene has no unexpected changes 1`] = `
+
+ Constraint not available for this
+ gene
+
+`;
+
+exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+
+ Constraint not available for this
+ transcript
+
+`;
+
+exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+
+ Constraint is not available for mitochondrial
+
+ genes
+
+`;
+
+exports[`ConstraintTable with "gnomad_r2_1_non_neuro" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+
+ Constraint is not available for mitochondrial
+
+ transcripts
+
+`;
+
+exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+[
+
+ Constraint is based on the full gnomAD dataset, not the selected subset.
+
,
+
+
+
+
+
+ Category
+
+
+
+ Expected SNVs
+
+
+
+
+ Observed SNVs
+
+
+
+ Constraint metrics
+
+
+
+
+
+
+
+ Synonymous
+
+
+
+ 0.2
+
+
+
+
+ Z =
+
+
+ 0.46
+
+
+
+ o/e =
+
+ 0.91
+
+
+ (
+
+ 0.8
+
+ -
+
+
+ 0.95
+
+ )
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ Missense
+
+
+
+ 0.3
+
+
+
+
+ Z =
+
+
+ 0.57
+
+
+
+ o/e =
+
+ 0.89
+
+
+ (
+
+ 0.8
+
+ -
+
+
+ 0.99
+
+ )
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ pLoF
+
+
+
+ 0.1
+
+
+
+
+ pLI =
+
+ 0.68
+
+
+
+ o/e =
+
+ 0.79
+
+
+ (
+
+ 0.6
+
+ -
+
+
+ 0.9
+
+ )
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
,
+
+ Constraint metrics based on
+ Ensembl canonical
+ transcript (
+
+ transcript-999
+ .
+ 12.34.5
+
+ ).
+
,
+]
+`;
+
+exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
+[
+
+ Constraint is based on the full gnomAD dataset, not the selected subset.
+
,
+
+
+
+
+
+ Category
+
+
+
+ Expected SNVs
+
+
+
+
+ Observed SNVs
+
+
+
+ Constraint metrics
+
+
+
+
+
+
+
+ Synonymous
+
+
+
+ 0.2
+
+
+
+
+ Z =
+
+
+ 0.46
+
+
+
+ o/e =
+
+ 0.91
+
+
+ (
+
+ 0.8
+
+ -
+
+
+ 0.95
+
+ )
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ Missense
+
+
+
+ 0.3
+
+
+
+
+ Z =
+
+
+ 0.57
+
+
+
+ o/e =
+
+ 0.89
+
+
+ (
+
+ 0.8
+
+ -
+
+
+ 0.99
+
+ )
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ pLoF
+
+
+
+ 0.1
+
+
+
+
+ pLI =
+
+ 0.68
+
+
+
+ o/e =
+
+ 0.79
+
+
+ (
+
+ 0.6
+
+ -
+
+
+ 0.9
+
+ )
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
,
+]
+`;
+
+exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected with a minimal gene has no unexpected changes 1`] = `
+
+ Constraint not available for this
+ gene
+
+`;
+
+exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+
+ Constraint not available for this
+ transcript
+
+`;
+
+exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+
+ Constraint is not available for mitochondrial
+
+ genes
+
+`;
+
+exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+
+ Constraint is not available for mitochondrial
+
+ transcripts
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3" dataset selected with a minimal gene has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_controls_and_biobanks" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_controls_and_biobanks" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_controls_and_biobanks" dataset selected with a minimal gene has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_controls_and_biobanks" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_controls_and_biobanks" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_controls_and_biobanks" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_cancer" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_cancer" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_cancer" dataset selected with a minimal gene has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_cancer" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_cancer" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_cancer" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_neuro" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_neuro" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_neuro" dataset selected with a minimal gene has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_neuro" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_neuro" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_neuro" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_topmed" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_topmed" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_topmed" dataset selected with a minimal gene has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_topmed" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_topmed" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_topmed" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_v2" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_v2" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_v2" dataset selected with a minimal gene has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_v2" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_v2" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r3_non_v2" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+
+ Constraint not yet available for gnomAD v3.
+
+`;
+
+exports[`ConstraintTable with "gnomad_r4" dataset selected and gene with available constraint has no unexpected changes 1`] = `
+[
+
+
+
+
+
+ Category
+
+
+
+ Expected SNVs
+
+
+
+
+ Observed SNVs
+
+
+
+ Constraint metrics
+
+
+
+
+
+
+
+ Synonymous
+
+
+
+ 0.2
+
+
+
+
+ Z =
+
+
+ 0.46
+
+
+
+ o/e =
+
+ 0.91
+
+
+ (
+
+ 0.8
+
+ -
+
+
+ 0.95
+
+ )
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ Missense
+
+
+
+ 0.3
+
+
+
+
+ Z =
+
+
+ 0.57
+
+
+
+ o/e =
+
+ 0.89
+
+
+ (
+
+ 0.8
+
+ -
+
+
+ 0.99
+
+ )
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ pLoF
+
+
+
+ 0.1
+
+
+
+
+ pLI =
+
+ 0.68
+
+
+
+ o/e =
+
+ 0.79
+
+
+ (
+
+ 0.6
+
+ -
+
+
+ 0.9
+
+ )
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
,
+
+ Constraint metrics based on
+ Ensembl canonical
+ transcript (
+
+ transcript-999
+ .
+ 12.34.5
+
+ ).
+
,
+]
+`;
+
+exports[`ConstraintTable with "gnomad_r4" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
+
+
+
+
+
+ Category
+
+
+
+ Expected SNVs
+
+
+
+
+ Observed SNVs
+
+
+
+ Constraint metrics
+
+
+
+
+
+
+
+ Synonymous
+
+
+
+ 0.2
+
+
+
+
+ Z =
+
+
+ 0.46
+
+
+
+ o/e =
+
+ 0.91
+
+
+ (
+
+ 0.8
+
+ -
+
+
+ 0.95
+
+ )
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ Missense
+
+
+
+ 0.3
+
+
+
+
+ Z =
+
+
+ 0.57
+
+
+
+ o/e =
+
+ 0.89
+
+
+ (
+
+ 0.8
+
+ -
+
+
+ 0.99
+
+ )
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ pLoF
+
+
+
+ 0.1
+
+
+
+
+ pLI =
+
+ 0.68
+
+
+
+ o/e =
+
+ 0.79
+
+
+ (
+
+ 0.6
+
+ -
+
+
+ 0.9
+
+ )
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+`;
+
+exports[`ConstraintTable with "gnomad_r4" dataset selected with a minimal gene has no unexpected changes 1`] = `
Constraint not available for this
gene
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected with a minimal transcript has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r4" dataset selected with a minimal transcript has no unexpected changes 1`] = `
Constraint not available for this
transcript
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r4" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
Constraint is not available for mitochondrial
@@ -3939,7 +5709,7 @@ exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected with a m
`;
-exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
+exports[`ConstraintTable with "gnomad_r4" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
Constraint is not available for mitochondrial
@@ -3947,222 +5717,6 @@ exports[`ConstraintTable with "gnomad_r2_1_non_topmed" dataset selected with a m
`;
-exports[`ConstraintTable with "gnomad_r3" dataset selected and gene with available constraint has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3" dataset selected with a minimal gene has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3" dataset selected with a minimal transcript has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_controls_and_biobanks" dataset selected and gene with available constraint has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_controls_and_biobanks" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_controls_and_biobanks" dataset selected with a minimal gene has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_controls_and_biobanks" dataset selected with a minimal transcript has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_controls_and_biobanks" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_controls_and_biobanks" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_cancer" dataset selected and gene with available constraint has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_cancer" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_cancer" dataset selected with a minimal gene has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_cancer" dataset selected with a minimal transcript has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_cancer" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_cancer" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_neuro" dataset selected and gene with available constraint has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_neuro" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_neuro" dataset selected with a minimal gene has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_neuro" dataset selected with a minimal transcript has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_neuro" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_neuro" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_topmed" dataset selected and gene with available constraint has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_topmed" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_topmed" dataset selected with a minimal gene has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_topmed" dataset selected with a minimal transcript has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_topmed" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_topmed" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_v2" dataset selected and gene with available constraint has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_v2" dataset selected and transcript with available constraint has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_v2" dataset selected with a minimal gene has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_v2" dataset selected with a minimal transcript has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_v2" dataset selected with a mitochondrial gene has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
-exports[`ConstraintTable with "gnomad_r3_non_v2" dataset selected with a mitochondrial transcript has no unexpected changes 1`] = `
-
- Constraint not yet available for gnomAD v3.
-
-`;
-
exports[`ConstraintTable with "gnomad_sv_r2_1" dataset selected and gene with available constraint has no unexpected changes 1`] = `
[
diff --git a/browser/src/CopyNumberVariantList/__snapshots__/CopyNumberVariants.spec.tsx.snap b/browser/src/CopyNumberVariantList/__snapshots__/CopyNumberVariants.spec.tsx.snap
new file mode 100644
index 000000000..95933dc4a
--- /dev/null
+++ b/browser/src/CopyNumberVariantList/__snapshots__/CopyNumberVariants.spec.tsx.snap
@@ -0,0 +1,354 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`CopyNumberVariants has no unexpected changes 1`] = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configure table
+
+
+
+
+
+
+
+
+`;
diff --git a/browser/src/CopyNumberVariantPage/__snapshots__/CopyNumberVariantPage.spec.tsx.snap b/browser/src/CopyNumberVariantPage/__snapshots__/CopyNumberVariantPage.spec.tsx.snap
new file mode 100644
index 000000000..e0bdfbf30
--- /dev/null
+++ b/browser/src/CopyNumberVariantPage/__snapshots__/CopyNumberVariantPage.spec.tsx.snap
@@ -0,0 +1,851 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`CopyNumberVariantPage with dataset gnomad_cnv_r4 with variant of type DEL has no unexpected changes 1`] = `
+
+
+
+
+ Copy number variant:
+ 21__DEL
+
+
+
+
+ Dataset
+
+
+
+
+
+
+
+
+ More information
+
+
+
+
+
+
+
+
+
+
+ Filter
+
+
+
+ Pass
+
+
+
+
+
+ Site Count
+
+
+ 123
+
+
+
+
+ Number at Site
+
+
+ 345
+
+
+
+
+ Site Frequency
+
+
+ 0.3565
+
+
+
+
+ Quality score
+
+
+ 99
+
+
+
+
+
+ Size
+
+
+ 333 bp
+
+
+
+
+ Class
+
+
+ deletion
+
+
+
+
+
+
+
+
+ Population Frequencies
+
+
+
+
+
+
+ Population
+
+
+
+
+
+ Site Count
+
+
+
+
+
+
+ Number at Site
+
+
+
+
+
+
+ Site Frequency
+
+
+
+
+
+
+
+
+ Total
+
+
+ 0
+
+
+ 0
+
+
+ 0.000
+
+
+
+
+
+
+`;
+
+exports[`CopyNumberVariantPage with dataset gnomad_cnv_r4 with variant of type DUP has no unexpected changes 1`] = `
+
+
+
+
+ Copy number variant:
+ 21__DUP
+
+
+
+
+ Dataset
+
+
+
+
+
+
+
+
+ More information
+
+
+
+
+
+
+
+
+
+
+ Filter
+
+
+
+ Pass
+
+
+
+
+
+ Site Count
+
+
+ 123
+
+
+
+
+ Number at Site
+
+
+ 345
+
+
+
+
+ Site Frequency
+
+
+ 0.3565
+
+
+
+
+ Quality score
+
+
+ 99
+
+
+
+
+
+ Size
+
+
+ 333 bp
+
+
+
+
+ Class
+
+
+ duplication
+
+
+
+
+
+
+
+
+ Population Frequencies
+
+
+
+
+
+
+ Population
+
+
+
+
+
+ Site Count
+
+
+
+
+
+
+ Number at Site
+
+
+
+
+
+
+ Site Frequency
+
+
+
+
+
+
+
+
+ Total
+
+
+ 0
+
+
+ 0
+
+
+ 0.000
+
+
+
+
+
+
+`;
diff --git a/browser/src/GenePage/GenePage.spec.tsx b/browser/src/GenePage/GenePage.spec.tsx
index 2a77958cf..1f6f83cba 100644
--- a/browser/src/GenePage/GenePage.spec.tsx
+++ b/browser/src/GenePage/GenePage.spec.tsx
@@ -124,6 +124,7 @@ forDatasetsMatching(svRegexp, 'GenePage with SV dataset "%s"', (datasetId) => {
)
expect(tree).toMatchSnapshot()
})
+})
forDatasetsMatching(cnvRegexp, 'GenePage with CNV dataset "%s"', (datasetId) => {
test('has no unexpected changes', () => {
@@ -143,8 +144,8 @@ forDatasetsMatching(svRegexp, 'GenePage with SV dataset "%s"', (datasetId) => {
)
expect(tree).toMatchSnapshot()
})
-
- test('queries the API for region coverage with the correct parameters', async () => {
+
+ test('queries the API for region coverage with the correct parameters', async () => {
const gene = geneFactory.build()
setMockApiResponses({
StructuralVariantsInGene: () => ({
diff --git a/browser/src/GenePage/__snapshots__/GenePage.spec.tsx.snap b/browser/src/GenePage/__snapshots__/GenePage.spec.tsx.snap
index adf955538..df36e4d8b 100644
--- a/browser/src/GenePage/__snapshots__/GenePage.spec.tsx.snap
+++ b/browser/src/GenePage/__snapshots__/GenePage.spec.tsx.snap
@@ -301,7 +301,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
>
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
@@ -713,7 +737,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -918,7 +942,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -958,7 +982,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -998,7 +1022,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -1038,7 +1062,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -1078,7 +1102,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -1118,7 +1142,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -1158,7 +1182,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -1198,7 +1222,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -1238,7 +1262,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -1726,7 +1750,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected ch
>
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
@@ -2138,7 +2186,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected ch
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -2343,7 +2391,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected ch
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -2383,7 +2431,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected ch
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -2423,7 +2471,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected ch
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -2463,7 +2511,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected ch
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -2503,7 +2551,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected ch
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -2543,7 +2591,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected ch
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -2583,7 +2631,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected ch
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -2623,7 +2671,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected ch
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -2663,7 +2711,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected ch
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -3151,7 +3199,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
>
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
@@ -3667,7 +3739,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -3768,7 +3840,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -3808,7 +3880,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -3848,7 +3920,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -3888,7 +3960,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -3928,7 +4000,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -3968,7 +4040,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -4008,7 +4080,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -4048,7 +4120,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -4088,7 +4160,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -5699,7 +5771,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
`;
-exports[`GenePage with non-SV dataset "exac" has no unexpected changes 1`] = `
+exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] = `
- Constraint not available for this
- gene
+ Constraint not yet available for gnomAD v3.
- Viewing full
- gene
- .
-
-
- Zoom in
-
@@ -6546,7 +6606,7 @@ exports[`GenePage with non-SV dataset "exac" has no unexpected changes 1`] = `
}
>
@@ -6972,8 +7032,8 @@ exports[`GenePage with non-SV dataset "exac" has no unexpected changes 1`] = `
stroke="#333"
x1={0}
x2={799}
- y1={190}
- y2={190}
+ y1={200}
+ y2={200}
/>
@@ -7126,39 +7186,16 @@ exports[`GenePage with non-SV dataset "exac" has no unexpected changes 1`] = `
-
- ClinVar variants
-
-
-
- No ClinVar variants found in this gene.
-
-
-
- gnomAD variants
-
-
- No gnomAD variants found.
-
+ No variants found
`;
-exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`] = `
+exports[`GenePage with non-SV dataset "exac" has no unexpected changes 1`] = `
- 10
+ 0.1
@@ -8087,7 +8148,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -8127,7 +8188,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -8167,7 +8228,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -8207,7 +8268,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -8247,7 +8308,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -8287,7 +8348,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -8327,7 +8388,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -8367,7 +8428,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -8407,7 +8468,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -8584,101 +8645,6 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`
-
-
-
-
-
- Regional missense constraint
-
-
-
-
- More information
-
-
-
-
-
-
-
-
-
- This gene was not searched for evidence of regional missense constraint. See our
-
-
-
-
- help page
-
-
-
- for additional information.
-
-
-
-
-
-
-
@@ -8712,7 +8678,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`
`;
-exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected changes 1`] = `
+exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`] = `
- 10
+ 0.1
@@ -9641,7 +9631,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected c
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -9681,7 +9671,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected c
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -9721,7 +9711,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected c
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -9761,7 +9751,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected c
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -9801,7 +9791,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected c
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -9841,7 +9831,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected c
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -9881,7 +9871,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected c
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -9921,7 +9911,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected c
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -9961,7 +9951,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected c
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -10266,7 +10256,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected c
`;
-exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected changes 1`] = `
+exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected changes 1`] = `
- 10
+ 0.1
@@ -11195,7 +11209,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -11235,7 +11249,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -11275,7 +11289,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -11315,7 +11329,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -11355,7 +11369,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -11395,7 +11409,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -11435,7 +11449,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -11475,7 +11489,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -11515,7 +11529,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -11820,7 +11834,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected
`;
-exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected changes 1`] = `
+exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected changes 1`] = `
- 10
+ 0.1
@@ -12749,7 +12787,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -12789,7 +12827,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -12829,7 +12867,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -12869,7 +12907,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -12909,7 +12947,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -12949,7 +12987,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -12989,7 +13027,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -13029,7 +13067,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -13069,7 +13107,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -13374,7 +13412,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected
`;
-exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected changes 1`] = `
+exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected changes 1`] = `
- 10
+ 0.1
@@ -14303,7 +14365,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -14343,7 +14405,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -14383,7 +14445,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -14423,7 +14485,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -14463,7 +14525,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -14503,7 +14565,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -14543,7 +14605,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -14583,7 +14645,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -14623,7 +14685,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -14928,7 +14990,3067 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected
`;
-exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`] = `
+exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected changes 1`] = `
+
+
+
+
+
+ FAKEGENE
+
+
+
+
+
+
+
+
+
+
+
+ Genome build
+
+
+ GRCh37
+ /
+ hg19
+
+
+
+
+ Ensembl gene ID
+
+
+ dummy_gene-1
+ .
+ 5.6.7.8
+
+
+
+
+ Symbol in GENCODE v19
+
+
+
+
+
+
+
+
+
+
+
+ Constraint
+
+
+
+ More information
+
+
+
+
+ Variant co-occurrence
+
+
+
+ More information
+
+
+
+
+
+ Constraint not available for this
+ gene
+
+
+
+
+ Viewing full
+ gene
+ .
+
+
+ Zoom in
+
+
+
+
+
+
+
+
+ Metric:
+
+
+
+ Mean
+
+
+ Median
+
+
+
+
+ Over
+ 1
+
+
+ Over
+ 5
+
+
+ Over
+ 10
+
+
+ Over
+ 15
+
+
+ Over
+ 20
+
+
+ Over
+ 25
+
+
+ Over
+ 30
+
+
+ Over
+ 50
+
+
+ Over
+ 100
+
+
+
+
+
+ Save plot
+
+
+
+
+
+
+ Fraction of individuals with coverage over 30
+
+
+
+
+
+
+
+
+
+
+
+ 0.1
+
+
+
+
+
+
+
+
+
+ 0.2
+
+
+
+
+
+
+
+
+
+ 0.3
+
+
+
+
+
+
+
+
+
+ 0.4
+
+
+
+
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
+
+
+
+ 0.6
+
+
+
+
+
+
+
+
+
+ 0.7
+
+
+
+
+
+
+
+
+
+ 0.8
+
+
+
+
+
+
+
+
+
+ 0.9
+
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Show
+ transcripts
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Regional missense constraint
+
+
+
+
+ More information
+
+
+
+
+
+
+
+
+
+ This gene was not searched for evidence of regional missense constraint. See our
+
+
+
+
+ help page
+
+
+
+ for additional information.
+
+
+
+
+
+
+
+
+
+ ClinVar variants
+
+
+
+ No ClinVar variants found in this gene.
+
+
+
+ gnomAD variants
+
+
+ No gnomAD variants found.
+
+
+
+
+
+`;
+
+exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`] = `
+
+
+
+
+
+ FAKEGENE
+
+
+
+
+
+
+
+
+
+
+
+ Genome build
+
+
+ GRCh37
+ /
+ hg19
+
+
+
+
+ Ensembl gene ID
+
+
+ dummy_gene-1
+ .
+ 5.6.7.8
+
+
+
+
+ Symbol in GENCODE v19
+
+
+
+
+
+
+
+
+
+
+
+ Constraint
+
+
+
+ More information
+
+
+
+
+ Variant co-occurrence
+
+
+
+ More information
+
+
+
+
+
+ Constraint not yet available for gnomAD v3.
+
+
+
+
+ Viewing full
+ gene
+ .
+
+
+ Zoom in
+
+
+
+
+
+
+
+
+ Metric:
+
+
+
+ Mean
+
+
+ Median
+
+
+
+
+ Over
+ 1
+
+
+ Over
+ 5
+
+
+ Over
+ 10
+
+
+ Over
+ 15
+
+
+ Over
+ 20
+
+
+ Over
+ 25
+
+
+ Over
+ 30
+
+
+ Over
+ 50
+
+
+ Over
+ 100
+
+
+
+
+
+ Save plot
+
+
+
+
+
+
+ Fraction of individuals with coverage over 30
+
+
+
+
+
+
+
+
+
+
+
+ 0.1
+
+
+
+
+
+
+
+
+
+ 0.2
+
+
+
+
+
+
+
+
+
+ 0.3
+
+
+
+
+
+
+
+
+
+ 0.4
+
+
+
+
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
+
+
+
+ 0.6
+
+
+
+
+
+
+
+
+
+ 0.7
+
+
+
+
+
+
+
+
+
+ 0.8
+
+
+
+
+
+
+
+
+
+ 0.9
+
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Show
+ transcripts
+
+
+
+
+
+
+
+
+
+
+ ClinVar variants
+
+
+
+ No ClinVar variants found in this gene.
+
+
+
+ gnomAD variants
+
+
+ No gnomAD variants found.
+
+
+
+
+
+`;
+
+exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no unexpected changes 1`] = `
@@ -14968,12 +18090,12 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
- gnomAD v3.1.2
+ gnomAD v3.1.2 (controls/biobanks)
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
@@ -15651,7 +18797,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -15856,7 +19002,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -15896,7 +19042,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -15936,7 +19082,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -15976,7 +19122,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -16016,7 +19162,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -16056,7 +19202,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -16096,7 +19242,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -16136,7 +19282,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -16176,7 +19322,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -16386,7 +19532,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
`;
-exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no unexpected changes 1`] = `
+exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected changes 1`] = `
- 10
+ 0.1
@@ -17314,7 +20484,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no u
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -17354,7 +20524,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no u
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -17394,7 +20564,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no u
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -17434,7 +20604,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no u
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -17474,7 +20644,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no u
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -17514,7 +20684,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no u
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -17554,7 +20724,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no u
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -17594,7 +20764,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no u
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -17634,7 +20804,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no u
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -17844,7 +21014,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no u
`;
-exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected changes 1`] = `
+exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected changes 1`] = `
@@ -17884,12 +21054,12 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
- gnomAD v3.1.2 (non-cancer)
+ gnomAD v3.1.2 (non-neuro)
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
@@ -18567,7 +21761,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -18772,7 +21966,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -18812,7 +22006,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -18852,7 +22046,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -18892,7 +22086,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -18932,7 +22126,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -18972,7 +22166,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -19012,7 +22206,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -19052,7 +22246,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -19092,7 +22286,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -19302,7 +22496,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
`;
-exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected changes 1`] = `
+exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected changes 1`] = `
@@ -19342,12 +22536,12 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
- gnomAD v3.1.2 (non-neuro)
+ gnomAD v3.1.2 (non-TOPMed)
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
@@ -20025,7 +23243,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -20230,7 +23448,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -20270,7 +23488,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -20310,7 +23528,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -20350,7 +23568,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -20390,7 +23608,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -20430,7 +23648,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -20470,7 +23688,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -20510,7 +23728,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -20550,7 +23768,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -20760,7 +23978,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
`;
-exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected changes 1`] = `
+exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected changes 1`] = `
@@ -20800,12 +24018,12 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
- gnomAD v3.1.2 (non-TOPMed)
+ gnomAD v3.1.2 (non-v2)
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
@@ -21483,7 +24725,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -21688,7 +24930,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -21728,7 +24970,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -21768,7 +25010,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -21808,7 +25050,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -21848,7 +25090,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -21888,7 +25130,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -21928,7 +25170,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -21968,7 +25210,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -22008,7 +25250,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -22218,7 +25460,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
`;
-exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected changes 1`] = `
+exports[`GenePage with non-SV dataset "gnomad_r4" has no unexpected changes 1`] = `
- Constraint not yet available for gnomAD v3.
+ Constraint not available for this
+ gene
@@ -22941,7 +26184,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected chang
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -23146,7 +26389,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected chang
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -23186,7 +26429,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected chang
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -23226,7 +26469,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected chang
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -23266,7 +26509,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected chang
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -23306,7 +26549,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected chang
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -23346,7 +26589,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected chang
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -23386,7 +26629,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected chang
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -23426,7 +26669,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected chang
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -23466,7 +26709,7 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected chang
dy="0em"
x={-8}
>
- 100
+ 1.0
diff --git a/browser/src/GenePage/__snapshots__/VariantCooccurrenceCountsTable.spec.tsx.snap b/browser/src/GenePage/__snapshots__/VariantCooccurrenceCountsTable.spec.tsx.snap
index d9a796fb8..183801efc 100644
--- a/browser/src/GenePage/__snapshots__/VariantCooccurrenceCountsTable.spec.tsx.snap
+++ b/browser/src/GenePage/__snapshots__/VariantCooccurrenceCountsTable.spec.tsx.snap
@@ -1994,6 +1994,14 @@ exports[`VariantCoocurrenceCountsTable with non v2 dataset "exac" has no unexpec
`;
+exports[`VariantCoocurrenceCountsTable with non v2 dataset "gnomad_cnv_r4" has no unexpected changes and renders as placeholder text 1`] = `
+
+
+ Variant co-occurrence is only available for gnomAD v2.
+
+
+`;
+
exports[`VariantCoocurrenceCountsTable with non v2 dataset "gnomad_r3" has no unexpected changes and renders as placeholder text 1`] = `
diff --git a/browser/src/MitochondrialVariantPage/__snapshots__/MitochondrialVariantPage.spec.tsx.snap b/browser/src/MitochondrialVariantPage/__snapshots__/MitochondrialVariantPage.spec.tsx.snap
index 14e3d777c..d7b6836ac 100644
--- a/browser/src/MitochondrialVariantPage/__snapshots__/MitochondrialVariantPage.spec.tsx.snap
+++ b/browser/src/MitochondrialVariantPage/__snapshots__/MitochondrialVariantPage.spec.tsx.snap
@@ -18,97 +18,7 @@ exports[`MitochondrialVariantPage with dataset exac has no unexpected changes 1`
`;
-exports[`MitochondrialVariantPage with dataset gnomad_r2_1 has no unexpected changes 1`] = `
-
-`;
-
-exports[`MitochondrialVariantPage with dataset gnomad_r2_1_controls has no unexpected changes 1`] = `
-
-`;
-
-exports[`MitochondrialVariantPage with dataset gnomad_r2_1_non_cancer has no unexpected changes 1`] = `
-
-`;
-
-exports[`MitochondrialVariantPage with dataset gnomad_r2_1_non_neuro has no unexpected changes 1`] = `
-
-`;
-
-exports[`MitochondrialVariantPage with dataset gnomad_r2_1_non_topmed has no unexpected changes 1`] = `
-
-`;
-
-exports[`MitochondrialVariantPage with dataset gnomad_r3 has no unexpected changes 1`] = `
+exports[`MitochondrialVariantPage with dataset gnomad_cnv_r4 has no unexpected changes 1`] = `
@@ -143,7 +53,7 @@ exports[`MitochondrialVariantPage with dataset gnomad_r3 has no unexpected chang
className="DatasetSelector__NavigationMenuWrapper-sc-1p2fxbn-0 ebZvwy"
>
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
`;
-exports[`MitochondrialVariantPage with dataset gnomad_r3_controls_and_biobanks has no unexpected changes 1`] = `
+exports[`MitochondrialVariantPage with dataset gnomad_r2_1 has no unexpected changes 1`] = `
+
+`;
+
+exports[`MitochondrialVariantPage with dataset gnomad_r2_1_controls has no unexpected changes 1`] = `
+
+`;
+
+exports[`MitochondrialVariantPage with dataset gnomad_r2_1_non_cancer has no unexpected changes 1`] = `
+
+`;
+
+exports[`MitochondrialVariantPage with dataset gnomad_r2_1_non_neuro has no unexpected changes 1`] = `
+
+`;
+
+exports[`MitochondrialVariantPage with dataset gnomad_r2_1_non_topmed has no unexpected changes 1`] = `
+
+`;
+
+exports[`MitochondrialVariantPage with dataset gnomad_r3 has no unexpected changes 1`] = `
+
+
+
+
+ Single nucleotide variant
+ :
+
+ M-123-A-C
+ (GRCh38)
+
+
+
+
+
+
+
+
+
+
+
+ Filters
+
+
+
+
+ Pass
+
+
+
+
+
+
+ Allele Number
+
+
+
+ 0
+
+
+
+
+
+ Homoplasmic AC
+
+
+
+ 0
+
+
+
+
+
+ Homoplasmic AF
+
+
+
+ 0
+
+
+
+
+
+ Heteroplasmic AC
+
+
+
+ 0
+
+
+
+
+
+ Heteroplasmic AF
+
+
+
+ 0
+
+
+
+
+
+ Max Observed Heteroplasmy
+
+
+
+ 0.1000
+
+
+
+
+
+ Excluded Allele Count
+
+
+
+
+
+
+
+ Haplogroup Defining
+
+
+
+ No
+
+
+
+
+
+
+
+
+ Population Frequencies
+
+
+
+
+
+
+ Population
+
+
+
+
+
+ Allele Number
+
+
+
+
+
+
+ Homoplasmic AC
+
+
+
+
+
+
+ Homoplasmic AF
+
+
+
+
+
+
+ Heteroplasmic AC
+
+
+
+
+
+
+ Heteroplasmic AF
+
+
+
+
+
+
+
+
+
+ Total
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 0.000
+
+
+
+ 0
+
+
+
+ 0.000
+
+
+
+
+
+
+
+ Haplogroup Frequencies
+
+
+
+ More information
+
+
+
+
+
+
+
+
+
+
+ Haplogroup
+
+
+
+
+
+ Allele Number
+
+
+
+
+
+
+ Homoplasmic AC
+
+
+
+
+
+
+ Homoplasmic AF
+
+
+
+
+
+
+ Heteroplasmic AC
+
+
+
+
+
+
+ Heteroplasmic AF
+
+
+
+
+
+
+
+
+
+ Total
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 0.000
+
+
+
+ 0
+
+
+
+ 0.000
+
+
+
+
+
+
+ Include haplogroups with allele count of 0
+
+
+
+
+
+
+
+ Heteroplasmy Distribution
+
+
+
+
+
+
+
+
+
+
+ Heteroplasmy level
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+ 20
+
+
+
+
+
+
+
+
+
+ 30
+
+
+
+
+
+
+
+
+
+ 40
+
+
+
+
+
+
+
+
+
+ 50
+
+
+
+
+
+
+
+
+
+ 60
+
+
+
+
+
+
+
+
+
+ 70
+
+
+
+
+
+
+
+
+
+ 80
+
+
+
+
+
+
+
+
+
+ 90
+
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+
+
+ Individuals
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Age Distribution
+
+
+
+ More information
+
+
+
+
+
+
+
+
+
+
+
+ Variant carriers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ All individuals
+
+
+
+
+
+
+
+
+
+
+
+
+ < 30
+
+
+
+
+
+
+
+
+
+ 30-35
+
+
+
+
+
+
+
+
+
+ 35-40
+
+
+
+
+
+
+
+
+
+ 40-45
+
+
+
+
+
+
+
+
+
+ 45-50
+
+
+
+
+
+
+
+
+
+ 50-55
+
+
+
+
+
+
+
+
+
+ 55-60
+
+
+
+
+
+
+
+
+
+ 60-65
+
+
+
+
+
+
+
+
+
+ 65-70
+
+
+
+
+
+
+
+
+
+ 70-75
+
+
+
+
+
+
+
+
+
+ 75-80
+
+
+
+
+
+
+
+
+
+ > 80
+
+
+
+
+
+
+
+
+ Age
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 20
+
+
+
+
+
+
+
+
+
+ 40
+
+
+
+
+
+
+
+
+
+ 60
+
+
+
+
+
+
+
+
+
+ 80
+
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+
+
+
+ 120
+
+
+
+
+
+
+
+
+
+ 140
+
+
+
+
+
+
+
+
+
+ 160
+
+
+
+
+
+
+
+
+
+ 180
+
+
+
+
+
+
+
+
+
+ 200
+
+
+
+
+
+
+
+
+ Variant carriers
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 500
+
+
+
+
+
+
+
+
+
+ 1.00K
+
+
+
+
+
+
+
+
+
+ 1.50K
+
+
+
+
+
+
+
+
+
+ 2.00K
+
+
+
+
+
+
+
+
+
+ 2.50K
+
+
+
+
+
+
+
+
+
+ 3.00K
+
+
+
+
+
+
+
+
+
+ 3.50K
+
+
+
+
+
+
+
+
+ All individuals
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Genotype Quality Metrics
+
+
+
+
+
+
+
+
+
+
+
+
+ Variant carriers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ All individuals
+
+
+
+
+
+
+
+
+
+
+
+
+ > 0.5
+
+
+
+
+
+
+
+
+ Depth
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+ 20
+
+
+
+
+
+
+
+
+
+ 30
+
+
+
+
+
+
+
+
+
+ 40
+
+
+
+
+
+
+
+
+
+ 50
+
+
+
+
+
+
+
+
+
+ 60
+
+
+
+
+
+
+
+
+
+ 70
+
+
+
+
+
+
+
+
+
+ 80
+
+
+
+
+
+
+
+
+
+ 90
+
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+
+
+ Variant carriers
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+ 20
+
+
+
+
+
+
+
+
+
+ 30
+
+
+
+
+
+
+
+
+
+ 40
+
+
+
+
+
+
+
+
+
+ 50
+
+
+
+
+
+
+
+
+
+ 60
+
+
+
+
+
+
+
+
+
+ 70
+
+
+
+
+
+
+
+
+
+ 80
+
+
+
+
+
+
+
+
+
+ 90
+
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+
+
+ All individuals
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compare to all individuals
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Heteroplasmy level
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+ 20
+
+
+
+
+
+
+
+
+
+ 30
+
+
+
+
+
+
+
+
+
+ 40
+
+
+
+
+
+
+
+
+
+ 50
+
+
+
+
+
+
+
+
+
+ 60
+
+
+
+
+
+
+
+
+
+ 70
+
+
+
+
+
+
+
+
+
+ 80
+
+
+
+
+
+
+
+
+
+ 90
+
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+
+
+ Individuals failing filter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Filter:
+
+
+ Dummy Genotype Quality Filter
+ (
+ 100
+ individuals failing)
+
+
+
+
+
+ Note: This plot may include low-quality genotypes that were excluded from allele counts in the tables above.
+
+
+ More information.
+
+
+
+
+
+
+
+
+
+ Site Quality Metrics
+
+
+
+
+
+
+
+ Metric distribution
+
+
+
+
+
+
+ All metric values
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 200
+
+
+
+
+
+
+
+
+
+ 400
+
+
+
+
+
+
+
+
+
+ 600
+
+
+
+
+
+
+
+
+
+ 800
+
+
+
+
+
+
+
+
+
+ 1000
+
+
+
+
+
+
+
+
+
+ 1200
+
+
+
+
+
+
+
+
+
+ 1400
+
+
+
+
+
+
+
+
+
+ 1600
+
+
+
+
+
+
+
+
+
+ 1800
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+
+
+
+
+
+ 2200
+
+
+
+
+
+
+
+
+
+ 2400
+
+
+
+
+
+
+
+
+
+ 2600
+
+
+
+
+
+
+
+
+
+ 2800
+
+
+
+
+
+
+
+
+
+ 3000
+
+
+
+
+
+
+
+
+
+ 3200
+
+
+
+
+
+
+
+
+
+ 3400
+
+
+
+
+
+
+
+
+
+ 3600
+
+
+
+
+
+
+
+
+
+ 3800
+
+
+
+
+
+
+
+
+
+ 4000
+
+
+
+
+
+
+
+
+ Mean Depth
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 500
+
+
+
+
+
+
+
+
+
+ 1.00K
+
+
+
+
+
+
+
+
+
+ 1.50K
+
+
+
+
+
+
+
+
+
+ 2.00K
+
+
+
+
+
+
+
+
+
+ 2.50K
+
+
+
+
+
+
+
+
+
+ 3.00K
+
+
+
+
+
+
+
+
+
+ 3.50K
+
+
+
+
+
+
+
+
+
+ 4.00K
+
+
+
+
+
+
+
+
+
+ 4.50K
+
+
+
+
+
+
+
+
+
+ 5.00K
+
+
+
+
+
+
+
+
+ Variants
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Metric:
+
+
+ Mean Depth
+ (
+ 0
+ )
+
+
+
+
+
+
+
+
+
+
+
+ Metric
+
+
+ Value
+
+
+
+
+
+
+ Mean Depth
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+ Read Data
+
+
+ Read data is not yet available for mitochondrial variants.
+
+
+
+`;
+
+exports[`MitochondrialVariantPage with dataset gnomad_r3_controls_and_biobanks has no unexpected changes 1`] = `
+
+
+
+
+
+
+
+ Filters
+
+
+
+
+ Pass
+
+
+
+
+
+
+ Allele Number
+
+
+
+ 0
+
+
+
+
+
+ Homoplasmic AC
+
+
+
+ 0
+
+
+
+
+
+ Homoplasmic AF
+
+
+
+ 0
+
+
+
+
+
+ Heteroplasmic AC
+
+
+
+ 0
+
+
+
+
+
+ Heteroplasmic AF
+
+
+
+ 0
+
+
+
+
+
+ Max Observed Heteroplasmy
+
+
+
+ 0.1000
+
+
+
+
+
+ Excluded Allele Count
+
+
+
+
+
+
+
+ Haplogroup Defining
+
+
+
+ No
+
+
+
+
+
+
+
+
+ Population Frequencies
+
+
+
+
+
+
+ Population
+
+
+
+
+
+ Allele Number
+
+
+
+
+
+
+ Homoplasmic AC
+
+
+
+
+
+
+ Homoplasmic AF
+
+
+
+
+
+
+ Heteroplasmic AC
+
+
+
+
+
+
+ Heteroplasmic AF
+
+
+
+
+
+
+
+
+
+ Total
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 0.000
+
+
+
+ 0
+
+
+
+ 0.000
+
+
+
+
+
+
+
+ Haplogroup Frequencies
+
+
+
+ More information
+
+
+
+
+
+
+
+
+
+
+ Haplogroup
+
+
+
+
+
+ Allele Number
+
+
+
+
+
+
+ Homoplasmic AC
+
+
+
+
+
+
+ Homoplasmic AF
+
+
+
+
+
+
+ Heteroplasmic AC
+
+
+
+
+
+
+ Heteroplasmic AF
+
+
+
+
+
+
+
+
+
+ Total
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+ 0.000
+
+
+
+ 0
+
+
+
+ 0.000
+
+
+
+
+
+
+ Include haplogroups with allele count of 0
+
+
+
+
+
+
+
+ Heteroplasmy Distribution
+
+
+
+
+
+
+
+
+
+
+ Heteroplasmy level
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+ 20
+
+
+
+
+
+
+
+
+
+ 30
+
+
+
+
+
+
+
+
+
+ 40
+
+
+
+
+
+
+
+
+
+ 50
+
+
+
+
+
+
+
+
+
+ 60
+
+
+
+
+
+
+
+
+
+ 70
+
+
+
+
+
+
+
+
+
+ 80
+
+
+
+
+
+
+
+
+
+ 90
+
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+
+
+ Individuals
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Age Distribution
+
+
+
+ More information
+
+
+
+
+
+
+
+
+
+
+
+ Variant carriers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ All individuals
+
+
+
+
+
+
+
+
+
+
+
+
+ < 30
+
+
+
+
+
+
+
+
+
+ 30-35
+
+
+
+
+
+
+
+
+
+ 35-40
+
+
+
+
+
+
+
+
+
+ 40-45
+
+
+
+
+
+
+
+
+
+ 45-50
+
+
+
+
+
+
+
+
+
+ 50-55
+
+
+
+
+
+
+
+
+
+ 55-60
+
+
+
+
+
+
+
+
+
+ 60-65
+
+
+
+
+
+
+
+
+
+ 65-70
+
+
+
+
+
+
+
+
+
+ 70-75
+
+
+
+
+
+
+
+
+
+ 75-80
+
+
+
+
+
+
+
+
+
+ > 80
+
+
+
+
+
+
+
+
+ Age
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 20
+
+
+
+
+
+
+
+
+
+ 40
+
+
+
+
+
+
+
+
+
+ 60
+
+
+
+
+
+
+
+
+
+ 80
+
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+
+
+
+ 120
+
+
+
+
+
+
+
+
+
+ 140
+
+
+
+
+
+
+
+
+
+ 160
+
+
+
+
+
+
+
+
+
+ 180
+
+
+
+
+
+
+
+
+
+ 200
+
+
+
+
+
+
+
+
+ Variant carriers
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 500
+
+
+
+
+
+
+
+
+
+ 1.00K
+
+
+
+
+
+
+
+
+
+ 1.50K
+
+
+
+
+
+
+
+
+
+ 2.00K
+
+
+
+
+
+
+
+
+
+ 2.50K
+
+
+
+
+
+
+
+
+
+ 3.00K
+
+
+
+
+
+
+
+
+
+ 3.50K
+
+
+
+
+
+
+
+
+ All individuals
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Genotype Quality Metrics
+
+
+
+
+
+
+
+
+
+
+
+
+ Variant carriers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ All individuals
+
+
+
+
+
+
+
+
+
+
+
+
+ > 0.5
+
+
+
+
+
+
+
+
+ Depth
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+ 20
+
+
+
+
+
+
+
+
+
+ 30
+
+
+
+
+
+
+
+
+
+ 40
+
+
+
+
+
+
+
+
+
+ 50
+
+
+
+
+
+
+
+
+
+ 60
+
+
+
+
+
+
+
+
+
+ 70
+
+
+
+
+
+
+
+
+
+ 80
+
+
+
+
+
+
+
+
+
+ 90
+
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+
+
+ Variant carriers
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+ 20
+
+
+
+
+
+
+
+
+
+ 30
+
+
+
+
+
+
+
+
+
+ 40
+
+
+
+
+
+
+
+
+
+ 50
+
+
+
+
+
+
+
+
+
+ 60
+
+
+
+
+
+
+
+
+
+ 70
+
+
+
+
+
+
+
+
+
+ 80
+
+
+
+
+
+
+
+
+
+ 90
+
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+
+
+ All individuals
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compare to all individuals
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Heteroplasmy level
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+ 20
+
+
+
+
+
+
+
+
+
+ 30
+
+
+
+
+
+
+
+
+
+ 40
+
+
+
+
+
+
+
+
+
+ 50
+
+
+
+
+
+
+
+
+
+ 60
+
+
+
+
+
+
+
+
+
+ 70
+
+
+
+
+
+
+
+
+
+ 80
+
+
+
+
+
+
+
+
+
+ 90
+
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+
+
+ Individuals failing filter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Filter:
+
+
+ Dummy Genotype Quality Filter
+ (
+ 100
+ individuals failing)
+
+
+
+
+
+ Note: This plot may include low-quality genotypes that were excluded from allele counts in the tables above.
+
+
+ More information.
+
+
+
+
+
+
+
+
+
+ Site Quality Metrics
+
+
+
+
+
+
+
+ Metric distribution
+
+
+
+
+
+
+ All metric values
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 200
+
+
+
+
+
+
+
+
+
+ 400
+
+
+
+
+
+
+
+
+
+ 600
+
+
+
+
+
+
+
+
+
+ 800
+
+
+
+
+
+
+
+
+
+ 1000
+
+
+
+
+
+
+
+
+
+ 1200
+
+
+
+
+
+
+
+
+
+ 1400
+
+
+
+
+
+
+
+
+
+ 1600
+
+
+
+
+
+
+
+
+
+ 1800
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+
+
+
+
+
+ 2200
+
+
+
+
+
+
+
+
+
+ 2400
+
+
+
+
+
+
+
+
+
+ 2600
+
+
+
+
+
+
+
+
+
+ 2800
+
+
+
+
+
+
+
+
+
+ 3000
+
+
+
+
+
+
+
+
+
+ 3200
+
+
+
+
+
+
+
+
+
+ 3400
+
+
+
+
+
+
+
+
+
+ 3600
+
+
+
+
+
+
+
+
+
+ 3800
+
+
+
+
+
+
+
+
+
+ 4000
+
+
+
+
+
+
+
+
+ Mean Depth
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ 500
+
+
+
+
+
+
+
+
+
+ 1.00K
+
+
+
+
+
+
+
+
+
+ 1.50K
+
+
+
+
+
+
+
+
+
+ 2.00K
+
+
+
+
+
+
+
+
+
+ 2.50K
+
+
+
+
+
+
+
+
+
+ 3.00K
+
+
+
+
+
+
+
+
+
+ 3.50K
+
+
+
+
+
+
+
+
+
+ 4.00K
+
+
+
+
+
+
+
+
+
+ 4.50K
+
+
+
+
+
+
+
+
+
+ 5.00K
+
+
+
+
+
+
+
+
+ Variants
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Metric:
+
+
+ Mean Depth
+ (
+ 0
+ )
+
+
+
+
+
+
+
+
+
+
+
+ Metric
+
+
+ Value
+
+
+
+
+
+
+ Mean Depth
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+ Read Data
+
+
+ Read data is not yet available for mitochondrial variants.
+
+
+
+`;
+
+exports[`MitochondrialVariantPage with dataset gnomad_r3_non_cancer has no unexpected changes 1`] = `
+
+
+
+
+ Single nucleotide variant
+ :
+
+ M-123-A-C
+ (GRCh38)
+
+
+
+
+
+ Dataset
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
`;
-exports[`MitochondrialVariantPage with dataset gnomad_r3_non_cancer has no unexpected changes 1`] = `
+exports[`MitochondrialVariantPage with dataset gnomad_r3_non_neuro has no unexpected changes 1`] = `
@@ -16270,12 +32896,12 @@ exports[`MitochondrialVariantPage with dataset gnomad_r3_non_cancer has no unexp
- gnomAD v3.1.2 (non-cancer)
+ gnomAD v3.1.2 (non-neuro)
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
`;
-exports[`MitochondrialVariantPage with dataset gnomad_r3_non_neuro has no unexpected changes 1`] = `
+exports[`MitochondrialVariantPage with dataset gnomad_r3_non_topmed has no unexpected changes 1`] = `
@@ -24331,12 +41083,12 @@ exports[`MitochondrialVariantPage with dataset gnomad_r3_non_neuro has no unexpe
- gnomAD v3.1.2 (non-neuro)
+ gnomAD v3.1.2 (non-TOPMed)
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
`;
-exports[`MitochondrialVariantPage with dataset gnomad_r3_non_topmed has no unexpected changes 1`] = `
+exports[`MitochondrialVariantPage with dataset gnomad_r3_non_v2 has no unexpected changes 1`] = `
@@ -32392,12 +49270,12 @@ exports[`MitochondrialVariantPage with dataset gnomad_r3_non_topmed has no unexp
- gnomAD v3.1.2 (non-TOPMed)
+ gnomAD v3.1.2 (non-v2)
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
`;
-exports[`MitochondrialVariantPage with dataset gnomad_r3_non_v2 has no unexpected changes 1`] = `
+exports[`MitochondrialVariantPage with dataset gnomad_r4 has no unexpected changes 1`] = `
+`;
+
+exports[`ReadData with "gnomad_cnv_r4" dataset selected has no unexpected changes with exome data present 1`] = `
+.c2 {
+ box-sizing: border-box;
+ height: calc(2em + 2px);
+ padding: 0.375em 0.75em;
+ border-color: #6c757d;
+ border-style: solid;
+ border-width: 1px;
+ border-radius: 0.5em;
+ background-color: #f8f9fa;
+ cursor: pointer;
+ font-size: 1em;
+ line-height: 1.25;
+ outline: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.c2:active,
+.c2:hover {
+ background-color: #cbd3da;
+}
+
+.c2:disabled {
+ background-color: rgba(248,249,250,0.5);
+ cursor: not-allowed;
+}
+
+.c2:focus {
+ box-shadow: 0 0 0 0.2em rgba(108,117,125,0.5);
+}
+
+.c2 svg {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c0 {
+ color: #1173bb;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c0:visited,
+.c0:active {
+ color: #1173bb;
+}
+
+.c0:focus,
+.c0:hover {
+ -webkit-text-decoration: underline;
+ text-decoration: underline;
+}
+
+.c1 {
+ padding-right: 80px;
+ margin-top: 1em;
+ text-align: center;
+}
+
+.c1 strong {
+ display: inline-block;
+ width: 80px;
+ text-align: right;
+}
+
+.c1 button {
+ margin-left: 2em;
+}
+
+@media (max-width:500px) {
+ .c1 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ padding-right: 0;
+ }
+
+ .c1 strong {
+ width: auto;
+ margin-bottom: 0.5em;
+ }
+
+ .c1 button {
+ margin-left: 0 !important;
+ }
+
+ .c1 button:last-child {
+ margin-top: 1em;
+ }
+}
+
+
+
+ This interactive
+
+
+ IGV.js
+
+ visualization shows reads that went into calling this variant. Reads may not be available for every sample carrying this variant.
+
+
+ These are reassembled reads produced by
+
+
+ GATK HaplotypeCaller --bamOutput
+
+ , so they accurately represent what HaplotypeCaller was seeing when it called this variant.
+
+
+
+ Exomes:
+
+
+ Load +1
+ het
+
+
+ Load +1
+ hom
+
+
+
+
+ Load all
+
+
+
+`;
+
+exports[`ReadData with "gnomad_cnv_r4" dataset selected queries against the correct dataset 1`] = `
+"
+ query ReadData {
+ variant_0: variantReads(dataset: gnomad_cnv_r4, variantId: "123-45-A-G") {
+ exome {
+ bamPath
+ category
+ indexPath
+ readGroup
+ }
+ genome {
+ bamPath
+ category
+ indexPath
+ readGroup
+ }
+ }
+ }
+ "
+`;
+
exports[`ReadData with "gnomad_r2_1" dataset selected has no unexpected changes with exome and genome data both missing 1`] = `
.c0 {
position: relative;
@@ -2844,6 +3049,211 @@ exports[`ReadData with "gnomad_r3_non_v2" dataset selected queries against the c
"
`;
+exports[`ReadData with "gnomad_r4" dataset selected has no unexpected changes with exome and genome data both missing 1`] = `
+
+
+ No read data available for this variant.
+
+
+`;
+
+exports[`ReadData with "gnomad_r4" dataset selected has no unexpected changes with exome data present 1`] = `
+.c2 {
+ box-sizing: border-box;
+ height: calc(2em + 2px);
+ padding: 0.375em 0.75em;
+ border-color: #6c757d;
+ border-style: solid;
+ border-width: 1px;
+ border-radius: 0.5em;
+ background-color: #f8f9fa;
+ cursor: pointer;
+ font-size: 1em;
+ line-height: 1.25;
+ outline: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.c2:active,
+.c2:hover {
+ background-color: #cbd3da;
+}
+
+.c2:disabled {
+ background-color: rgba(248,249,250,0.5);
+ cursor: not-allowed;
+}
+
+.c2:focus {
+ box-shadow: 0 0 0 0.2em rgba(108,117,125,0.5);
+}
+
+.c2 svg {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c0 {
+ color: #1173bb;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c0:visited,
+.c0:active {
+ color: #1173bb;
+}
+
+.c0:focus,
+.c0:hover {
+ -webkit-text-decoration: underline;
+ text-decoration: underline;
+}
+
+.c1 {
+ padding-right: 80px;
+ margin-top: 1em;
+ text-align: center;
+}
+
+.c1 strong {
+ display: inline-block;
+ width: 80px;
+ text-align: right;
+}
+
+.c1 button {
+ margin-left: 2em;
+}
+
+@media (max-width:500px) {
+ .c1 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ padding-right: 0;
+ }
+
+ .c1 strong {
+ width: auto;
+ margin-bottom: 0.5em;
+ }
+
+ .c1 button {
+ margin-left: 0 !important;
+ }
+
+ .c1 button:last-child {
+ margin-top: 1em;
+ }
+}
+
+
+
+ This interactive
+
+
+ IGV.js
+
+ visualization shows reads that went into calling this variant. Reads may not be available for every sample carrying this variant.
+
+
+ These are reassembled reads produced by
+
+
+ GATK HaplotypeCaller --bamOutput
+
+ , so they accurately represent what HaplotypeCaller was seeing when it called this variant.
+
+
+
+ Exomes:
+
+
+ Load +1
+ het
+
+
+ Load +1
+ hom
+
+
+
+
+ Load all
+
+
+
+`;
+
+exports[`ReadData with "gnomad_r4" dataset selected queries against the correct dataset 1`] = `
+"
+ query ReadData {
+ variant_0: variantReads(dataset: gnomad_r4, variantId: "123-45-A-G") {
+ exome {
+ bamPath
+ category
+ indexPath
+ readGroup
+ }
+ genome {
+ bamPath
+ category
+ indexPath
+ readGroup
+ }
+ }
+ }
+ "
+`;
+
exports[`ReadData with "gnomad_sv_r2_1" dataset selected has no unexpected changes with exome and genome data both missing 1`] = `
diff --git a/browser/src/RegionPage/CopyNumberVariantsRegionCoverageTrack.tsx b/browser/src/RegionPage/CopyNumberVariantsRegionCoverageTrack.tsx
new file mode 100644
index 000000000..98bd579be
--- /dev/null
+++ b/browser/src/RegionPage/CopyNumberVariantsRegionCoverageTrack.tsx
@@ -0,0 +1,78 @@
+import React from 'react'
+
+import {
+ DatasetId,
+ labelForDataset,
+ referenceGenome,
+ hasMitochondrialGenomeCoverage,
+} from '@gnomad/dataset-metadata/metadata'
+import CoverageTrack from '../CoverageTrack'
+import Query from '../Query'
+import StatusMessage from '../StatusMessage'
+
+const operationName = 'CopyNumberVariantsCoverageInRegion'
+const query = `
+query ${operationName}($start: Int!, $stop: Int!, $datasetId: DatasetId!, $referenceGenome: ReferenceGenomeId!) {
+ region(chrom: $chrom, start: $start, stop: $stop, reference_genome: $referenceGenome) {
+ copy_number_variants_coverage(dataset: $datasetId) {
+ xpos
+ percent_callable
+ }
+ }
+}
+`
+
+type Props = {
+ datasetId: DatasetId
+ chrom: number
+ start: number
+ stop: number
+}
+
+const CopyNumberVariantsRegionCoverageTrack = ({ datasetId, chrom, start, stop }: Props) => {
+ if (!hasMitochondrialGenomeCoverage(datasetId)) {
+ return (
+
+ Copy Number Variant exome coverage is not available in {labelForDataset(datasetId)}
+
+ )
+ }
+
+ return (
+ {
+ return data.region && data.region.copy_number_variant_coverage
+ }}
+ >
+ {({ data }: any) => {
+ const coverage = [
+ {
+ color: 'rgb(115, 171, 61)',
+ buckets: data.region.copy_number_variant_coverage,
+ name: 'copy number variant coverage', // TODO
+ opacity: 0.7,
+ },
+ ]
+
+ return (
+ // @ts-expect-error TS(2769) FIXME: No overload matches this call.
+ `${chrom}-${start}-${stop}_coverage`}
+ height={190}
+ maxCoverage={3000}
+ />
+ )
+ }}
+
+ )
+}
+
+export default CopyNumberVariantsRegionCoverageTrack
diff --git a/browser/src/RegionPage/__snapshots__/MitochondrialRegionCoverageTrack.spec.tsx.snap b/browser/src/RegionPage/__snapshots__/MitochondrialRegionCoverageTrack.spec.tsx.snap
index 040003272..a46b2a410 100644
--- a/browser/src/RegionPage/__snapshots__/MitochondrialRegionCoverageTrack.spec.tsx.snap
+++ b/browser/src/RegionPage/__snapshots__/MitochondrialRegionCoverageTrack.spec.tsx.snap
@@ -9,6 +9,39 @@ exports[`MitochondrialRegionCoverageTrack with dataset exac has no unexpected ch
`;
+exports[`MitochondrialRegionCoverageTrack with dataset gnomad_cnv_r4 queries with appropriate params 1`] = `
+
+ [Function]
+
+`;
+
exports[`MitochondrialRegionCoverageTrack with dataset gnomad_r2_1 has no unexpected changes 1`] = `
`;
+exports[`MitochondrialRegionCoverageTrack with dataset gnomad_r4 queries with appropriate params 1`] = `
+
+ [Function]
+
+`;
+
exports[`MitochondrialRegionCoverageTrack with dataset gnomad_sv_r2_1 queries with appropriate params 1`] = `
`;
+exports[`MitochondrialVariantsInRegion with dataset gnomad_cnv_r4 has no unexpected changes 1`] = `
+[
+
+
+ ClinVar variants
+
+ ,
+
+ No ClinVar variants found in this region.
+
,
+
+
+ gnomAD variants
+
+
+ No gnomAD variants found.
+
+
,
+]
+`;
+
exports[`MitochondrialVariantsInRegion with dataset gnomad_r2_1 has no unexpected changes 1`] = `
+
+ ClinVar variants
+
+ ,
+
+ No ClinVar variants found in this region.
+
,
+
+
+ gnomAD variants
+
+
+ No gnomAD variants found.
+
+
,
+]
+`;
+
exports[`MitochondrialVariantsInRegion with dataset gnomad_sv_r2_1 has no unexpected changes 1`] = `
[
`;
+exports[`RegionPage with "gnomad_cnv_r4" dataset has no unexpected changes for a mitochondrial region 1`] = `
+
+
+
+
+ }
+ selectedDataset="gnomad_cnv_r4"
+ >
+ M-345-456
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`RegionPage with "gnomad_cnv_r4" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+
+
+
+
+ }
+ selectedDataset="gnomad_cnv_r4"
+ >
+ 12-345-456
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
exports[`RegionPage with "gnomad_r2_1" dataset has no unexpected changes for a mitochondrial region 1`] = `
+
+ }
+ selectedDataset="gnomad_r2_1"
+ >
+ M-345-456
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`RegionPage with "gnomad_r2_1" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+
+
+
+
+ }
+ selectedDataset="gnomad_r2_1"
+ >
+ 12-345-456
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`RegionPage with "gnomad_r2_1_controls" dataset has no unexpected changes for a mitochondrial region 1`] = `
+
+
+
}
- selectedDataset="gnomad_r2_1"
+ selectedDataset="gnomad_r2_1_controls"
>
M-345-456
@@ -365,7 +927,7 @@ exports[`RegionPage with "gnomad_r2_1" dataset has no unexpected changes for a m
width={994}
>
@@ -384,7 +946,7 @@ exports[`RegionPage with "gnomad_r2_1" dataset has no unexpected changes for a m
}
/>
`;
-exports[`RegionPage with "gnomad_r2_1" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r2_1_controls" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r2_1"
+ selectedDataset="gnomad_r2_1_controls"
>
12-345-456
@@ -506,7 +1069,7 @@ exports[`RegionPage with "gnomad_r2_1" dataset has no unexpected changes for a n
>
`;
-exports[`RegionPage with "gnomad_r2_1_controls" dataset has no unexpected changes for a mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r2_1_non_cancer" dataset has no unexpected changes for a mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r2_1_controls"
+ selectedDataset="gnomad_r2_1_non_cancer"
>
M-345-456
@@ -637,7 +1201,7 @@ exports[`RegionPage with "gnomad_r2_1_controls" dataset has no unexpected change
width={994}
>
@@ -656,7 +1220,7 @@ exports[`RegionPage with "gnomad_r2_1_controls" dataset has no unexpected change
}
/>
`;
-exports[`RegionPage with "gnomad_r2_1_controls" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r2_1_non_cancer" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r2_1_controls"
+ selectedDataset="gnomad_r2_1_non_cancer"
>
12-345-456
@@ -778,7 +1343,7 @@ exports[`RegionPage with "gnomad_r2_1_controls" dataset has no unexpected change
>
`;
-exports[`RegionPage with "gnomad_r2_1_non_cancer" dataset has no unexpected changes for a mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r2_1_non_neuro" dataset has no unexpected changes for a mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r2_1_non_cancer"
+ selectedDataset="gnomad_r2_1_non_neuro"
>
M-345-456
@@ -909,7 +1475,7 @@ exports[`RegionPage with "gnomad_r2_1_non_cancer" dataset has no unexpected chan
width={994}
>
@@ -928,7 +1494,7 @@ exports[`RegionPage with "gnomad_r2_1_non_cancer" dataset has no unexpected chan
}
/>
`;
-exports[`RegionPage with "gnomad_r2_1_non_cancer" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r2_1_non_neuro" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r2_1_non_cancer"
+ selectedDataset="gnomad_r2_1_non_neuro"
>
12-345-456
@@ -1050,7 +1617,7 @@ exports[`RegionPage with "gnomad_r2_1_non_cancer" dataset has no unexpected chan
>
`;
-exports[`RegionPage with "gnomad_r2_1_non_neuro" dataset has no unexpected changes for a mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected changes for a mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r2_1_non_neuro"
+ selectedDataset="gnomad_r2_1_non_topmed"
>
M-345-456
@@ -1181,7 +1749,7 @@ exports[`RegionPage with "gnomad_r2_1_non_neuro" dataset has no unexpected chang
width={994}
>
@@ -1200,7 +1768,7 @@ exports[`RegionPage with "gnomad_r2_1_non_neuro" dataset has no unexpected chang
}
/>
`;
-exports[`RegionPage with "gnomad_r2_1_non_neuro" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r2_1_non_neuro"
+ selectedDataset="gnomad_r2_1_non_topmed"
>
12-345-456
@@ -1322,7 +1891,7 @@ exports[`RegionPage with "gnomad_r2_1_non_neuro" dataset has no unexpected chang
>
`;
-exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected changes for a mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r3" dataset has no unexpected changes for a mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r2_1_non_topmed"
+ selectedDataset="gnomad_r3"
>
M-345-456
@@ -1409,7 +1979,7 @@ exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected chan
"chrom": "M",
"genes": [],
"non_coding_constraints": [],
- "reference_genome": "GRCh37",
+ "reference_genome": "GRCh38",
"short_tandem_repeats": [],
"start": 345,
"stop": 456,
@@ -1424,7 +1994,7 @@ exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected chan
"chrom": "M",
"genes": [],
"non_coding_constraints": [],
- "reference_genome": "GRCh37",
+ "reference_genome": "GRCh38",
"short_tandem_repeats": [],
"start": 345,
"stop": 456,
@@ -1442,7 +2012,7 @@ exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected chan
"chrom": "M",
"genes": [],
"non_coding_constraints": [],
- "reference_genome": "GRCh37",
+ "reference_genome": "GRCh38",
"short_tandem_repeats": [],
"start": 345,
"stop": 456,
@@ -1453,7 +2023,7 @@ exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected chan
width={994}
>
@@ -1464,21 +2034,29 @@ exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected chan
"chrom": "M",
"genes": [],
"non_coding_constraints": [],
- "reference_genome": "GRCh37",
+ "reference_genome": "GRCh38",
"short_tandem_repeats": [],
"start": 345,
"stop": 456,
}
}
/>
+
+
+
`;
-exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r3" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r2_1_non_topmed"
+ selectedDataset="gnomad_r3"
>
12-345-456
@@ -1549,7 +2128,7 @@ exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected chan
"chrom": "12",
"genes": [],
"non_coding_constraints": [],
- "reference_genome": "GRCh37",
+ "reference_genome": "GRCh38",
"short_tandem_repeats": [],
"start": 345,
"stop": 456,
@@ -1564,7 +2143,7 @@ exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected chan
"chrom": "12",
"genes": [],
"non_coding_constraints": [],
- "reference_genome": "GRCh37",
+ "reference_genome": "GRCh38",
"short_tandem_repeats": [],
"start": 345,
"stop": 456,
@@ -1582,7 +2161,7 @@ exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected chan
"chrom": "12",
"genes": [],
"non_coding_constraints": [],
- "reference_genome": "GRCh37",
+ "reference_genome": "GRCh38",
"short_tandem_repeats": [],
"start": 345,
"stop": 456,
@@ -1594,8 +2173,8 @@ exports[`RegionPage with "gnomad_r2_1_non_topmed" dataset has no unexpected chan
>
+
+
+
`;
-exports[`RegionPage with "gnomad_r3" dataset has no unexpected changes for a mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r3_controls_and_biobanks" dataset has no unexpected changes for a mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r3"
+ selectedDataset="gnomad_r3_controls_and_biobanks"
>
M-345-456
@@ -1725,7 +2313,7 @@ exports[`RegionPage with "gnomad_r3" dataset has no unexpected changes for a mit
width={994}
>
@@ -1752,7 +2340,7 @@ exports[`RegionPage with "gnomad_r3" dataset has no unexpected changes for a mit
/>
`;
-exports[`RegionPage with "gnomad_r3" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r3_controls_and_biobanks" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r3"
+ selectedDataset="gnomad_r3_controls_and_biobanks"
>
12-345-456
@@ -1874,7 +2463,7 @@ exports[`RegionPage with "gnomad_r3" dataset has no unexpected changes for a non
>
`;
-exports[`RegionPage with "gnomad_r3_controls_and_biobanks" dataset has no unexpected changes for a mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r3_non_cancer" dataset has no unexpected changes for a mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r3_controls_and_biobanks"
+ selectedDataset="gnomad_r3_non_cancer"
>
M-345-456
@@ -2013,7 +2603,7 @@ exports[`RegionPage with "gnomad_r3_controls_and_biobanks" dataset has no unexpe
width={994}
>
@@ -2040,7 +2630,7 @@ exports[`RegionPage with "gnomad_r3_controls_and_biobanks" dataset has no unexpe
/>
`;
-exports[`RegionPage with "gnomad_r3_controls_and_biobanks" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r3_non_cancer" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r3_controls_and_biobanks"
+ selectedDataset="gnomad_r3_non_cancer"
>
12-345-456
@@ -2162,7 +2753,7 @@ exports[`RegionPage with "gnomad_r3_controls_and_biobanks" dataset has no unexpe
>
`;
-exports[`RegionPage with "gnomad_r3_non_cancer" dataset has no unexpected changes for a mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r3_non_neuro" dataset has no unexpected changes for a mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r3_non_cancer"
+ selectedDataset="gnomad_r3_non_neuro"
>
M-345-456
@@ -2301,7 +2893,7 @@ exports[`RegionPage with "gnomad_r3_non_cancer" dataset has no unexpected change
width={994}
>
@@ -2328,7 +2920,7 @@ exports[`RegionPage with "gnomad_r3_non_cancer" dataset has no unexpected change
/>
`;
-exports[`RegionPage with "gnomad_r3_non_cancer" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r3_non_neuro" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r3_non_cancer"
+ selectedDataset="gnomad_r3_non_neuro"
>
12-345-456
@@ -2450,7 +3043,7 @@ exports[`RegionPage with "gnomad_r3_non_cancer" dataset has no unexpected change
>
`;
-exports[`RegionPage with "gnomad_r3_non_neuro" dataset has no unexpected changes for a mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r3_non_topmed" dataset has no unexpected changes for a mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r3_non_neuro"
+ selectedDataset="gnomad_r3_non_topmed"
>
M-345-456
@@ -2589,7 +3183,7 @@ exports[`RegionPage with "gnomad_r3_non_neuro" dataset has no unexpected changes
width={994}
>
@@ -2616,7 +3210,7 @@ exports[`RegionPage with "gnomad_r3_non_neuro" dataset has no unexpected changes
/>
`;
-exports[`RegionPage with "gnomad_r3_non_neuro" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r3_non_topmed" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r3_non_neuro"
+ selectedDataset="gnomad_r3_non_topmed"
>
12-345-456
@@ -2738,7 +3333,7 @@ exports[`RegionPage with "gnomad_r3_non_neuro" dataset has no unexpected changes
>
`;
-exports[`RegionPage with "gnomad_r3_non_topmed" dataset has no unexpected changes for a mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r3_non_v2" dataset has no unexpected changes for a mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r3_non_topmed"
+ selectedDataset="gnomad_r3_non_v2"
>
M-345-456
@@ -2877,7 +3473,7 @@ exports[`RegionPage with "gnomad_r3_non_topmed" dataset has no unexpected change
width={994}
>
@@ -2904,7 +3500,7 @@ exports[`RegionPage with "gnomad_r3_non_topmed" dataset has no unexpected change
/>
`;
-exports[`RegionPage with "gnomad_r3_non_topmed" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r3_non_v2" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r3_non_topmed"
+ selectedDataset="gnomad_r3_non_v2"
>
12-345-456
@@ -3026,7 +3623,7 @@ exports[`RegionPage with "gnomad_r3_non_topmed" dataset has no unexpected change
>
`;
-exports[`RegionPage with "gnomad_r3_non_v2" dataset has no unexpected changes for a mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r4" dataset has no unexpected changes for a mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r3_non_v2"
+ selectedDataset="gnomad_r4"
>
M-345-456
@@ -3165,7 +3763,7 @@ exports[`RegionPage with "gnomad_r3_non_v2" dataset has no unexpected changes fo
width={994}
>
@@ -3183,16 +3781,8 @@ exports[`RegionPage with "gnomad_r3_non_v2" dataset has no unexpected changes fo
}
}
/>
-
-
-
`;
-exports[`RegionPage with "gnomad_r3_non_v2" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
+exports[`RegionPage with "gnomad_r4" dataset has no unexpected changes for a non-mitochondrial region 1`] = `
}
- selectedDataset="gnomad_r3_non_v2"
+ selectedDataset="gnomad_r4"
>
12-345-456
@@ -3314,8 +3905,8 @@ exports[`RegionPage with "gnomad_r3_non_v2" dataset has no unexpected changes fo
>
-
-
-
`;
+exports[`RegionPageContainer with dataset gnomad_cnv_r4 queries API with correct parameters 1`] = `
+
+ [Function]
+
+`;
+
exports[`RegionPageContainer with dataset gnomad_r2_1 queries API with correct parameters 1`] = `
`;
+exports[`RegionPageContainer with dataset gnomad_r4 queries API with correct parameters 1`] = `
+
+ [Function]
+
+`;
+
exports[`RegionPageContainer with dataset gnomad_sv_r2_1 queries API with correct parameters 1`] = `
`;
+exports[`MitochondrialTranscriptCoverageTrack with dataset gnomad_cnv_r4 queries with proper parameters 1`] = `
+
+ [Function]
+
+`;
+
exports[`MitochondrialTranscriptCoverageTrack with dataset gnomad_r2_1 has no unexpected changes 1`] = `
`;
+exports[`MitochondrialTranscriptCoverageTrack with dataset gnomad_r4 queries with proper parameters 1`] = `
+
+ [Function]
+
+`;
+
exports[`MitochondrialTranscriptCoverageTrack with dataset gnomad_sv_r2_1 queries with proper parameters 1`] = `
`;
+exports[`MitochondrialVariantsInTranscript with dataset gnomad_cnv_r4 has no unexpected changes 1`] = `
+[
+
+
+ ClinVar variants
+
+ ,
+
+ No ClinVar variants found in this transcript.
+
,
+
+
+ gnomAD variants
+
+
+ No gnomAD variants found.
+
+
,
+]
+`;
+
exports[`MitochondrialVariantsInTranscript with dataset gnomad_r2_1 has no unexpected changes 1`] = `
+
+ ClinVar variants
+
+ ,
+
+ No ClinVar variants found in this transcript.
+
,
+
+
+ gnomAD variants
+
+
+ No gnomAD variants found.
+
+
,
+]
+`;
+
exports[`MitochondrialVariantsInTranscript with dataset gnomad_sv_r2_1 has no unexpected changes 1`] = `
[
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
`;
-exports[`TranscriptPage with dataset "gnomad_r2_1" has no unexpected changes 1`] = `
+exports[`TranscriptPage with dataset "gnomad_cnv_r4" has no unexpected changes 1`] = `
@@ -682,7 +808,7 @@ exports[`TranscriptPage with dataset "gnomad_r2_1" has no unexpected changes 1`]
className="DatasetSelector__NavigationMenuWrapper-sc-1p2fxbn-0 ebZvwy"
>
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
`;
-exports[`TranscriptPage with dataset "gnomad_r2_1_controls" has no unexpected changes 1`] = `
+exports[`TranscriptPage with dataset "gnomad_r2_1" has no unexpected changes 1`] = `
+
+
+
+
+
+
+ Genome build
+
+
+ GRCh37
+ /
+ hg19
+
+
+
+
+ Ensembl ID
+
+
+ dummy_transcript
+ .
+ 12.34.5
+
+
+
+
+
+
+
+
+
+ Constraint
+
+
+
+ More information
+
+
+
+
+ Constraint not available for this
+ transcript
+
+
+
+
+ Viewing full
+ transcript
+ .
+
+
+ Zoom in
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`TranscriptPage with dataset "gnomad_r2_1_controls" has no unexpected changes 1`] = `
+
+
+
+
+
+ Transcript:
+ dummy_transcript
+ .
+ 12.34.5
+
+
+
+
+
+
+
+
+
+ Genome build
+
+
+ GRCh37
+ /
+ hg19
+
+
+
+
+ Ensembl ID
+
+
+ dummy_transcript
+ .
+ 12.34.5
+
+
+
+
+
+
+
+
+
+ Constraint
+
+
+
+ More information
+
+
+
+
+ Constraint not available for this
+ transcript
+
+
+
+
+ Viewing full
+ transcript
+ .
+
+
+ Zoom in
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`TranscriptPage with dataset "gnomad_r2_1_non_cancer" has no unexpected changes 1`] = `
+
+
+
+
+
+ Transcript:
+ dummy_transcript
+ .
+ 12.34.5
+
+
+
`;
-exports[`TranscriptPage with dataset "gnomad_r2_1_non_cancer" has no unexpected changes 1`] = `
+exports[`TranscriptPage with dataset "gnomad_r2_1_non_neuro" has no unexpected changes 1`] = `
@@ -1983,12 +3909,12 @@ exports[`TranscriptPage with dataset "gnomad_r2_1_non_cancer" has no unexpected
- gnomAD v2.1.1 (non-cancer)
+ gnomAD v2.1.1 (non-neuro)
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
`;
-exports[`TranscriptPage with dataset "gnomad_r2_1_non_neuro" has no unexpected changes 1`] = `
+exports[`TranscriptPage with dataset "gnomad_r2_1_non_topmed" has no unexpected changes 1`] = `
@@ -2631,12 +4683,12 @@ exports[`TranscriptPage with dataset "gnomad_r2_1_non_neuro" has no unexpected c
- gnomAD v2.1.1 (non-neuro)
+ gnomAD v2.1.1 (non-TOPMed)
+ gnomAD v2.1.1 (non-cancer)
+
+ 134,187 samples
+
+
+
+
+
+ gnomAD v2.1.1 (non-neuro)
+
+ 114,704 samples
+
+
+
+
+
+ gnomAD v2.1.1 (controls)
+
+ 60,146 samples
+
+
+
+
+
+ ExAC v1.0
+
+ 60,706 samples
+
+
+
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
- ExAC v1.0
+ gnomAD exome CNVs v4.0
- 60,706 samples
+ 464,566 samples
@@ -3240,7 +5418,7 @@ exports[`TranscriptPage with dataset "gnomad_r2_1_non_neuro" has no unexpected c
`;
-exports[`TranscriptPage with dataset "gnomad_r2_1_non_topmed" has no unexpected changes 1`] = `
+exports[`TranscriptPage with dataset "gnomad_r3" has no unexpected changes 1`] = `
@@ -3888,7 +6191,7 @@ exports[`TranscriptPage with dataset "gnomad_r2_1_non_topmed" has no unexpected
`;
-exports[`TranscriptPage with dataset "gnomad_r3" has no unexpected changes 1`] = `
+exports[`TranscriptPage with dataset "gnomad_r3_controls_and_biobanks" has no unexpected changes 1`] = `
@@ -3927,12 +6230,12 @@ exports[`TranscriptPage with dataset "gnomad_r3" has no unexpected changes 1`] =
- gnomAD v3.1.2
+ gnomAD v3.1.2 (controls/biobanks)
+ gnomAD v2.1.1 (non-cancer)
+
+ 134,187 samples
+
+
+
+
+
+ gnomAD v2.1.1 (non-neuro)
+
+ 114,704 samples
+
+
+
+
+
+ gnomAD v2.1.1 (controls)
+
+ 60,146 samples
+
+
+
+
+
+ ExAC v1.0
+
+ 60,706 samples
+
+
+
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
- ExAC v1.0
+ gnomAD exome CNVs v4.0
- 60,706 samples
+ 464,566 samples
@@ -4535,7 +6964,7 @@ exports[`TranscriptPage with dataset "gnomad_r3" has no unexpected changes 1`] =
`;
-exports[`TranscriptPage with dataset "gnomad_r3_controls_and_biobanks" has no unexpected changes 1`] = `
+exports[`TranscriptPage with dataset "gnomad_r3_non_cancer" has no unexpected changes 1`] = `
@@ -4574,12 +7003,12 @@ exports[`TranscriptPage with dataset "gnomad_r3_controls_and_biobanks" has no un
- gnomAD v3.1.2 (controls/biobanks)
+ gnomAD v3.1.2 (non-cancer)
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
`;
-exports[`TranscriptPage with dataset "gnomad_r3_non_cancer" has no unexpected changes 1`] = `
+exports[`TranscriptPage with dataset "gnomad_r3_non_neuro" has no unexpected changes 1`] = `
@@ -5221,12 +7776,12 @@ exports[`TranscriptPage with dataset "gnomad_r3_non_cancer" has no unexpected ch
- gnomAD v3.1.2 (non-cancer)
+ gnomAD v3.1.2 (non-neuro)
+ gnomAD v2.1.1 (non-cancer)
+
+ 134,187 samples
+
+
+
+
+
+ gnomAD v2.1.1 (non-neuro)
+
+ 114,704 samples
+
+
+
+
+
+ gnomAD v2.1.1 (controls)
+
+ 60,146 samples
+
+
+
+
+
+ ExAC v1.0
+
+ 60,706 samples
+
+
+
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
- ExAC v1.0
+ gnomAD exome CNVs v4.0
- 60,706 samples
+ 464,566 samples
@@ -5829,7 +8510,7 @@ exports[`TranscriptPage with dataset "gnomad_r3_non_cancer" has no unexpected ch
`;
-exports[`TranscriptPage with dataset "gnomad_r3_non_neuro" has no unexpected changes 1`] = `
+exports[`TranscriptPage with dataset "gnomad_r3_non_topmed" has no unexpected changes 1`] = `
@@ -5868,12 +8549,12 @@ exports[`TranscriptPage with dataset "gnomad_r3_non_neuro" has no unexpected cha
- gnomAD v3.1.2 (non-neuro)
+ gnomAD v3.1.2 (non-TOPMed)
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
`;
-exports[`TranscriptPage with dataset "gnomad_r3_non_topmed" has no unexpected changes 1`] = `
+exports[`TranscriptPage with dataset "gnomad_r3_non_v2" has no unexpected changes 1`] = `
@@ -6515,12 +9322,12 @@ exports[`TranscriptPage with dataset "gnomad_r3_non_topmed" has no unexpected ch
- gnomAD v3.1.2 (non-TOPMed)
+ gnomAD v3.1.2 (non-v2)
+ gnomAD v2.1.1 (non-cancer)
+
+ 134,187 samples
+
+
+
+
+
+ gnomAD v2.1.1 (non-neuro)
+
+ 114,704 samples
+
+
+
+
+
+ gnomAD v2.1.1 (controls)
+
+ 60,146 samples
+
+
+
+
+
+ ExAC v1.0
+
+ 60,706 samples
+
+
+
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
- ExAC v1.0
+ gnomAD exome CNVs v4.0
- 60,706 samples
+ 464,566 samples
@@ -7123,7 +10056,7 @@ exports[`TranscriptPage with dataset "gnomad_r3_non_topmed" has no unexpected ch
`;
-exports[`TranscriptPage with dataset "gnomad_r3_non_v2" has no unexpected changes 1`] = `
+exports[`TranscriptPage with dataset "gnomad_r4" has no unexpected changes 1`] = `
@@ -7997,68 +11057,194 @@ exports[`TranscriptPage with dataset "gnomad_sv_r2_1" has no unexpected changes
+ gnomAD v2.1.1 (non-cancer)
+
+ 134,187 samples
+
+
+
+
+
+ gnomAD v2.1.1 (non-neuro)
+
+ 114,704 samples
+
+
+
+
+
+ gnomAD v2.1.1 (controls)
+
+ 60,146 samples
+
+
+
+
+
+ ExAC v1.0
+
+ 60,706 samples
+
+
+
+
+
+
+
+
+ gnomAD SVs v2.1
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
- ExAC v1.0
+ gnomAD exome CNVs v4.0
- 60,706 samples
+ 464,566 samples
@@ -8713,6 +11899,132 @@ exports[`TranscriptPage with dataset "gnomad_sv_r2_1_controls" has no unexpected
+
+
+ gnomAD SVs v2.1 (controls)
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
+
+
+ gnomAD SVs v2.1 (non-neuro)
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -723,7 +849,7 @@ exports[`TranscriptPageContainer with dataset exac has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -763,7 +889,7 @@ exports[`TranscriptPageContainer with dataset exac has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -803,7 +929,7 @@ exports[`TranscriptPageContainer with dataset exac has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -843,7 +969,7 @@ exports[`TranscriptPageContainer with dataset exac has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -883,7 +1009,7 @@ exports[`TranscriptPageContainer with dataset exac has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -923,7 +1049,7 @@ exports[`TranscriptPageContainer with dataset exac has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -963,7 +1089,7 @@ exports[`TranscriptPageContainer with dataset exac has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -1003,7 +1129,7 @@ exports[`TranscriptPageContainer with dataset exac has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -1043,7 +1169,7 @@ exports[`TranscriptPageContainer with dataset exac has no unexpected changes 1`]
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -1247,7 +1373,7 @@ exports[`TranscriptPageContainer with dataset exac has no unexpected changes 1`]
`;
-exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected changes 1`] = `
+exports[`TranscriptPageContainer with dataset gnomad_cnv_r4 has no unexpected changes 1`] = `
- 10
+ 0.1
@@ -1970,7 +2222,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected chan
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -2010,7 +2262,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected chan
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -2050,7 +2302,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected chan
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -2090,7 +2342,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected chan
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -2130,7 +2382,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected chan
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -2170,7 +2422,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected chan
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -2210,7 +2462,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected chan
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -2250,7 +2502,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected chan
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -2290,7 +2542,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected chan
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -2494,7 +2746,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected chan
`;
-exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpected changes 1`] = `
+exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected changes 1`] = `
+
+
+
+
+
+
+ Genome build
+
+
+ GRCh37
+ /
+ hg19
+
+
+
+
+ Ensembl ID
+
+
+ dummy_transcript
+ .
+ 12.34.5
+
+
+
+
+
+
+
+
+
+ Constraint
+
+
+
+ More information
+
+
+
+
+ Constraint not available for this
+ transcript
+
+
+
+
+ Viewing full
+ transcript
+ .
+
+
+ Zoom in
+
+
+
+
+
+
+
+
+ Metric:
+
+
+
+ Mean
+
+
+ Median
+
+
+
+
+ Over
+ 1
+
+
+ Over
+ 5
+
+
+ Over
+ 10
+
+
+ Over
+ 15
+
+
+ Over
+ 20
+
+
+ Over
+ 25
+
+
+ Over
+ 30
+
+
+ Over
+ 50
+
+
+ Over
+ 100
+
+
+
+
+
+ Save plot
+
+
+
+
+
+
+ Fraction of individuals with coverage over 30
+
+
+
+
+
+
+
+
+
+
+
+ 0.1
+
+
+
+
+
+
+
+
+
+ 0.2
+
+
+
+
+
+
+
+
+
+ 0.3
+
+
+
+
+
+
+
+
+
+ 0.4
+
+
+
+
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
+
+
+
+ 0.6
+
+
+
+
+
+
+
+
+
+ 0.7
+
+
+
+
+
+
+
+
+
+ 0.8
+
+
+
+
+
+
+
+
+
+ 0.9
+
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ClinVar variants
+
+
+
+ No ClinVar variants found in this transcript.
+
+
+
+ gnomAD variants
+
+
+ No gnomAD variants found.
+
+
+
+
+
+`;
+
+exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpected changes 1`] = `
+
+
+
+
+
+ Transcript:
+ dummy_transcript
+ .
+ 12.34.5
+
+
+
+
+
+
+
+
+
+ Genome build
+
+
+ GRCh37
+ /
+ hg19
+
+
+
+
+ Ensembl ID
+
+
+ dummy_transcript
+ .
+ 12.34.5
+
+
+
+
+
+
+
+
+
+ Constraint
+
+
+
+ More information
+
+
+
+
+ Constraint not available for this
+ transcript
+
+
+
+
+ Viewing full
+ transcript
+ .
+
+
+ Zoom in
+
+
+
+
+
+
+
+
+ Metric:
+
+
+
+ Mean
+
+
+ Median
+
+
+
+
+ Over
+ 1
+
+
+ Over
+ 5
+
+
+ Over
+ 10
+
+
+ Over
+ 15
+
+
+ Over
+ 20
+
+
+ Over
+ 25
+
+
+ Over
+ 30
+
+
+ Over
+ 50
+
+
+ Over
+ 100
+
+
+
+
+
+ Save plot
+
+
+
+
+
+
+ Fraction of individuals with coverage over 30
+
+
+
+
+
+
+
+
+
+
+
+ 0.1
+
+
+
+
+
+
+
+
+
+ 0.2
+
+
+
+
+
+
+
+
+
+ 0.3
+
+
+
+
+
+
+
+
+
+ 0.4
+
+
+
+
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
+
+
+
+ 0.6
+
+
+
+
+
+
+
+
+
+ 0.7
+
+
+
+
+
+
+
+
+
+ 0.8
+
+
+
+
+
+
+
+
+
+ 0.9
+
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ClinVar variants
+
+
+
+ No ClinVar variants found in this transcript.
+
+
+
+ gnomAD variants
+
+
+ No gnomAD variants found.
+
+
+
+
+
+`;
+
+exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unexpected changes 1`] = `
+
+
+
+
+
+ Transcript:
+ dummy_transcript
+ .
+ 12.34.5
+
+
+
- 10
+ 0.1
@@ -3217,7 +6341,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpe
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -3257,7 +6381,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpe
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -3297,7 +6421,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpe
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -3337,7 +6461,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpe
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -3377,7 +6501,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpe
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -3417,7 +6541,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpe
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -3457,7 +6581,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpe
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -3497,7 +6621,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpe
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -3537,7 +6661,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpe
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -3741,7 +6865,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpe
`;
-exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unexpected changes 1`] = `
+exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexpected changes 1`] = `
@@ -3780,12 +6904,12 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
- gnomAD v2.1.1 (non-cancer)
+ gnomAD v2.1.1 (non-neuro)
+ gnomAD v2.1.1 (non-cancer)
+
+ 134,187 samples
+
+
+
+
+
+ gnomAD v2.1.1 (non-neuro)
+
+ 114,704 samples
+
+
+
+
+
+ gnomAD v2.1.1 (controls)
+
+ 60,146 samples
+
+
+
+
+
+ ExAC v1.0
+
+ 60,706 samples
+
+
+
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
- ExAC v1.0
+ gnomAD exome CNVs v4.0
- 60,706 samples
+ 464,566 samples
@@ -4259,7 +7509,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -4464,7 +7714,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -4504,7 +7754,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -4544,7 +7794,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -4584,7 +7834,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -4624,7 +7874,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -4664,7 +7914,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -4704,7 +7954,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -4744,7 +7994,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -4784,7 +8034,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -4988,7 +8238,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
`;
-exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexpected changes 1`] = `
+exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unexpected changes 1`] = `
- 10
+ 0.1
@@ -5711,7 +9087,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexp
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -5751,7 +9127,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexp
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -5791,7 +9167,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexp
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -5831,7 +9207,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexp
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -5871,7 +9247,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexp
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -5911,7 +9287,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexp
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -5951,7 +9327,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexp
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -5991,7 +9367,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexp
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -6031,7 +9407,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexp
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -6235,7 +9611,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexp
`;
-exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unexpected changes 1`] = `
+exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected changes 1`] = `
@@ -6274,12 +9650,12 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
- gnomAD v2.1.1 (non-TOPMed)
+ gnomAD v3.1.2
+ gnomAD v2.1.1 (non-cancer)
+
+ 134,187 samples
+
+
+
+
+
+ gnomAD v2.1.1 (non-neuro)
+
+ 114,704 samples
+
+
+
+
+
+ gnomAD v2.1.1 (controls)
+
+ 60,146 samples
+
+
+
+
+
+ ExAC v1.0
+
+ 60,706 samples
+
+
+
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
- ExAC v1.0
+ gnomAD exome CNVs v4.0
- 60,706 samples
+ 464,566 samples
@@ -6698,8 +10200,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
- Constraint not available for this
- transcript
+ Constraint not yet available for gnomAD v3.
@@ -6753,7 +10254,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -6958,7 +10459,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -6998,7 +10499,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -7038,7 +10539,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -7078,7 +10579,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -7118,7 +10619,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -7158,7 +10659,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -7198,7 +10699,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -7238,7 +10739,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -7278,7 +10779,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -7482,7 +10983,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
`;
-exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected changes 1`] = `
+exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks has no unexpected changes 1`] = `
- 10
+ 0.1
@@ -8204,7 +11831,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected change
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -8244,7 +11871,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected change
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -8284,7 +11911,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected change
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -8324,7 +11951,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected change
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -8364,7 +11991,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected change
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -8404,7 +12031,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected change
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -8444,7 +12071,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected change
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -8484,7 +12111,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected change
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -8524,7 +12151,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected change
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -8728,7 +12355,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected change
`;
-exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks has no unexpected changes 1`] = `
+exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpected changes 1`] = `
@@ -8767,12 +12394,12 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
- gnomAD v3.1.2 (controls/biobanks)
+ gnomAD v3.1.2 (non-cancer)
+ gnomAD v2.1.1 (non-cancer)
+
+ 134,187 samples
+
+
+
+
+
+ gnomAD v2.1.1 (non-neuro)
+
+ 114,704 samples
+
+
+
+
+
+ gnomAD v2.1.1 (controls)
+
+ 60,146 samples
+
+
+
+
+
+ ExAC v1.0
+
+ 60,706 samples
+
+
+
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
- ExAC v1.0
+ gnomAD exome CNVs v4.0
- 60,706 samples
+ 464,566 samples
@@ -9245,7 +12998,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -9450,7 +13203,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -9490,7 +13243,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -9530,7 +13283,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -9570,7 +13323,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -9610,7 +13363,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -9650,7 +13403,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -9690,7 +13443,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -9730,7 +13483,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -9770,7 +13523,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -9974,7 +13727,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
`;
-exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpected changes 1`] = `
+exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpected changes 1`] = `
- 10
+ 0.1
@@ -10696,7 +14575,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpe
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -10736,7 +14615,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpe
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -10776,7 +14655,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpe
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -10816,7 +14695,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpe
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -10856,7 +14735,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpe
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -10896,7 +14775,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpe
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -10936,7 +14815,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpe
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -10976,7 +14855,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpe
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -11016,7 +14895,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpe
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -11220,7 +15099,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpe
`;
-exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpected changes 1`] = `
+exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpected changes 1`] = `
@@ -11259,12 +15138,12 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
- gnomAD v3.1.2 (non-neuro)
+ gnomAD v3.1.2 (non-TOPMed)
- gnomAD v2.1.1 (non-cancer)
+ gnomAD v2.1.1 (non-cancer)
+
+ 134,187 samples
+
+
+
+
+
+ gnomAD v2.1.1 (non-neuro)
+
+ 114,704 samples
+
+
+
+
+
+ gnomAD v2.1.1 (controls)
+
+ 60,146 samples
+
+
+
+
+
+ ExAC v1.0
+
+ 60,706 samples
+
+
+
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
- ExAC v1.0
+ gnomAD exome CNVs v4.0
- 60,706 samples
+ 464,566 samples
@@ -11737,7 +15742,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -11942,7 +15947,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -11982,7 +15987,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -12022,7 +16027,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -12062,7 +16067,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -12102,7 +16107,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -12142,7 +16147,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -12182,7 +16187,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -12222,7 +16227,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -12262,7 +16267,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -12466,7 +16471,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
`;
-exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpected changes 1`] = `
+exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected changes 1`] = `
- 10
+ 0.1
@@ -13188,7 +17319,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpe
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -13228,7 +17359,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpe
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -13268,7 +17399,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpe
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -13308,7 +17439,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpe
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -13348,7 +17479,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpe
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -13388,7 +17519,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpe
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -13428,7 +17559,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpe
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -13468,7 +17599,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpe
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -13508,7 +17639,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpe
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -13712,7 +17843,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpe
`;
-exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected changes 1`] = `
+exports[`TranscriptPageContainer with dataset gnomad_r4 has no unexpected changes 1`] = `
@@ -14229,7 +18487,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -14434,7 +18692,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -14474,7 +18732,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -14514,7 +18772,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -14554,7 +18812,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -14594,7 +18852,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -14634,7 +18892,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -14674,7 +18932,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -14714,7 +18972,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -14754,7 +19012,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected
dy="0em"
x={-8}
>
- 100
+ 1.0
diff --git a/browser/src/__snapshots__/DatasetSelector.spec.tsx.snap b/browser/src/__snapshots__/DatasetSelector.spec.tsx.snap
index 2ac5fa308..db2f5b284 100644
--- a/browser/src/__snapshots__/DatasetSelector.spec.tsx.snap
+++ b/browser/src/__snapshots__/DatasetSelector.spec.tsx.snap
@@ -429,6 +429,7332 @@ exports[`DataSelector with "exac" dataset selected has no unexpected changes 1`]
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "exac" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: #cbd3da;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: none;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (non-neuro)
+
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "exac" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: #cbd3da;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: none;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
+
+
+ gnomAD SVs v2.1
+
+
+
+
+
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (non-neuro)
+
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "gnomad_cnv_r4" dataset selected has no unexpected changes 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: #cbd3da;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: none;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "gnomad_cnv_r4" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: #cbd3da;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: none;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "gnomad_r2_1" dataset selected has no unexpected changes 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: #cbd3da;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: none;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "gnomad_r2_1" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: #cbd3da;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: none;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (non-neuro)
+
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "gnomad_r2_1" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: #cbd3da;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: none;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
+
+
+ gnomAD SVs v2.1
+
+
+
+
+
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (non-neuro)
+
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "gnomad_r2_1_controls" dataset selected has no unexpected changes 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: #cbd3da;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: none;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "gnomad_r2_1_controls" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: #cbd3da;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: none;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (non-neuro)
+
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "gnomad_r2_1_controls" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: #cbd3da;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: none;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
+
+
+ gnomAD SVs v2.1
+
+
+
+
+
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (non-neuro)
+
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unexpected changes 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: #cbd3da;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: none;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: #cbd3da;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: none;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (non-neuro)
+
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
+
+
+
+
+
+
+
+`;
+
+exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+.c0 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ padding: 0;
+ border: 1px solid #6c757d;
+ border-radius: 0.5em;
+ margin: 0;
+ list-style-type: none;
+}
+
+.c3 {
+ display: -webkit-inline-box;
+ display: -webkit-inline-flex;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -webkit-align-items: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ box-sizing: border-box;
+ height: 100%;
+ padding: 0.375em 0.25em;
+ color: #000;
+ outline: none;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c3:visited {
+ color: #000;
+}
+
+.c3:focus {
+ box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
+}
+
+.c1 {
+ position: relative;
+ display: inline-block;
+}
+
+.c1 .c2 {
+ background: #cbd3da;
+}
+
+.c1:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c1:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c9 {
+ position: relative;
+ display: inline-block;
+}
+
+.c9 .c2 {
+ background: none;
+}
+
+.c9:first-child .c2 {
+ padding-left: 0.75em;
+ border-top-left-radius: 0.5em;
+ border-bottom-left-radius: 0.5em;
+}
+
+.c9:last-child .c2 {
+ padding-right: 0.75em;
+ border-top-right-radius: 0.5em;
+ border-bottom-right-radius: 0.5em;
+}
+
+.c4 img {
+ position: relative;
+ top: 0.11em;
+ width: 0.9em;
+ height: 0.9em;
+}
+
+.c5 {
+ position: absolute;
+ z-index: 1;
+ right: 0;
+ display: none;
+ width: 220px;
+ padding: 0.5em 0;
+ border: 1px solid #6c757d;
+ margin: 0;
+ background: #f8f9fa;
+ list-style-type: none;
+}
+
+.c7 {
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0.25em 0.5em;
+ color: #000;
+ -webkit-text-decoration: none;
+ text-decoration: none;
+}
+
+.c7:visited {
+ color: #000;
+}
+
+.c7:active,
+.c7:focus,
+.c7:hover {
+ background: rgba(66,139,202,0.25);
+}
+
+.c7:focus {
+ outline: 2px solid #428bca;
+}
+
+.c8 {
+ margin-top: 0.125em;
+ margin-left: 5px;
+ font-size: 0.8em;
+ opacity: 0.6;
+}
+
+.c6 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ margin-left: 2px;
+ font-weight: bold;
+}
+
+@media (max-width:1200px) {
+ .c5 {
+ right: auto;
+ left: -100px;
+ }
+}
+
+@media (max-width:900px) {
+ .c5 {
+ left: -150px;
+ }
+}
+
+
+
@@ -553,12 +7879,36 @@ exports[`DataSelector with "exac" dataset selected has no unexpected changes 1`]
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "exac" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -731,12 +8081,12 @@ exports[`DataSelector with "exac" dataset selected has no unexpected changes whe
- ExAC v1.0
+ gnomAD v2.1.1 (non-neuro)
- gnomAD SVs v2.1
+ gnomAD exome CNVs v4.0
- GRCh38
+ GRCh37
- gnomAD SVs v4
+ gnomAD SVs v2.1
- 63,046 samples
+ 10,847 samples
-
-
-
- GRCh37
-
- gnomAD SVs v2.1
+ gnomAD SVs v2.1 (non-neuro)
- 10,847 samples
+ 8,342 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD SVs v2.1 (controls)
- 8,342 samples
+ 5,192 samples
+
+
+
+ GRCh38
+
- gnomAD SVs v2.1 (controls)
+ gnomAD exome CNVs v4.0
- 5,192 samples
+ 464,566 samples
@@ -1116,7 +8466,7 @@ exports[`DataSelector with "exac" dataset selected has no unexpected changes whe
`;
-exports[`DataSelector with "gnomad_r2_1" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -1289,12 +8639,12 @@ exports[`DataSelector with "gnomad_r2_1" dataset selected has no unexpected chan
- gnomAD v2.1.1
+ gnomAD v2.1.1 (non-neuro)
- gnomAD SVs v2.1
+ gnomAD exome CNVs v4.0
`;
-exports[`DataSelector with "gnomad_r2_1" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -1847,12 +9197,12 @@ exports[`DataSelector with "gnomad_r2_1" dataset selected has no unexpected chan
- gnomAD v2.1.1
+ gnomAD v2.1.1 (non-neuro)
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_r2_1_controls" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -2405,12 +9779,12 @@ exports[`DataSelector with "gnomad_r2_1_controls" dataset selected has no unexpe
- gnomAD v2.1.1 (controls)
+ gnomAD v2.1.1 (non-TOPMed)
- gnomAD SVs v2.1
+ gnomAD exome CNVs v4.0
-
-
- GRCh38
-
-
-
- gnomAD SVs v4
-
- 63,046 samples
-
-
-
-
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_r2_1_controls" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -2963,12 +10337,12 @@ exports[`DataSelector with "gnomad_r2_1_controls" dataset selected has no unexpe
- gnomAD v2.1.1 (controls)
+ gnomAD v2.1.1 (non-TOPMed)
- gnomAD SVs v2.1
+ gnomAD exome CNVs v4.0
`;
-exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -3521,12 +10895,12 @@ exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unex
- gnomAD v2.1.1 (non-cancer)
+ gnomAD v2.1.1 (non-TOPMed)
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r3" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -4079,12 +11477,12 @@ exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unex
- gnomAD v2.1.1 (non-cancer)
+ gnomAD v3.1.2
- gnomAD SVs v2.1
+ gnomAD SVs v4
`;
-exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r3" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -4637,12 +12035,12 @@ exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexp
- gnomAD v2.1.1 (non-neuro)
+ gnomAD v3.1.2
- gnomAD SVs v2.1
+ gnomAD SVs v4
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -5195,12 +12617,12 @@ exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexp
- gnomAD v2.1.1 (non-neuro)
+ gnomAD v3.1.2 (controls/biobanks)
- gnomAD SVs v2.1
+ gnomAD SVs v4
`;
-exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -5753,12 +13175,12 @@ exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unex
- gnomAD v2.1.1 (non-TOPMed)
+ gnomAD v3.1.2 (controls/biobanks)
- gnomAD SVs v2.1
+ gnomAD SVs v4
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r3_non_cancer" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -6311,12 +13757,12 @@ exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unex
- gnomAD v2.1.1 (non-TOPMed)
+ gnomAD v3.1.2 (non-cancer)
- gnomAD SVs v2.1
+ gnomAD SVs v4
`;
-exports[`DataSelector with "gnomad_r3" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r3_non_cancer" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -6869,12 +14315,12 @@ exports[`DataSelector with "gnomad_r3" dataset selected has no unexpected change
- gnomAD v3.1.2
+ gnomAD v3.1.2 (non-cancer)
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_r3" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r3_non_neuro" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -7427,12 +14897,12 @@ exports[`DataSelector with "gnomad_r3" dataset selected has no unexpected change
- gnomAD v3.1.2
+ gnomAD v3.1.2 (non-neuro)
`;
-exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r3_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -7985,12 +15455,12 @@ exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected ha
- gnomAD v3.1.2 (controls/biobanks)
+ gnomAD v3.1.2 (non-neuro)
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -8543,12 +16037,12 @@ exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected ha
- gnomAD v3.1.2 (controls/biobanks)
+ gnomAD v3.1.2 (non-TOPMed)
`;
-exports[`DataSelector with "gnomad_r3_non_cancer" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -9101,12 +16595,12 @@ exports[`DataSelector with "gnomad_r3_non_cancer" dataset selected has no unexpe
- gnomAD v3.1.2 (non-cancer)
+ gnomAD v3.1.2 (non-TOPMed)
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_r3_non_cancer" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -9659,12 +17177,12 @@ exports[`DataSelector with "gnomad_r3_non_cancer" dataset selected has no unexpe
- gnomAD v3.1.2 (non-cancer)
+ gnomAD v3.1.2 (non-v2)
`;
-exports[`DataSelector with "gnomad_r3_non_neuro" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -10217,12 +17735,12 @@ exports[`DataSelector with "gnomad_r3_non_neuro" dataset selected has no unexpec
- gnomAD v3.1.2 (non-neuro)
+ gnomAD v3.1.2 (non-v2)
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_r3_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r4" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -10775,12 +18317,12 @@ exports[`DataSelector with "gnomad_r3_non_neuro" dataset selected has no unexpec
- gnomAD v3.1.2 (non-neuro)
+
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
-
-
- GRCh38
-
-
-
- gnomAD SVs v4
-
- 63,046 samples
-
-
-
-
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r4" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -11333,12 +18875,12 @@ exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpe
- gnomAD v3.1.2 (non-TOPMed)
+
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
-
-
- GRCh38
-
-
-
- gnomAD SVs v4
-
- 63,046 samples
-
-
-
-
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -11760,43 +19302,43 @@ exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpe
box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
}
-.c1 {
+.c9 {
position: relative;
display: inline-block;
}
-.c1 .c2 {
+.c9 .c2 {
background: #cbd3da;
}
-.c1:first-child .c2 {
+.c9:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c1:last-child .c2 {
+.c9:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
}
-.c9 {
+.c1 {
position: relative;
display: inline-block;
}
-.c9 .c2 {
+.c1 .c2 {
background: none;
}
-.c9:first-child .c2 {
+.c1:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c9:last-child .c2 {
+.c1:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
@@ -11891,12 +19433,12 @@ exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpe
- gnomAD v3.1.2 (non-TOPMed)
+ gnomAD v2.1.1
- gnomAD SVs v4
+ gnomAD SVs v2.1
`;
-exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -12318,43 +19860,43 @@ exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected
box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
}
-.c1 {
+.c9 {
position: relative;
display: inline-block;
}
-.c1 .c2 {
+.c9 .c2 {
background: #cbd3da;
}
-.c1:first-child .c2 {
+.c9:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c1:last-child .c2 {
+.c9:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
}
-.c9 {
+.c1 {
position: relative;
display: inline-block;
}
-.c9 .c2 {
+.c1 .c2 {
background: none;
}
-.c9:first-child .c2 {
+.c1:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c9:last-child .c2 {
+.c1:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
@@ -12449,12 +19991,12 @@ exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected
- gnomAD v3.1.2 (non-v2)
+ gnomAD v2.1.1
- gnomAD SVs v4
+ gnomAD SVs v2.1
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
+
+
+
+
+
+
+ GRCh38
+
+
+
- gnomAD SVs v2.1 (controls)
+ gnomAD exome CNVs v4.0
- 5,192 samples
+ 464,566 samples
@@ -12834,7 +20400,7 @@ exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected
`;
-exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -12876,43 +20442,43 @@ exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected
box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
}
-.c1 {
+.c9 {
position: relative;
display: inline-block;
}
-.c1 .c2 {
+.c9 .c2 {
background: #cbd3da;
}
-.c1:first-child .c2 {
+.c9:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c1:last-child .c2 {
+.c9:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
}
-.c9 {
+.c1 {
position: relative;
display: inline-block;
}
-.c9 .c2 {
+.c1 .c2 {
background: none;
}
-.c9:first-child .c2 {
+.c1:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c9:last-child .c2 {
+.c1:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
@@ -13007,12 +20573,12 @@ exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected
- gnomAD v3.1.2 (non-v2)
+ gnomAD v2.1.1
- gnomAD SVs v4
+ gnomAD SVs v2.1
-
-
- GRCh38
-
-
-
- gnomAD SVs v4
-
- 63,046 samples
-
-
-
-
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -13826,13 +21392,13 @@ exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected c
>
- gnomAD SVs v2.1
+ gnomAD SVs v2.1 (controls)
`;
-exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -14385,12 +21951,12 @@ exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected c
- gnomAD SVs v2.1
+ gnomAD SVs v2.1 (controls)
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -14942,7 +22532,7 @@ exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no une
>
-
-
- GRCh38
-
-
-
- gnomAD SVs v4
-
- 63,046 samples
-
-
-
-
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -15500,13 +23090,13 @@ exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no une
>
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1 (non-neuro)
`;
-exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -16182,7 +23772,7 @@ exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no un
`;
-exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_sv_r4" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -16355,12 +23945,12 @@ exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no un
- gnomAD v2.1.1
+ gnomAD v3.1.2
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD SVs v4
`;
-exports[`DataSelector with "gnomad_sv_r4" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_sv_r4" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -17293,12 +24883,36 @@ exports[`DataSelector with "gnomad_sv_r4" dataset selected has no unexpected cha
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
`;
-exports[`DataSelector with "gnomad_sv_r4" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -17471,12 +25085,12 @@ exports[`DataSelector with "gnomad_sv_r4" dataset selected has no unexpected cha
- gnomAD v3.1.2
+ gnomAD v2.1.1
- gnomAD SVs v4
+ gnomAD SVs v2.1 (non-neuro)
-
-
- GRCh38
-
-
-
- gnomAD SVs v4
-
- 63,046 samples
-
-
-
-
+
+
+ GRCh38
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
From 4dc94953f729fb8e40bbdb5c7725ce800f4ecc74 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Sun, 29 Oct 2023 11:03:20 -0400
Subject: [PATCH 54/62] add page changes
---
.../CopyNumberVariantAttributeList.tsx | 2 --
.../CopyNumberVariantPage.tsx | 22 +++++++++++++++----
2 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
index 48e18e5e5..f8222417a 100644
--- a/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantAttributeList.tsx
@@ -50,8 +50,6 @@ const CopyNumberVariantAttributeList = ({ variant }: CopyNumberVariantAttributeL
{(variant.sn === 0 ? 0 : variant.sc / variant.sn).toPrecision(4)}
{/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
- {variant.qual}
- {/* @ts-expect-error TS(2604) FIXME: JSX element type 'AttributeList.Item' does not hav... Remove this comment to see the full error message */}
{variant.chrom}:{variant.pos}-{variant.end}
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
index 9cc9a7e11..5ebfb7487 100644
--- a/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
@@ -1,16 +1,14 @@
import React from 'react'
import styled from 'styled-components'
-import { ExternalLink, Page } from '@gnomad/ui'
+import { ExternalLink, Page, ListItem } from '@gnomad/ui'
+import Link from '../Link'
import { DatasetId, labelForDataset } from '@gnomad/dataset-metadata/metadata'
import DocumentTitle from '../DocumentTitle'
import GnomadPageHeading from '../GnomadPageHeading'
-// import { Histogram } from '../VariantPage/VariantPage'
-// import InfoButton from '../help/InfoButton'
import Query from '../Query'
import { variantFeedbackUrl } from '../variantFeedback'
-// import CopyNumberVariantAgeDistribution from './CopyNumberVariantAgeDistribution'
import CopyNumberVariantAttributeList from './CopyNumberVariantAttributeList'
import CopyNumberVariantPopulationsTable from './CopyNumberVariantPopulationsTable'
import CNVReferenceList from './CNVReferenceList'
@@ -89,6 +87,22 @@ const CopyNumberVariantPage = ({ datasetId, variant }: CopyNumberVariantPageProp
Population Frequencies
+
+
+
+ Consequences
+
+ This variant has consequences in {variant.genes.length} gene
+ {variant.genes.length !== 1 && 's'}.
+
+ {variant.genes.map((gene) => (
+ // @ts-expect-error TS(2769) FIXME: No overload matches this call.
+
+ {gene}
+
+ ))}
+
+
)
From 2b16f0788dce17c884243150ea77e466b6043f40 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Sun, 29 Oct 2023 11:03:31 -0400
Subject: [PATCH 55/62] add formatting
---
.../CopyNumberVariantPage/CopyNumberVariantPage.tsx | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx b/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
index 5ebfb7487..2bfe53095 100644
--- a/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
+++ b/browser/src/CopyNumberVariantPage/CopyNumberVariantPage.tsx
@@ -95,12 +95,12 @@ const CopyNumberVariantPage = ({ datasetId, variant }: CopyNumberVariantPageProp
This variant has consequences in {variant.genes.length} gene
{variant.genes.length !== 1 && 's'}.
- {variant.genes.map((gene) => (
- // @ts-expect-error TS(2769) FIXME: No overload matches this call.
-
- {gene}
-
- ))}
+ {variant.genes.map((gene) => (
+ // @ts-expect-error TS(2769) FIXME: No overload matches this call.
+
+ {gene}
+
+ ))}
From f7096755585ec7b8102b4142d23a793d0d193800 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Sun, 29 Oct 2023 12:36:49 -0400
Subject: [PATCH 56/62] update dataset selection
---
browser/help/topics/dataset-selection.md | 3 ---
browser/src/DatasetSelector.tsx | 32 +++---------------------
dataset-metadata/metadata.ts | 4 +++
3 files changed, 8 insertions(+), 31 deletions(-)
diff --git a/browser/help/topics/dataset-selection.md b/browser/help/topics/dataset-selection.md
index 7e4d6f7e4..625a54095 100644
--- a/browser/help/topics/dataset-selection.md
+++ b/browser/help/topics/dataset-selection.md
@@ -57,8 +57,5 @@ The following subsets from previous versions are currently available, but access
- _gnomAD SVs v2.1 (non-neuro): Only samples from individuals who were not ascertained for having a neurological condition in a neurological case/control study._
- _gnomAD SVs v2.1 (controls): Only samples from individuals who were not selected as a case in a case/control study of common disease._
-### Copy number variants
-
-+ gnomAD exome CNVs v4.0: Copy number variant (CNV) calls generated from a set of ES samples that largely overlaps those in gnomAD v4. This current CNV release includes 464,566 unrelated exomes
The data selection drop-down also updates accompanying data such as the coverage plot, constraint statistics, regional constraint, and variant positional distribution plot.
diff --git a/browser/src/DatasetSelector.tsx b/browser/src/DatasetSelector.tsx
index 6b1b2e444..5b6fe8bef 100644
--- a/browser/src/DatasetSelector.tsx
+++ b/browser/src/DatasetSelector.tsx
@@ -449,13 +449,9 @@ const DatasetSelector = withRouter(({ datasetOptions, history, selectedDataset }
search: queryString.stringify({ dataset: datasetId }),
})
- const topLevelStructuralVariantDataset = structuralVariantDatasetId(selectedDataset)
-
- const defaultTopLevelShortVariantDataset = includeGnomad2 ? 'gnomad_r2_1' : 'gnomad_r3'
- const topLevelShortVariantDataset = hasShortVariants(selectedDataset)
- ? selectedDataset
- : defaultTopLevelShortVariantDataset
-
+ const topLevelShortVariantDataset = shortVariantDatasetId(selectedDataset)
+
+ console.log(topLevelShortVariantDataset)
let datasets: any = []
if (includeShortVariants) {
@@ -601,7 +597,7 @@ const DatasetSelector = withRouter(({ datasetOptions, history, selectedDataset }
datasets.push(
{
- id: 'current_sv_or_cnv_dataset',
+ id: 'current_sv_dataset',
isActive: hasStructuralVariants(selectedDataset) || hasCopyNumberVariants(selectedDataset),
label: labelForDataset(currentDataset),
url: datasetLink(currentDataset),
@@ -648,26 +644,6 @@ const DatasetSelector = withRouter(({ datasetOptions, history, selectedDataset }
},
],
},
- // {
- // id: 'current_cnv_dataset',
- // isActive: hasCopyNumberVariants(selectedDataset),
- // label: labelForDataset(topLevelCopyNumberVariantDataset),
- // url: datasetLink(topLevelCopyNumberVariantDataset),
- // },
- // {
- // id: 'other_cnv_variant',
- // isActive: hasCopyNumberVariants(selectedDataset),
- // label: 'More datasets',
- // children: [
- // {
- // id: 'gnomad_cnv_r4',
- // label: labelForDataset('gnomad_cnv_r4'),
- // url: datasetLink('gnomad_cnv_r4'),
- // description: `${sampleCounts.gnomad_cnv_r4.total.toLocaleString()} samples`,
- // childReferenceGenome: referenceGenome('gnomad_cnv_r4'),
- // },
- // ],
- // }
)
}
diff --git a/dataset-metadata/metadata.ts b/dataset-metadata/metadata.ts
index cf42e29a8..4179534d1 100644
--- a/dataset-metadata/metadata.ts
+++ b/dataset-metadata/metadata.ts
@@ -83,6 +83,10 @@ const extractVariantFeedbackDescription = (datasetId: DatasetId): string | null
}
const extractShortVariantDatasetId = (datasetId: DatasetId): DatasetId => {
+ if (datasetId.startsWith('gnomad_cnv')) {
+ return 'gnomad_r3'
+ }
+
if (!datasetId.startsWith('gnomad_sv')) {
return datasetId
}
From 9aa35bc48233d56a7470e100f3a56d068f485512 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Sun, 29 Oct 2023 12:39:59 -0400
Subject: [PATCH 57/62] remove console.log
---
browser/src/DatasetSelector.tsx | 2 --
1 file changed, 2 deletions(-)
diff --git a/browser/src/DatasetSelector.tsx b/browser/src/DatasetSelector.tsx
index 5b6fe8bef..3101bacd7 100644
--- a/browser/src/DatasetSelector.tsx
+++ b/browser/src/DatasetSelector.tsx
@@ -16,7 +16,6 @@ import {
referenceGenome,
hasCopyNumberVariants,
shortVariantDatasetId,
- structuralVariantDatasetId,
} from '@gnomad/dataset-metadata/metadata'
const NavigationMenuWrapper = styled.ul`
@@ -451,7 +450,6 @@ const DatasetSelector = withRouter(({ datasetOptions, history, selectedDataset }
const topLevelShortVariantDataset = shortVariantDatasetId(selectedDataset)
- console.log(topLevelShortVariantDataset)
let datasets: any = []
if (includeShortVariants) {
From 407263b94f1c5f2d1e0b024a17df3e8dc78dfa3f Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Sun, 29 Oct 2023 13:32:22 -0400
Subject: [PATCH 58/62] finalize testing files
---
.../CopyNumberVariantPage.spec.tsx.snap | 186 +-
browser/src/GenePage/GenePage.spec.tsx | 66 +-
.../__snapshots__/GenePage.spec.tsx.snap | 2501 ++++--
...riantCooccurrenceCountsTable.spec.tsx.snap | 8 +
.../MitochondrialVariantPage.spec.tsx.snap | 884 ++-
.../__snapshots__/RegionPage.spec.tsx.snap | 2 +
browser/src/Searchbox.spec.tsx | 2 +-
.../StructuralVariantPage.spec.tsx.snap | 408 +
.../TranscriptPage.spec.tsx.snap | 1296 ++--
.../TranscriptPageContainer.spec.tsx.snap | 950 ++-
browser/src/__factories__/Gene.ts | 2 +
.../DatasetSelector.spec.tsx.snap | 6774 +++--------------
.../src/__snapshots__/HomePage.spec.tsx.snap | 5 +
.../src/__snapshots__/NavBar.spec.tsx.snap | 5 +
.../src/__snapshots__/Searchbox.spec.tsx.snap | 251 +
browser/src/variantFeedback.spec.ts | 4 +-
dataset-metadata/metadata.spec.ts | 2 +-
dataset-metadata/metadata.ts | 3 +
18 files changed, 5870 insertions(+), 7479 deletions(-)
diff --git a/browser/src/CopyNumberVariantPage/__snapshots__/CopyNumberVariantPage.spec.tsx.snap b/browser/src/CopyNumberVariantPage/__snapshots__/CopyNumberVariantPage.spec.tsx.snap
index e0bdfbf30..4f47b0274 100644
--- a/browser/src/CopyNumberVariantPage/__snapshots__/CopyNumberVariantPage.spec.tsx.snap
+++ b/browser/src/CopyNumberVariantPage/__snapshots__/CopyNumberVariantPage.spec.tsx.snap
@@ -33,7 +33,7 @@ exports[`CopyNumberVariantPage with dataset gnomad_cnv_r4 with variant of type D
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -237,14 +254,6 @@ exports[`CopyNumberVariantPage with dataset gnomad_cnv_r4 with variant of type D
0.3565
-
-
- Quality score
-
-
- 99
-
-
Position
@@ -422,6 +431,24 @@ exports[`CopyNumberVariantPage with dataset gnomad_cnv_r4 with variant of type D
+
+
+
+ Consequences
+
+
+ This variant has consequences in
+ 0
+ gene
+ s
+ .
+
+
+
`;
@@ -458,7 +485,7 @@ exports[`CopyNumberVariantPage with dataset gnomad_cnv_r4 with variant of type D
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -662,14 +706,6 @@ exports[`CopyNumberVariantPage with dataset gnomad_cnv_r4 with variant of type D
0.3565
-
-
- Quality score
-
-
- 99
-
-
Position
@@ -847,5 +883,23 @@ exports[`CopyNumberVariantPage with dataset gnomad_cnv_r4 with variant of type D
+
+
+
+ Consequences
+
+
+ This variant has consequences in
+ 0
+ gene
+ s
+ .
+
+
+
`;
diff --git a/browser/src/GenePage/GenePage.spec.tsx b/browser/src/GenePage/GenePage.spec.tsx
index 1f6f83cba..f4ace7de3 100644
--- a/browser/src/GenePage/GenePage.spec.tsx
+++ b/browser/src/GenePage/GenePage.spec.tsx
@@ -71,6 +71,9 @@ forDatasetsNotMatching(svRegexp, 'GenePage with non-SV dataset "%s"', (datasetId
coverage: {},
},
}),
+ CopyNumberVariantsInGene: () => ({
+ gene: { copy_number_variants: [] },
+ }),
})
)
@@ -126,47 +129,52 @@ forDatasetsMatching(svRegexp, 'GenePage with SV dataset "%s"', (datasetId) => {
})
})
- forDatasetsMatching(cnvRegexp, 'GenePage with CNV dataset "%s"', (datasetId) => {
- test('has no unexpected changes', () => {
- const gene = geneFactory.build()
- setMockApiResponses({
- CopyNumberVariantsInGene: () => ({
- gene: { copy_number_variants: [] },
- }),
- RegionCoverage: () => ({
- region: {
- coverage: {},
- },
- }),
- })
- const tree = renderer.create(
- withDummyRouter( )
- )
- expect(tree).toMatchSnapshot()
- })
-
- test('queries the API for region coverage with the correct parameters', async () => {
+forDatasetsMatching(cnvRegexp, 'GenePage with CNV dataset "%s"', (datasetId) => {
+ test('has no unexpected changes', () => {
const gene = geneFactory.build()
setMockApiResponses({
- StructuralVariantsInGene: () => ({
- gene: { structural_variants: [] },
+ CopyNumberVariantsInGene: () => ({
+ gene: { copy_number_variants: [] },
}),
RegionCoverage: () => ({
region: {
coverage: {},
},
}),
+ GeneCoverage: () => ({
+ gene: {
+ coverage: {},
+ },
+ }),
+ })
+ const tree = renderer.create(
+ withDummyRouter( )
+ )
+ expect(tree).toMatchSnapshot()
+ })
+
+ test('queries the API for region coverage with the correct parameters', async () => {
+ const gene = geneFactory.build()
+ setMockApiResponses({
+ CopyNumberVariantsInGene: () => ({
+ gene: { copy_number_variants: [] },
+ }),
+ GeneCoverage: () => ({
+ gene: {
+ coverage: {},
+ },
+ }),
})
renderer.create(
withDummyRouter( )
)
const coverageQueries = mockApiCalls().filter(
- ({ operationName }) => operationName === 'RegionCoverage'
+ ({ operationName }) => operationName === 'GeneCoverage'
)
expect(coverageQueries).toHaveLength(1)
const [coverageQuery] = coverageQueries
const exomeCoverageArg = coverageQuery.variables.includeExomeCoverage
- expect(exomeCoverageArg).toEqual(false)
+ expect(exomeCoverageArg).toEqual(true)
})
})
@@ -183,7 +191,7 @@ describe.each([
['gnomad_r3_non_neuro', false],
['gnomad_r3_non_topmed', false],
['gnomad_r3_non_v2', false],
- ['gnomad_cnv_r4', false],
+ ['gnomad_cnv_r4', true],
] as [DatasetId, boolean][])('GenePage with non-SV dataset "%s"', (datasetId, expectedResult) => {
test('queries the API for gene coverage with the correct parameters', async () => {
const gene = geneFactory.build()
@@ -197,6 +205,9 @@ describe.each([
coverage: {},
},
}),
+ CopyNumberVariantsInGene: () => ({
+ gene: { copy_number_variants: [] },
+ }),
})
renderer.create(
withDummyRouter( )
@@ -228,7 +239,7 @@ describe.each([
['gnomad_r3_non_neuro', 'GRCh38', true],
['gnomad_r3_non_topmed', 'GRCh38', true],
['gnomad_r3_non_v2', 'GRCh38', true],
- ['gnomad_cnv_r4','GRCh38', false],
+ ['gnomad_cnv_r4', 'GRCh38', false],
] as [DatasetId, ReferenceGenome, boolean][])(
'gene query with dataset %s',
(datasetId, expectedReferenceGenome, expectedIncludeShortTandemRepeats) => {
@@ -254,4 +265,5 @@ describe.each([
expectedIncludeShortTandemRepeats
)
})
- })
+ }
+)
diff --git a/browser/src/GenePage/__snapshots__/GenePage.spec.tsx.snap b/browser/src/GenePage/__snapshots__/GenePage.spec.tsx.snap
index df36e4d8b..b6d6eb7e2 100644
--- a/browser/src/GenePage/__snapshots__/GenePage.spec.tsx.snap
+++ b/browser/src/GenePage/__snapshots__/GenePage.spec.tsx.snap
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`] = `
+exports[`GenePage with CNV dataset "gnomad_cnv_r4" has no unexpected changes 1`] = `
+ Viewing full
+ gene
+ .
+
+
+ Zoom in
+
@@ -860,7 +864,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
}
>
@@ -1286,8 +1290,8 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
stroke="#333"
x1={0}
x2={799}
- y1={200}
- y2={200}
+ y1={190}
+ y2={190}
/>
@@ -1449,7 +1453,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`]
`;
-exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected changes 1`] = `
+exports[`GenePage with SV dataset "gnomad_sv_r2_1" has no unexpected changes 1`] = `
@@ -1750,13 +1754,13 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected ch
>
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected changes 1`] = `
+exports[`GenePage with SV dataset "gnomad_sv_r2_1_controls" has no unexpected changes 1`] = `
@@ -3199,13 +3196,13 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
>
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD SVs v2.1 (controls)
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
@@ -3635,7 +3625,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected c
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
`;
-exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] = `
+exports[`GenePage with SV dataset "gnomad_sv_r2_1_non_neuro" has no unexpected changes 1`] = `
@@ -5059,7 +5067,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
className="Select-sc-1lkyg9e-0 ivadCR"
id="coverage-metric"
onChange={[Function]}
- value="mean"
+ value="over_30"
>
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -5264,7 +5272,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -5304,7 +5312,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -5344,7 +5352,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -5384,7 +5392,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -5424,7 +5432,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -5464,7 +5472,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -5504,7 +5512,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -5544,7 +5552,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -5584,7 +5592,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -6132,6 +6140,23 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
- Per-base mean depth of coverage
+ Fraction of individuals with coverage over 30
- 10
+ 0.1
@@ -6688,7 +6713,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 20
+ 0.2
@@ -6728,7 +6753,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 30
+ 0.3
@@ -6768,7 +6793,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 40
+ 0.4
@@ -6808,7 +6833,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 50
+ 0.5
@@ -6848,7 +6873,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 60
+ 0.6
@@ -6888,7 +6913,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 70
+ 0.7
@@ -6928,7 +6953,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 80
+ 0.8
@@ -6968,7 +6993,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 90
+ 0.9
@@ -7008,7 +7033,7 @@ exports[`GenePage with SV dataset "gnomad_sv_r4" has no unexpected changes 1`] =
dy="0em"
x={-8}
>
- 100
+ 1.0
@@ -7496,7 +7521,7 @@ exports[`GenePage with non-SV dataset "exac" has no unexpected changes 1`] = `
>
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`] = `
+exports[`GenePage with non-SV dataset "gnomad_cnv_r4" has no unexpected changes 1`] = `
+
+`;
+
+exports[`GenePage with non-SV dataset "gnomad_r2_1" has no unexpected changes 1`] = `
+
+
+
+
+
-
-
+
+
+
+
+ GRCh38
+
+
+
+ gnomAD v3.1.2
+
+ 76,156 samples
+
+
+
+
+
+ gnomAD v3.1.2 (non-cancer)
+
+ 74,023 samples
+
+
+
+
+
+ gnomAD v3.1.2 (non-neuro)
+
+ 67,442 samples
+
+
+
+
+
+ gnomAD v3.1.2 (non-v2)
+
+ 57,344 samples
+
+
+
+
+
+ gnomAD v3.1.2 (non-TOPMed)
+
+ 40,433 samples
+
+
+
+
+
+ gnomAD v3.1.2 (controls/biobanks)
+
+ 16,465 samples
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD v2.1.1
+
+ 141,456 samples
+
+
+
+
+
+ gnomAD v2.1.1 (non-TOPMed)
+
+ 135,743 samples
+
+
+
+
+
+ gnomAD v2.1.1 (non-cancer)
+
+ 134,187 samples
+
+
+
+
+
+ gnomAD v2.1.1 (non-neuro)
+
+ 114,704 samples
+
+
+
+
+
+ gnomAD v2.1.1 (controls)
+
+ 60,146 samples
+
+
+
+
+
+ ExAC v1.0
+
+ 60,706 samples
+
+
+
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (non-neuro)
+
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
+
+
+
+
+
+
+
+
+
+
+
+ More information
+
+
+
+
+
+
+
+
+
+
+ Genome build
+
+
+ GRCh37
+ /
+ hg19
+
+
+
+
+ Ensembl gene ID
+
+
+ dummy_gene-1
+ .
+ 5.6.7.8
+
+
+
+
+ Symbol in GENCODE v19
+
+
+
+
+
+
+
+
+
+
+
+ Constraint
+
+
+
+ More information
+
+
+
+
+ Variant co-occurrence
+
+
+
+ More information
+
+
+
+
+
+ Constraint not available for this
+ gene
+
+
+
+
+ Viewing full
+ gene
+ .
+
+
+ Zoom in
+
+
+
+
+
+
+
+
+ Metric:
+
+
+
+ Mean
+
+
+ Median
+
+
+
+
+ Over
+ 1
+
+
+ Over
+ 5
+
+
+ Over
+ 10
+
+
+ Over
+ 15
+
+
+ Over
+ 20
+
+
+ Over
+ 25
+
+
+ Over
+ 30
+
+
+ Over
+ 50
+
+
+ Over
+ 100
+
+
+
+
+
+ Save plot
+
+
+
+
+
+
+ Fraction of individuals with coverage over 30
+
+
+
+
+
+
+
+
+
+
+
+ 0.1
+
+
+
+
+
+
+
+
+
+ 0.2
+
+
+
+
+
+
+
+
+
+ 0.3
+
+
+
+
+
+
+
+
+
+ 0.4
+
+
+
+
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
+
+
+
+ 0.6
+
+
+
+
+
+
+
+
+
+ 0.7
+
+
+
+
+
+
+
+
+
+ 0.8
+
+
+
+
+
+
+
+
+
+ 0.9
+
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Show
+ transcripts
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Regional missense constraint
+
+
+
+
+ More information
+
+
+
+
+
+
+ gnomAD SVs v4
+
+ 63,046 samples
+
+
+
+
+
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
- 63,046 samples
+ 464,566 samples
@@ -10676,30 +12157,6 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_controls" has no unexpected c
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
@@ -12135,7 +13592,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_cancer" has no unexpected
>
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
@@ -13713,7 +15163,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_neuro" has no unexpected
>
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
@@ -15291,7 +16734,7 @@ exports[`GenePage with non-SV dataset "gnomad_r2_1_non_topmed" has no unexpected
>
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
@@ -16870,12 +18306,12 @@ exports[`GenePage with non-SV dataset "gnomad_r3" has no unexpected changes 1`]
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
@@ -18352,12 +19781,12 @@ exports[`GenePage with non-SV dataset "gnomad_r3_controls_and_biobanks" has no u
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
8,342 samples
-
-
-
-
- gnomAD SVs v2.1 (controls)
-
- 5,192 samples
-
-
-
-
-
-
- GRCh38
-
+
+
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (controls)
- 464,566 samples
+ 5,192 samples
@@ -19834,12 +21256,12 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_cancer" has no unexpected c
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
@@ -21316,12 +22731,12 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_neuro" has no unexpected ch
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
@@ -22798,12 +24206,12 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_topmed" has no unexpected c
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
@@ -24280,12 +25681,12 @@ exports[`GenePage with non-SV dataset "gnomad_r3_non_v2" has no unexpected chang
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
diff --git a/browser/src/GenePage/__snapshots__/VariantCooccurrenceCountsTable.spec.tsx.snap b/browser/src/GenePage/__snapshots__/VariantCooccurrenceCountsTable.spec.tsx.snap
index 183801efc..adb4b2029 100644
--- a/browser/src/GenePage/__snapshots__/VariantCooccurrenceCountsTable.spec.tsx.snap
+++ b/browser/src/GenePage/__snapshots__/VariantCooccurrenceCountsTable.spec.tsx.snap
@@ -2050,6 +2050,14 @@ exports[`VariantCoocurrenceCountsTable with non v2 dataset "gnomad_r3_non_v2" ha
`;
+exports[`VariantCoocurrenceCountsTable with non v2 dataset "gnomad_r4" has no unexpected changes and renders as placeholder text 1`] = `
+
+
+ Variant co-occurrence is only available for gnomAD v2.
+
+
+`;
+
exports[`VariantCoocurrenceCountsTable with non v2 dataset "gnomad_sv_r4" has no unexpected changes and renders as placeholder text 1`] = `
diff --git a/browser/src/MitochondrialVariantPage/__snapshots__/MitochondrialVariantPage.spec.tsx.snap b/browser/src/MitochondrialVariantPage/__snapshots__/MitochondrialVariantPage.spec.tsx.snap
index d7b6836ac..f5995e291 100644
--- a/browser/src/MitochondrialVariantPage/__snapshots__/MitochondrialVariantPage.spec.tsx.snap
+++ b/browser/src/MitochondrialVariantPage/__snapshots__/MitochondrialVariantPage.spec.tsx.snap
@@ -125,7 +125,7 @@ exports[`MitochondrialVariantPage with dataset gnomad_cnv_r4 has no unexpected c
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -8402,7 +8419,7 @@ exports[`MitochondrialVariantPage with dataset gnomad_r3 has no unexpected chang
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -16589,7 +16623,7 @@ exports[`MitochondrialVariantPage with dataset gnomad_r3_controls_and_biobanks h
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -24776,7 +24827,7 @@ exports[`MitochondrialVariantPage with dataset gnomad_r3_non_cancer has no unexp
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -32963,7 +33031,7 @@ exports[`MitochondrialVariantPage with dataset gnomad_r3_non_neuro has no unexpe
>
+
+
+ GRCh38
+
+
+
+ gnomAD SVs v4
+
+ 63,046 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -49337,7 +49439,7 @@ exports[`MitochondrialVariantPage with dataset gnomad_r3_non_v2 has no unexpecte
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -57524,7 +57643,7 @@ exports[`MitochondrialVariantPage with dataset gnomad_r4 has no unexpected chang
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -65711,7 +65847,7 @@ exports[`MitochondrialVariantPage with dataset gnomad_sv_r2_1 has no unexpected
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -73898,7 +74051,7 @@ exports[`MitochondrialVariantPage with dataset gnomad_sv_r2_1_controls has no un
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -82080,6 +82250,149 @@ exports[`MitochondrialVariantPage with dataset gnomad_sv_r2_1_non_neuro has no u
+
+
+ gnomAD SVs v2.1 (non-neuro)
+
+
+
+
+
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (non-neuro)
+
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
+
+
+
+
+
+
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD SVs v4
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
diff --git a/browser/src/RegionPage/__snapshots__/RegionPage.spec.tsx.snap b/browser/src/RegionPage/__snapshots__/RegionPage.spec.tsx.snap
index 6ba969c09..d616317ef 100644
--- a/browser/src/RegionPage/__snapshots__/RegionPage.spec.tsx.snap
+++ b/browser/src/RegionPage/__snapshots__/RegionPage.spec.tsx.snap
@@ -4807,6 +4807,7 @@ exports[`RegionPage with "gnomad_sv_r4" dataset has no unexpected changes for a
{
gnomad_sv_r2_1_controls: 'gnomad_sv_r2_1',
gnomad_sv_r2_1_non_neuro: 'gnomad_sv_r2_1',
gnomad_sv_r4: 'gnomad_sv_r4',
- gnomad_r4: 'gnomad_r4',
+ gnomad_r4: 'gnomad_r2_1', // FIX AFTER V4 MERGED
gnomad_cnv_r4: 'gnomad_cnv_r4',
}
diff --git a/browser/src/StructuralVariantPage/__snapshots__/StructuralVariantPage.spec.tsx.snap b/browser/src/StructuralVariantPage/__snapshots__/StructuralVariantPage.spec.tsx.snap
index e1d190dda..e889f00ce 100644
--- a/browser/src/StructuralVariantPage/__snapshots__/StructuralVariantPage.spec.tsx.snap
+++ b/browser/src/StructuralVariantPage/__snapshots__/StructuralVariantPage.spec.tsx.snap
@@ -93,6 +93,23 @@ exports[`StructuralVariantPage with dataset gnomad_sv_r2_1 with a complex varian
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -813,12 +830,12 @@ exports[`TranscriptPage with dataset "gnomad_cnv_r4" has no unexpected changes 1
- gnomAD v2.1.1
+ gnomAD v3.1.2
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -1848,7 +1882,7 @@ exports[`TranscriptPage with dataset "gnomad_r2_1" has no unexpected changes 1`]
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -2622,7 +2673,7 @@ exports[`TranscriptPage with dataset "gnomad_r2_1_controls" has no unexpected ch
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -3396,7 +3464,7 @@ exports[`TranscriptPage with dataset "gnomad_r2_1_non_cancer" has no unexpected
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -4170,7 +4255,7 @@ exports[`TranscriptPage with dataset "gnomad_r2_1_non_neuro" has no unexpected c
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -4944,7 +5046,7 @@ exports[`TranscriptPage with dataset "gnomad_r2_1_non_topmed" has no unexpected
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -5718,7 +5837,7 @@ exports[`TranscriptPage with dataset "gnomad_r3" has no unexpected changes 1`] =
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1 (non-neuro)
- 5,192 samples
+ 8,342 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (controls)
- 464,566 samples
+ 5,192 samples
@@ -6491,7 +6627,7 @@ exports[`TranscriptPage with dataset "gnomad_r3_controls_and_biobanks" has no un
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
-
-
+
+
+ GRCh37
+
+
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -7264,7 +7417,7 @@ exports[`TranscriptPage with dataset "gnomad_r3_non_cancer" has no unexpected ch
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1 (non-neuro)
- 5,192 samples
+ 8,342 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (controls)
- 464,566 samples
+ 5,192 samples
@@ -8037,7 +8207,7 @@ exports[`TranscriptPage with dataset "gnomad_r3_non_neuro" has no unexpected cha
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1 (non-neuro)
- 5,192 samples
+ 8,342 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (controls)
- 464,566 samples
+ 5,192 samples
@@ -8810,7 +8997,7 @@ exports[`TranscriptPage with dataset "gnomad_r3_non_topmed" has no unexpected ch
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1 (non-neuro)
- 5,192 samples
+ 8,342 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (controls)
- 464,566 samples
+ 5,192 samples
@@ -9583,7 +9787,7 @@ exports[`TranscriptPage with dataset "gnomad_r3_non_v2" has no unexpected change
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -10356,7 +10577,7 @@ exports[`TranscriptPage with dataset "gnomad_r4" has no unexpected changes 1`] =
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -11130,7 +11368,7 @@ exports[`TranscriptPage with dataset "gnomad_sv_r2_1" has no unexpected changes
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -11904,7 +12159,7 @@ exports[`TranscriptPage with dataset "gnomad_sv_r2_1_controls" has no unexpected
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -12678,7 +12950,7 @@ exports[`TranscriptPage with dataset "gnomad_sv_r2_1_non_neuro" has no unexpecte
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -13447,6 +13736,149 @@ exports[`TranscriptPage with dataset "gnomad_sv_r4" has no unexpected changes 1`
+
+
+ gnomAD SVs v4
+
+
+
+
+
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (non-neuro)
+
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
+
+
+
+
+
+
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -1412,12 +1429,12 @@ exports[`TranscriptPageContainer with dataset gnomad_cnv_r4 has no unexpected ch
- gnomAD v2.1.1
+ gnomAD v3.1.2
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -1872,7 +1906,7 @@ exports[`TranscriptPageContainer with dataset gnomad_cnv_r4 has no unexpected ch
FAKEGENE
@@ -1891,7 +1925,7 @@ exports[`TranscriptPageContainer with dataset gnomad_cnv_r4 has no unexpected ch
13
@@ -3046,7 +3080,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1 has no unexpected chan
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -4419,7 +4470,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_controls has no unexpe
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -5792,7 +5860,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_cancer has no unex
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -7165,7 +7250,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_neuro has no unexp
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -8538,7 +8640,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r2_1_non_topmed has no unex
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1 (non-neuro)
- 5,192 samples
+ 8,342 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (controls)
- 464,566 samples
+ 5,192 samples
@@ -9911,7 +10030,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3 has no unexpected change
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1 (non-neuro)
- 5,192 samples
+ 8,342 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (controls)
- 464,566 samples
+ 5,192 samples
@@ -11283,7 +11419,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_controls_and_biobanks ha
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -12655,7 +12808,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_cancer has no unexpe
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -14027,7 +14197,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_neuro has no unexpec
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -15399,7 +15586,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_topmed has no unexpe
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -16771,7 +16975,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r3_non_v2 has no unexpected
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -18143,7 +18364,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r4 has no unexpected change
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1 (non-neuro)
- 5,192 samples
+ 8,342 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (controls)
- 464,566 samples
+ 5,192 samples
@@ -18342,7 +18580,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r4 has no unexpected change
FAKEGENE
@@ -18361,7 +18599,7 @@ exports[`TranscriptPageContainer with dataset gnomad_r4 has no unexpected change
13
diff --git a/browser/src/__factories__/Gene.ts b/browser/src/__factories__/Gene.ts
index 6d1ee9013..857ec6a49 100644
--- a/browser/src/__factories__/Gene.ts
+++ b/browser/src/__factories__/Gene.ts
@@ -22,6 +22,7 @@ const geneFactory = Factory.define(({ params, associations }) => {
variants = [],
structural_variants = [],
clinvar_variants = [],
+ copy_number_variants = [],
} = params
const heterozygous_variant_cooccurrence_counts =
@@ -67,6 +68,7 @@ const geneFactory = Factory.define(({ params, associations }) => {
variants,
structural_variants,
clinvar_variants,
+ copy_number_variants,
}
})
diff --git a/browser/src/__snapshots__/DatasetSelector.spec.tsx.snap b/browser/src/__snapshots__/DatasetSelector.spec.tsx.snap
index db2f5b284..4f1c264f0 100644
--- a/browser/src/__snapshots__/DatasetSelector.spec.tsx.snap
+++ b/browser/src/__snapshots__/DatasetSelector.spec.tsx.snap
@@ -434,7 +434,7 @@ exports[`DataSelector with "exac" dataset selected has no unexpected changes 1`]
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -992,7 +1009,7 @@ exports[`DataSelector with "exac" dataset selected has no unexpected changes whe
>
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "exac" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_cnv_r4" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -1158,43 +1192,43 @@ exports[`DataSelector with "exac" dataset selected has no unexpected changes whe
box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
}
-.c1 {
+.c9 {
position: relative;
display: inline-block;
}
-.c1 .c2 {
+.c9 .c2 {
background: #cbd3da;
}
-.c1:first-child .c2 {
+.c9:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c1:last-child .c2 {
+.c9:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
}
-.c9 {
+.c1 {
position: relative;
display: inline-block;
}
-.c9 .c2 {
+.c1 .c2 {
background: none;
}
-.c9:first-child .c2 {
+.c1:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c9:last-child .c2 {
+.c1:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
@@ -1289,12 +1323,12 @@ exports[`DataSelector with "exac" dataset selected has no unexpected changes whe
- ExAC v1.0
+ gnomAD v3.1.2
- gnomAD SVs v2.1
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
`;
-exports[`DataSelector with "gnomad_cnv_r4" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_cnv_r4" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -1745,5108 +1772,38 @@ exports[`DataSelector with "gnomad_cnv_r4" dataset selected has no unexpected ch
display: inline-block;
}
-.c9 .c2 {
- background: #cbd3da;
-}
-
-.c9:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c9:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c1 {
- position: relative;
- display: inline-block;
-}
-
-.c1 .c2 {
- background: none;
-}
-
-.c1:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c1:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c4 img {
- position: relative;
- top: 0.11em;
- width: 0.9em;
- height: 0.9em;
-}
-
-.c5 {
- position: absolute;
- z-index: 1;
- right: 0;
- display: none;
- width: 220px;
- padding: 0.5em 0;
- border: 1px solid #6c757d;
- margin: 0;
- background: #f8f9fa;
- list-style-type: none;
-}
-
-.c7 {
- display: inline-block;
- box-sizing: border-box;
- width: 100%;
- padding: 0.25em 0.5em;
- color: #000;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c7:visited {
- color: #000;
-}
-
-.c7:active,
-.c7:focus,
-.c7:hover {
- background: rgba(66,139,202,0.25);
-}
-
-.c7:focus {
- outline: 2px solid #428bca;
-}
-
-.c8 {
- margin-top: 0.125em;
- margin-left: 5px;
- font-size: 0.8em;
- opacity: 0.6;
-}
-
-.c6 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-pack: start;
- -webkit-justify-content: flex-start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- margin-left: 2px;
- font-weight: bold;
-}
-
-@media (max-width:1200px) {
- .c5 {
- right: auto;
- left: -100px;
- }
-}
-
-@media (max-width:900px) {
- .c5 {
- left: -150px;
- }
-}
-
-
-
-
-
- gnomAD exome CNVs v4.0
-
-
-
-
-
-
-
-
-
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
-
-
-
-`;
-
-exports[`DataSelector with "gnomad_cnv_r4" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
-.c0 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- padding: 0;
- border: 1px solid #6c757d;
- border-radius: 0.5em;
- margin: 0;
- list-style-type: none;
-}
-
-.c3 {
- display: -webkit-inline-box;
- display: -webkit-inline-flex;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-align-items: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- box-sizing: border-box;
- height: 100%;
- padding: 0.375em 0.25em;
- color: #000;
- outline: none;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c3:visited {
- color: #000;
-}
-
-.c3:focus {
- box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
-}
-
-.c9 {
- position: relative;
- display: inline-block;
-}
-
-.c9 .c2 {
- background: #cbd3da;
-}
-
-.c9:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c9:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c1 {
- position: relative;
- display: inline-block;
-}
-
-.c1 .c2 {
- background: none;
-}
-
-.c1:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c1:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c4 img {
- position: relative;
- top: 0.11em;
- width: 0.9em;
- height: 0.9em;
-}
-
-.c5 {
- position: absolute;
- z-index: 1;
- right: 0;
- display: none;
- width: 220px;
- padding: 0.5em 0;
- border: 1px solid #6c757d;
- margin: 0;
- background: #f8f9fa;
- list-style-type: none;
-}
-
-.c7 {
- display: inline-block;
- box-sizing: border-box;
- width: 100%;
- padding: 0.25em 0.5em;
- color: #000;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c7:visited {
- color: #000;
-}
-
-.c7:active,
-.c7:focus,
-.c7:hover {
- background: rgba(66,139,202,0.25);
-}
-
-.c7:focus {
- outline: 2px solid #428bca;
-}
-
-.c8 {
- margin-top: 0.125em;
- margin-left: 5px;
- font-size: 0.8em;
- opacity: 0.6;
-}
-
-.c6 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-pack: start;
- -webkit-justify-content: flex-start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- margin-left: 2px;
- font-weight: bold;
-}
-
-@media (max-width:1200px) {
- .c5 {
- right: auto;
- left: -100px;
- }
-}
-
-@media (max-width:900px) {
- .c5 {
- left: -150px;
- }
-}
-
-
-
-
-
- gnomAD exome CNVs v4.0
-
-
-
-
-
-
-
-
-
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
-
-
-
-`;
-
-exports[`DataSelector with "gnomad_r2_1" dataset selected has no unexpected changes 1`] = `
-.c0 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- padding: 0;
- border: 1px solid #6c757d;
- border-radius: 0.5em;
- margin: 0;
- list-style-type: none;
-}
-
-.c3 {
- display: -webkit-inline-box;
- display: -webkit-inline-flex;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-align-items: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- box-sizing: border-box;
- height: 100%;
- padding: 0.375em 0.25em;
- color: #000;
- outline: none;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c3:visited {
- color: #000;
-}
-
-.c3:focus {
- box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
-}
-
-.c1 {
- position: relative;
- display: inline-block;
-}
-
-.c1 .c2 {
- background: #cbd3da;
-}
-
-.c1:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c1:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c9 {
- position: relative;
- display: inline-block;
-}
-
-.c9 .c2 {
- background: none;
-}
-
-.c9:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c9:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c4 img {
- position: relative;
- top: 0.11em;
- width: 0.9em;
- height: 0.9em;
-}
-
-.c5 {
- position: absolute;
- z-index: 1;
- right: 0;
- display: none;
- width: 220px;
- padding: 0.5em 0;
- border: 1px solid #6c757d;
- margin: 0;
- background: #f8f9fa;
- list-style-type: none;
-}
-
-.c7 {
- display: inline-block;
- box-sizing: border-box;
- width: 100%;
- padding: 0.25em 0.5em;
- color: #000;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c7:visited {
- color: #000;
-}
-
-.c7:active,
-.c7:focus,
-.c7:hover {
- background: rgba(66,139,202,0.25);
-}
-
-.c7:focus {
- outline: 2px solid #428bca;
-}
-
-.c8 {
- margin-top: 0.125em;
- margin-left: 5px;
- font-size: 0.8em;
- opacity: 0.6;
-}
-
-.c6 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-pack: start;
- -webkit-justify-content: flex-start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- margin-left: 2px;
- font-weight: bold;
-}
-
-@media (max-width:1200px) {
- .c5 {
- right: auto;
- left: -100px;
- }
-}
-
-@media (max-width:900px) {
- .c5 {
- left: -150px;
- }
-}
-
-
-
-
-
- gnomAD exome CNVs v4.0
-
-
-
-
-
-
-
-
-
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
-
-
-
-`;
-
-exports[`DataSelector with "gnomad_r2_1" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
-.c0 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- padding: 0;
- border: 1px solid #6c757d;
- border-radius: 0.5em;
- margin: 0;
- list-style-type: none;
-}
-
-.c3 {
- display: -webkit-inline-box;
- display: -webkit-inline-flex;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-align-items: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- box-sizing: border-box;
- height: 100%;
- padding: 0.375em 0.25em;
- color: #000;
- outline: none;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c3:visited {
- color: #000;
-}
-
-.c3:focus {
- box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
-}
-
-.c1 {
- position: relative;
- display: inline-block;
-}
-
-.c1 .c2 {
- background: #cbd3da;
-}
-
-.c1:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c1:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c9 {
- position: relative;
- display: inline-block;
-}
-
-.c9 .c2 {
- background: none;
-}
-
-.c9:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c9:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c4 img {
- position: relative;
- top: 0.11em;
- width: 0.9em;
- height: 0.9em;
-}
-
-.c5 {
- position: absolute;
- z-index: 1;
- right: 0;
- display: none;
- width: 220px;
- padding: 0.5em 0;
- border: 1px solid #6c757d;
- margin: 0;
- background: #f8f9fa;
- list-style-type: none;
-}
-
-.c7 {
- display: inline-block;
- box-sizing: border-box;
- width: 100%;
- padding: 0.25em 0.5em;
- color: #000;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c7:visited {
- color: #000;
-}
-
-.c7:active,
-.c7:focus,
-.c7:hover {
- background: rgba(66,139,202,0.25);
-}
-
-.c7:focus {
- outline: 2px solid #428bca;
-}
-
-.c8 {
- margin-top: 0.125em;
- margin-left: 5px;
- font-size: 0.8em;
- opacity: 0.6;
-}
-
-.c6 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-pack: start;
- -webkit-justify-content: flex-start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- margin-left: 2px;
- font-weight: bold;
-}
-
-@media (max-width:1200px) {
- .c5 {
- right: auto;
- left: -100px;
- }
-}
-
-@media (max-width:900px) {
- .c5 {
- left: -150px;
- }
-}
-
-
-
-
-
- gnomAD exome CNVs v4.0
-
-
-
-
-
-
-
-
-
-
-
- GRCh37
-
-
-
- gnomAD SVs v2.1
-
- 10,847 samples
-
-
-
-
-
- gnomAD SVs v2.1 (non-neuro)
-
- 8,342 samples
-
-
-
-
-
- gnomAD SVs v2.1 (controls)
-
- 5,192 samples
-
-
-
-
-
-
-
-`;
-
-exports[`DataSelector with "gnomad_r2_1" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
-.c0 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- padding: 0;
- border: 1px solid #6c757d;
- border-radius: 0.5em;
- margin: 0;
- list-style-type: none;
-}
-
-.c3 {
- display: -webkit-inline-box;
- display: -webkit-inline-flex;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-align-items: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- box-sizing: border-box;
- height: 100%;
- padding: 0.375em 0.25em;
- color: #000;
- outline: none;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c3:visited {
- color: #000;
-}
-
-.c3:focus {
- box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
-}
-
-.c1 {
- position: relative;
- display: inline-block;
-}
-
-.c1 .c2 {
- background: #cbd3da;
-}
-
-.c1:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c1:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c9 {
- position: relative;
- display: inline-block;
-}
-
-.c9 .c2 {
- background: none;
-}
-
-.c9:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c9:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c4 img {
- position: relative;
- top: 0.11em;
- width: 0.9em;
- height: 0.9em;
-}
-
-.c5 {
- position: absolute;
- z-index: 1;
- right: 0;
- display: none;
- width: 220px;
- padding: 0.5em 0;
- border: 1px solid #6c757d;
- margin: 0;
- background: #f8f9fa;
- list-style-type: none;
-}
-
-.c7 {
- display: inline-block;
- box-sizing: border-box;
- width: 100%;
- padding: 0.25em 0.5em;
- color: #000;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c7:visited {
- color: #000;
-}
-
-.c7:active,
-.c7:focus,
-.c7:hover {
- background: rgba(66,139,202,0.25);
-}
-
-.c7:focus {
- outline: 2px solid #428bca;
-}
-
-.c8 {
- margin-top: 0.125em;
- margin-left: 5px;
- font-size: 0.8em;
- opacity: 0.6;
-}
-
-.c6 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-pack: start;
- -webkit-justify-content: flex-start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- margin-left: 2px;
- font-weight: bold;
-}
-
-@media (max-width:1200px) {
- .c5 {
- right: auto;
- left: -100px;
- }
-}
-
-@media (max-width:900px) {
- .c5 {
- left: -150px;
- }
-}
-
-
-
-
-
- gnomAD SVs v2.1
-
-
-
-
-
-
-
-
-
-
-
- GRCh37
-
-
-
- gnomAD SVs v2.1
-
- 10,847 samples
-
-
-
-
-
- gnomAD SVs v2.1 (non-neuro)
-
- 8,342 samples
-
-
-
-
-
- gnomAD SVs v2.1 (controls)
-
- 5,192 samples
-
-
-
-
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
-
-
-
-`;
-
-exports[`DataSelector with "gnomad_r2_1_controls" dataset selected has no unexpected changes 1`] = `
-.c0 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- padding: 0;
- border: 1px solid #6c757d;
- border-radius: 0.5em;
- margin: 0;
- list-style-type: none;
-}
-
-.c3 {
- display: -webkit-inline-box;
- display: -webkit-inline-flex;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-align-items: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- box-sizing: border-box;
- height: 100%;
- padding: 0.375em 0.25em;
- color: #000;
- outline: none;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c3:visited {
- color: #000;
-}
-
-.c3:focus {
- box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
-}
-
-.c1 {
- position: relative;
- display: inline-block;
-}
-
-.c1 .c2 {
- background: #cbd3da;
-}
-
-.c1:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c1:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c9 {
- position: relative;
- display: inline-block;
-}
-
-.c9 .c2 {
- background: none;
-}
-
-.c9:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c9:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c4 img {
- position: relative;
- top: 0.11em;
- width: 0.9em;
- height: 0.9em;
-}
-
-.c5 {
- position: absolute;
- z-index: 1;
- right: 0;
- display: none;
- width: 220px;
- padding: 0.5em 0;
- border: 1px solid #6c757d;
- margin: 0;
- background: #f8f9fa;
- list-style-type: none;
-}
-
-.c7 {
- display: inline-block;
- box-sizing: border-box;
- width: 100%;
- padding: 0.25em 0.5em;
- color: #000;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c7:visited {
- color: #000;
-}
-
-.c7:active,
-.c7:focus,
-.c7:hover {
- background: rgba(66,139,202,0.25);
-}
-
-.c7:focus {
- outline: 2px solid #428bca;
-}
-
-.c8 {
- margin-top: 0.125em;
- margin-left: 5px;
- font-size: 0.8em;
- opacity: 0.6;
-}
-
-.c6 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-pack: start;
- -webkit-justify-content: flex-start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- margin-left: 2px;
- font-weight: bold;
-}
-
-@media (max-width:1200px) {
- .c5 {
- right: auto;
- left: -100px;
- }
-}
-
-@media (max-width:900px) {
- .c5 {
- left: -150px;
- }
-}
-
-
-
-
-
- gnomAD exome CNVs v4.0
-
-
-
-
-
-
-
-
-
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
-
-
-
-`;
-
-exports[`DataSelector with "gnomad_r2_1_controls" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
-.c0 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- padding: 0;
- border: 1px solid #6c757d;
- border-radius: 0.5em;
- margin: 0;
- list-style-type: none;
-}
-
-.c3 {
- display: -webkit-inline-box;
- display: -webkit-inline-flex;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-align-items: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- box-sizing: border-box;
- height: 100%;
- padding: 0.375em 0.25em;
- color: #000;
- outline: none;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c3:visited {
- color: #000;
-}
-
-.c3:focus {
- box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
-}
-
-.c1 {
- position: relative;
- display: inline-block;
-}
-
-.c1 .c2 {
- background: #cbd3da;
-}
-
-.c1:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c1:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c9 {
- position: relative;
- display: inline-block;
-}
-
-.c9 .c2 {
- background: none;
-}
-
-.c9:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c9:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c4 img {
- position: relative;
- top: 0.11em;
- width: 0.9em;
- height: 0.9em;
-}
-
-.c5 {
- position: absolute;
- z-index: 1;
- right: 0;
- display: none;
- width: 220px;
- padding: 0.5em 0;
- border: 1px solid #6c757d;
- margin: 0;
- background: #f8f9fa;
- list-style-type: none;
-}
-
-.c7 {
- display: inline-block;
- box-sizing: border-box;
- width: 100%;
- padding: 0.25em 0.5em;
- color: #000;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c7:visited {
- color: #000;
-}
-
-.c7:active,
-.c7:focus,
-.c7:hover {
- background: rgba(66,139,202,0.25);
-}
-
-.c7:focus {
- outline: 2px solid #428bca;
-}
-
-.c8 {
- margin-top: 0.125em;
- margin-left: 5px;
- font-size: 0.8em;
- opacity: 0.6;
-}
-
-.c6 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-pack: start;
- -webkit-justify-content: flex-start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- margin-left: 2px;
- font-weight: bold;
-}
-
-@media (max-width:1200px) {
- .c5 {
- right: auto;
- left: -100px;
- }
-}
-
-@media (max-width:900px) {
- .c5 {
- left: -150px;
- }
-}
-
-
-
-
-
- gnomAD exome CNVs v4.0
-
-
-
-
-
-
-
-
-
-
-
- GRCh37
-
-
-
- gnomAD SVs v2.1
-
- 10,847 samples
-
-
-
-
-
- gnomAD SVs v2.1 (non-neuro)
-
- 8,342 samples
-
-
-
-
-
- gnomAD SVs v2.1 (controls)
-
- 5,192 samples
-
-
-
-
-
-
-
-`;
-
-exports[`DataSelector with "gnomad_r2_1_controls" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
-.c0 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- padding: 0;
- border: 1px solid #6c757d;
- border-radius: 0.5em;
- margin: 0;
- list-style-type: none;
-}
-
-.c3 {
- display: -webkit-inline-box;
- display: -webkit-inline-flex;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-align-items: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- box-sizing: border-box;
- height: 100%;
- padding: 0.375em 0.25em;
- color: #000;
- outline: none;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c3:visited {
- color: #000;
-}
-
-.c3:focus {
- box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
-}
-
-.c1 {
- position: relative;
- display: inline-block;
-}
-
-.c1 .c2 {
- background: #cbd3da;
-}
-
-.c1:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c1:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c9 {
- position: relative;
- display: inline-block;
-}
-
-.c9 .c2 {
- background: none;
-}
-
-.c9:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c9:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c4 img {
- position: relative;
- top: 0.11em;
- width: 0.9em;
- height: 0.9em;
-}
-
-.c5 {
- position: absolute;
- z-index: 1;
- right: 0;
- display: none;
- width: 220px;
- padding: 0.5em 0;
- border: 1px solid #6c757d;
- margin: 0;
- background: #f8f9fa;
- list-style-type: none;
-}
-
-.c7 {
- display: inline-block;
- box-sizing: border-box;
- width: 100%;
- padding: 0.25em 0.5em;
- color: #000;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c7:visited {
- color: #000;
-}
-
-.c7:active,
-.c7:focus,
-.c7:hover {
- background: rgba(66,139,202,0.25);
-}
-
-.c7:focus {
- outline: 2px solid #428bca;
-}
-
-.c8 {
- margin-top: 0.125em;
- margin-left: 5px;
- font-size: 0.8em;
- opacity: 0.6;
-}
-
-.c6 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-pack: start;
- -webkit-justify-content: flex-start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- margin-left: 2px;
- font-weight: bold;
-}
-
-@media (max-width:1200px) {
- .c5 {
- right: auto;
- left: -100px;
- }
-}
-
-@media (max-width:900px) {
- .c5 {
- left: -150px;
- }
-}
-
-
-
-
-
- gnomAD SVs v2.1
-
-
-
-
-
-
-
-
-
-
-
- GRCh37
-
-
-
- gnomAD SVs v2.1
-
- 10,847 samples
-
-
-
-
-
- gnomAD SVs v2.1 (non-neuro)
-
- 8,342 samples
-
-
-
-
-
- gnomAD SVs v2.1 (controls)
-
- 5,192 samples
-
-
-
-
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
-
-
-
-`;
-
-exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unexpected changes 1`] = `
-.c0 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- padding: 0;
- border: 1px solid #6c757d;
- border-radius: 0.5em;
- margin: 0;
- list-style-type: none;
-}
-
-.c3 {
- display: -webkit-inline-box;
- display: -webkit-inline-flex;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-align-items: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- box-sizing: border-box;
- height: 100%;
- padding: 0.375em 0.25em;
- color: #000;
- outline: none;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c3:visited {
- color: #000;
-}
-
-.c3:focus {
- box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
-}
-
-.c1 {
- position: relative;
- display: inline-block;
-}
-
-.c1 .c2 {
- background: #cbd3da;
-}
-
-.c1:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c1:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c9 {
- position: relative;
- display: inline-block;
-}
-
-.c9 .c2 {
- background: none;
-}
-
-.c9:first-child .c2 {
- padding-left: 0.75em;
- border-top-left-radius: 0.5em;
- border-bottom-left-radius: 0.5em;
-}
-
-.c9:last-child .c2 {
- padding-right: 0.75em;
- border-top-right-radius: 0.5em;
- border-bottom-right-radius: 0.5em;
-}
-
-.c4 img {
- position: relative;
- top: 0.11em;
- width: 0.9em;
- height: 0.9em;
-}
-
-.c5 {
- position: absolute;
- z-index: 1;
- right: 0;
- display: none;
- width: 220px;
- padding: 0.5em 0;
- border: 1px solid #6c757d;
- margin: 0;
- background: #f8f9fa;
- list-style-type: none;
-}
-
-.c7 {
- display: inline-block;
- box-sizing: border-box;
- width: 100%;
- padding: 0.25em 0.5em;
- color: #000;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c7:visited {
- color: #000;
-}
-
-.c7:active,
-.c7:focus,
-.c7:hover {
- background: rgba(66,139,202,0.25);
-}
-
-.c7:focus {
- outline: 2px solid #428bca;
-}
-
-.c8 {
- margin-top: 0.125em;
- margin-left: 5px;
- font-size: 0.8em;
- opacity: 0.6;
-}
-
-.c6 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-pack: start;
- -webkit-justify-content: flex-start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- margin-left: 2px;
- font-weight: bold;
-}
-
-@media (max-width:1200px) {
- .c5 {
- right: auto;
- left: -100px;
- }
-}
-
-@media (max-width:900px) {
- .c5 {
- left: -150px;
- }
-}
-
-
-
-
-
- gnomAD exome CNVs v4.0
-
-
-
-
-
-
-
-
-
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
-
-
-
-`;
-
-exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
-.c0 {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- -webkit-flex-direction: row;
- -ms-flex-direction: row;
- flex-direction: row;
- padding: 0;
- border: 1px solid #6c757d;
- border-radius: 0.5em;
- margin: 0;
- list-style-type: none;
-}
-
-.c3 {
- display: -webkit-inline-box;
- display: -webkit-inline-flex;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-align-items: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- box-sizing: border-box;
- height: 100%;
- padding: 0.375em 0.25em;
- color: #000;
- outline: none;
- -webkit-text-decoration: none;
- text-decoration: none;
-}
-
-.c3:visited {
- color: #000;
-}
-
-.c3:focus {
- box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
-}
-
-.c1 {
- position: relative;
- display: inline-block;
-}
-
-.c1 .c2 {
+.c9 .c2 {
background: #cbd3da;
}
-.c1:first-child .c2 {
+.c9:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c1:last-child .c2 {
+.c9:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
}
-.c9 {
+.c1 {
position: relative;
display: inline-block;
}
-.c9 .c2 {
+.c1 .c2 {
background: none;
}
-.c9:first-child .c2 {
+.c1:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c9:last-child .c2 {
+.c1:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
@@ -6941,12 +1898,12 @@ exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unex
- gnomAD v2.1.1 (non-cancer)
+ gnomAD v3.1.2
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r2_1" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -7499,12 +2473,12 @@ exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unex
- gnomAD v2.1.1 (non-cancer)
+ gnomAD v2.1.1
- gnomAD SVs v2.1
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -8466,7 +3450,7 @@ exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexp
`;
-exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r2_1_controls" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -8639,12 +3623,12 @@ exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexp
- gnomAD v2.1.1 (non-neuro)
+ gnomAD v2.1.1 (controls)
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r2_1_controls" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -9197,12 +4198,12 @@ exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexp
- gnomAD v2.1.1 (non-neuro)
+ gnomAD v2.1.1 (controls)
- gnomAD SVs v2.1
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
`;
-exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -9779,12 +4773,12 @@ exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unex
- gnomAD v2.1.1 (non-TOPMed)
+ gnomAD v2.1.1 (non-cancer)
+
+
+ GRCh38
+
+
+
+ gnomAD SVs v4
+
+ 63,046 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
`;
-exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r2_1_non_cancer" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -10337,12 +5348,12 @@ exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unex
- gnomAD v2.1.1 (non-TOPMed)
+ gnomAD v2.1.1 (non-cancer)
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -10895,12 +5923,12 @@ exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unex
- gnomAD v2.1.1 (non-TOPMed)
+ gnomAD v2.1.1 (non-neuro)
- gnomAD SVs v2.1
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
`;
-exports[`DataSelector with "gnomad_r3" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r2_1_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -11477,12 +6498,12 @@ exports[`DataSelector with "gnomad_r3" dataset selected has no unexpected change
- gnomAD v3.1.2
+ gnomAD v2.1.1 (non-neuro)
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_r3" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -12035,12 +7073,12 @@ exports[`DataSelector with "gnomad_r3" dataset selected has no unexpected change
- gnomAD v3.1.2
+ gnomAD v2.1.1 (non-TOPMed)
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
`;
-exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r2_1_non_topmed" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -12617,12 +7648,12 @@ exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected ha
- gnomAD v3.1.2 (controls/biobanks)
+ gnomAD v2.1.1 (non-TOPMed)
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r3" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -13175,12 +8223,12 @@ exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected ha
- gnomAD v3.1.2 (controls/biobanks)
+ gnomAD v3.1.2
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
- gnomAD SVs v4
+ gnomAD SVs v4
+
+ 63,046 samples
+
+
+
+
+
+ gnomAD exome CNVs v4.0
- 63,046 samples
+ 464,566 samples
@@ -13555,36 +8620,12 @@ exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected ha
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
`;
-exports[`DataSelector with "gnomad_r3_non_cancer" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r3" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -13757,12 +8798,12 @@ exports[`DataSelector with "gnomad_r3_non_cancer" dataset selected has no unexpe
- gnomAD v3.1.2 (non-cancer)
+ gnomAD v3.1.2
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_r3_non_cancer" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -14315,12 +9373,12 @@ exports[`DataSelector with "gnomad_r3_non_cancer" dataset selected has no unexpe
- gnomAD v3.1.2 (non-cancer)
+ gnomAD v3.1.2 (controls/biobanks)
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
`;
-exports[`DataSelector with "gnomad_r3_non_neuro" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r3_controls_and_biobanks" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -14897,12 +9948,12 @@ exports[`DataSelector with "gnomad_r3_non_neuro" dataset selected has no unexpec
- gnomAD v3.1.2 (non-neuro)
+ gnomAD v3.1.2 (controls/biobanks)
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_r3_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r3_non_cancer" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -15455,12 +10523,12 @@ exports[`DataSelector with "gnomad_r3_non_neuro" dataset selected has no unexpec
- gnomAD v3.1.2 (non-neuro)
+ gnomAD v3.1.2 (non-cancer)
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
`;
-exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r3_non_cancer" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -16037,12 +11098,12 @@ exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpe
- gnomAD v3.1.2 (non-TOPMed)
+ gnomAD v3.1.2 (non-cancer)
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r3_non_neuro" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -16595,12 +11673,12 @@ exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpe
- gnomAD v3.1.2 (non-TOPMed)
+ gnomAD v3.1.2 (non-neuro)
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
- gnomAD SVs v2.1 (controls)
-
- 5,192 samples
-
-
-
-
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (controls)
- 464,566 samples
+ 5,192 samples
@@ -17004,7 +12075,7 @@ exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpe
`;
-exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r3_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -17177,12 +12248,12 @@ exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected
- gnomAD v3.1.2 (non-v2)
+ gnomAD v3.1.2 (non-neuro)
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -17735,12 +12823,12 @@ exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected
- gnomAD v3.1.2 (non-v2)
+ gnomAD v3.1.2 (non-TOPMed)
- gnomAD SVs v4
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
`;
-exports[`DataSelector with "gnomad_r4" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r3_non_topmed" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -18317,12 +13398,12 @@ exports[`DataSelector with "gnomad_r4" dataset selected has no unexpected change
-
+ gnomAD v3.1.2 (non-TOPMed)
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -18702,7 +13800,7 @@ exports[`DataSelector with "gnomad_r4" dataset selected has no unexpected change
`;
-exports[`DataSelector with "gnomad_r4" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -18875,12 +13973,12 @@ exports[`DataSelector with "gnomad_r4" dataset selected has no unexpected change
-
+ gnomAD v3.1.2 (non-v2)
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+
+
+
+ GRCh37
+
+
+
+ gnomAD SVs v2.1
+
+ 10,847 samples
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1 (non-neuro)
- 5,192 samples
+ 8,342 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (controls)
- 464,566 samples
+ 5,192 samples
@@ -19260,7 +14375,7 @@ exports[`DataSelector with "gnomad_r4" dataset selected has no unexpected change
`;
-exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_r3_non_v2" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -19302,43 +14417,43 @@ exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected c
box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
}
-.c9 {
+.c1 {
position: relative;
display: inline-block;
}
-.c9 .c2 {
+.c1 .c2 {
background: #cbd3da;
}
-.c9:first-child .c2 {
+.c1:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c9:last-child .c2 {
+.c1:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
}
-.c1 {
+.c9 {
position: relative;
display: inline-block;
}
-.c1 .c2 {
+.c9 .c2 {
background: none;
}
-.c1:first-child .c2 {
+.c9:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c1:last-child .c2 {
+.c9:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
@@ -19433,12 +14548,12 @@ exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected c
- gnomAD v2.1.1
+ gnomAD v3.1.2 (non-v2)
- gnomAD SVs v2.1
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r4" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -19860,43 +14992,43 @@ exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected c
box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
}
-.c9 {
+.c1 {
position: relative;
display: inline-block;
}
-.c9 .c2 {
+.c1 .c2 {
background: #cbd3da;
}
-.c9:first-child .c2 {
+.c1:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c9:last-child .c2 {
+.c1:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
}
-.c1 {
+.c9 {
position: relative;
display: inline-block;
}
-.c1 .c2 {
+.c9 .c2 {
background: none;
}
-.c1:first-child .c2 {
+.c9:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c1:last-child .c2 {
+.c9:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
@@ -19991,12 +15123,12 @@ exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected c
- gnomAD v2.1.1
+
- gnomAD SVs v2.1
+ gnomAD exome CNVs v4.0
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
`;
-exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_r4" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -20442,43 +15567,43 @@ exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected c
box-shadow: 0 0 0 0.2em rgba(66,139,202,0.5);
}
-.c9 {
+.c1 {
position: relative;
display: inline-block;
}
-.c9 .c2 {
+.c1 .c2 {
background: #cbd3da;
}
-.c9:first-child .c2 {
+.c1:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c9:last-child .c2 {
+.c1:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
}
-.c1 {
+.c9 {
position: relative;
display: inline-block;
}
-.c1 .c2 {
+.c9 .c2 {
background: none;
}
-.c1:first-child .c2 {
+.c9:first-child .c2 {
padding-left: 0.75em;
border-top-left-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
-.c1:last-child .c2 {
+.c9:last-child .c2 {
padding-right: 0.75em;
border-top-right-radius: 0.5em;
border-bottom-right-radius: 0.5em;
@@ -20573,12 +15698,12 @@ exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected c
- gnomAD v2.1.1
+
- gnomAD SVs v2.1
+ gnomAD exome CNVs v4.0
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -20958,7 +16100,7 @@ exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected c
`;
-exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -21392,13 +16534,13 @@ exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no une
>
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -21951,12 +17110,12 @@ exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no une
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
-
-
- GRCh38
-
-
-
- gnomAD exome CNVs v4.0
-
- 464,566 samples
-
-
-
-
`;
-exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -22532,7 +17684,7 @@ exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no une
>
- GRCh37
+ GRCh38
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
@@ -22656,7 +17825,7 @@ exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no une
`;
-exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1_controls" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -23090,13 +18259,13 @@ exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no un
>
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD SVs v2.1 (controls)
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -23708,6 +18894,23 @@ exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no un
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_sv_r4" dataset selected has no unexpected changes 1`] = `
+exports[`DataSelector with "gnomad_sv_r2_1_non_neuro" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -23945,12 +19148,12 @@ exports[`DataSelector with "gnomad_sv_r4" dataset selected has no unexpected cha
- gnomAD v3.1.2
+ gnomAD v2.1.1
- gnomAD SVs v4
+ gnomAD SVs v2.1 (non-neuro)
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
`;
-exports[`DataSelector with "gnomad_sv_r4" dataset selected has no unexpected changes when showing all possible datasets 1`] = `
+exports[`DataSelector with "gnomad_sv_r4" dataset selected has no unexpected changes 1`] = `
.c0 {
display: -webkit-box;
display: -webkit-flex;
@@ -24824,6 +20044,23 @@ exports[`DataSelector with "gnomad_sv_r4" dataset selected has no unexpected cha
+
+
+ gnomAD exome CNVs v4.0
+
+ 464,566 samples
+
+
+
- gnomAD SVs v2.1
+ gnomAD SVs v4
- 10,847 samples
+ 63,046 samples
- gnomAD SVs v2.1 (non-neuro)
+ gnomAD exome CNVs v4.0
- 8,342 samples
+ 464,566 samples
+
+
+
+ GRCh37
+
- gnomAD SVs v2.1 (controls)
+ gnomAD SVs v2.1
- 5,192 samples
+ 10,847 samples
-
-
-
- GRCh38
-
- gnomAD exome CNVs v4.0
+ gnomAD SVs v2.1 (non-neuro)
- 464,566 samples
+ 8,342 samples
+
+
+
+
+
+ gnomAD SVs v2.1 (controls)
+
+ 5,192 samples
diff --git a/browser/src/__snapshots__/HomePage.spec.tsx.snap b/browser/src/__snapshots__/HomePage.spec.tsx.snap
index 1ab6d368b..e7c75f24b 100644
--- a/browser/src/__snapshots__/HomePage.spec.tsx.snap
+++ b/browser/src/__snapshots__/HomePage.spec.tsx.snap
@@ -210,6 +210,11 @@ exports[`Home Page has no unexpected changes 1`] = `
>
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+ gnomAD v2.1.1
+
+
+ gnomAD SVs v2.1
+
+
+ ExAC
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`Searchbox with selected dataset gnomad_cnv_r4 has no unexpected changes 1`] = `
+
+
+
+
+ gnomAD v3.1.2
+
+
+ gnomAD SVs v4
+
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
+
+
+
+ gnomAD v2.1.1
+
+
+ gnomAD SVs v2.1
+
+
+ ExAC
+
+
+
+
+
+
+
+
+
+`;
+
+exports[`Searchbox with selected dataset gnomad_r4 has no unexpected changes 1`] = `
+
+
+
+
+ gnomAD v3.1.2
+
+
+ gnomAD SVs v4
+
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
gnomAD SVs v4
+
+ gnomAD exome CNVs v4.0
+
= {
gnomad_sv_r4:
'http://example.com/variant_report_form?dataset_id_parameter=gnomAD%20v3&variant_id_param=1-234-A-C',
gnomad_r4:
- 'http://example.com/variant_report_form?dataset_id_parameter=gnomAD%20v2&variant_id_param=1-234-A-C',
+ 'http://example.com/variant_report_form?dataset_id_parameter=gnomAD%20v4&variant_id_param=1-234-A-C',
gnomad_cnv_r4:
- 'http://example.com/variant_report_form?dataset_id_parameter=gnomAD%20v2&variant_id_param=1-234-A-C',
+ 'http://example.com/variant_report_form?dataset_id_parameter=gnomAD%20v4&variant_id_param=1-234-A-C',
}
const originalEnv = process.env
diff --git a/dataset-metadata/metadata.spec.ts b/dataset-metadata/metadata.spec.ts
index e81147fa3..ee0c2c48f 100644
--- a/dataset-metadata/metadata.spec.ts
+++ b/dataset-metadata/metadata.spec.ts
@@ -205,7 +205,7 @@ const expectedCoverageDatasetIds: Record = {
gnomad_sv_r2_1_non_neuro: 'gnomad_r2_1',
gnomad_sv_r4: 'gnomad_r3',
gnomad_r4: 'gnomad_r4',
- gnomad_cnv_r4: 'gnomad_cnv_r4'
+ gnomad_cnv_r4: 'gnomad_r4'
}
describe.each(allDatasetIds)('coverageDataset for dataset %s', (datasetId: DatasetId) => {
diff --git a/dataset-metadata/metadata.ts b/dataset-metadata/metadata.ts
index 4179534d1..d37bf99ac 100644
--- a/dataset-metadata/metadata.ts
+++ b/dataset-metadata/metadata.ts
@@ -73,6 +73,9 @@ const extractCoverageDatasetId = (datasetId: DatasetId): DatasetId => {
}
const extractVariantFeedbackDescription = (datasetId: DatasetId): string | null => {
+ if (datasetId.startsWith('gnomad_r4') || datasetId.startsWith('gnomad_cnv_r4')) {
+ return 'gnomAD v4'
+ }
if (datasetId.startsWith('gnomad_r3') || datasetId.startsWith('gnomad_sv_r4')) {
return 'gnomAD v3'
}
From aa51e93b6d2b1a3ba90db3b320697d78ef20b9f3 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Sun, 29 Oct 2023 13:32:36 -0400
Subject: [PATCH 59/62] add new vcf file path
---
data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py
index 0c4643b63..0bc8a36ea 100644
--- a/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py
+++ b/data-pipeline/src/data_pipeline/pipelines/gnomad_v4_cnvs.py
@@ -14,7 +14,7 @@
prepare_gnomad_v4_cnvs,
"/gnomad_v4/gnomad_v4_cnvs/cnvs.ht",
{
- "vcf_path": "gs://gnomad-v4-cnvs/2023-10-24-jfu/GNOMAD_V4_release_1.0.vcf.gz",
+ "vcf_path": "gs://gnomad-v4-cnvs/2023-10-28-jfu/GNOMAD_V4_release_1.1.vcf.gz",
},
)
From 6b5a687229c69d7799298259449cb7166730c740 Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Sun, 29 Oct 2023 18:37:58 -0400
Subject: [PATCH 60/62] add chromosome to variant table position
---
.../src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx b/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx
index 447523e07..9a8eb73ef 100644
--- a/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx
+++ b/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx
@@ -93,7 +93,7 @@ const copyNumberVariantTableColumns = [
minWidth: 200,
compareFunction: makeNumericCompareFunction('pos'),
render: (variant: any) => {
- const position = `${variant.pos} - ${variant.end}`
+ const position = `${variant.chrom}:${variant.pos} - ${variant.end}`
return | {position} |
},
},
From c4180e2f7e4cf05292db2d6f96fd56b3c8622dce Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Sun, 29 Oct 2023 18:43:48 -0400
Subject: [PATCH 61/62] fix variant table broke search
---
.../copyNumberVariantTableColumns.tsx | 13 ++++++++++---
.../filterCopyNumberVariants.ts | 4 +---
2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx b/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx
index 9a8eb73ef..33929018c 100644
--- a/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx
+++ b/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx
@@ -11,7 +11,7 @@ import { cnvTypeColors, cnvTypeLabels } from './copyNumberVariantTypes'
import { Context } from './CopyNumberVariants'
import { CopyNumberVariant } from '../CopyNumberVariantPage/CopyNumberVariantPage'
-const renderType = (variant: CopyNumberVariant, _ :any, { colorKey, highlightWords }: any) => {
+const renderType = (variant: CopyNumberVariant, _: any, { colorKey, highlightWords }: any) => {
return (
{colorKey === 'type' && (
@@ -59,7 +59,14 @@ const copyNumberVariantTableColumns = [
heading: 'Class',
minWidth: 130,
compareFunction: makeStringCompareFunction('type'),
- getSearchTerms: (variant: CopyNumberVariant) => variant.type === 'DEL' || 'DUP',
+ getSearchTerms: (variant: any) => {
+ const variantType = variant.type
+ if (variantType === 'DEL') {
+ return 'deletion'
+ } else {
+ return 'duplication'
+ }
+ },
render: renderType,
},
@@ -113,7 +120,7 @@ const copyNumberVariantTableColumns = [
minWidth: 110,
compareFunction: makeStringCompareFunction('variant_id'),
getSearchTerms: (variant: any) => [variant.variant_id],
- render: (variant: any, _ :any,{ highlightWords }: any) => {
+ render: (variant: any, _: any, { highlightWords }: any) => {
return (
diff --git a/browser/src/CopyNumberVariantList/filterCopyNumberVariants.ts b/browser/src/CopyNumberVariantList/filterCopyNumberVariants.ts
index 14e9f2ff2..22a7086bb 100644
--- a/browser/src/CopyNumberVariantList/filterCopyNumberVariants.ts
+++ b/browser/src/CopyNumberVariantList/filterCopyNumberVariants.ts
@@ -7,12 +7,10 @@ const filterVariants = (variants: any, filter: any, selectedColumns: any) => {
: filter.includeTypes[v.type]
)
-
if (!filter.includeFilteredVariants) {
- filteredVariants = filteredVariants.filter((v: any) => v.filters.length === 0 )
+ filteredVariants = filteredVariants.filter((v: any) => v.filters.length === 0)
}
-
if (filter.searchText) {
const searchColumns = selectedColumns.filter((column: any) => !!column.getSearchTerms)
const getVariantSearchTerms = (variant: any) =>
From dfff177db1e328a32ff0c160c020349fc7d940ca Mon Sep 17 00:00:00 2001
From: Elissa Alarmani
Date: Sun, 29 Oct 2023 19:12:54 -0400
Subject: [PATCH 62/62] eslint fix
---
.../CopyNumberVariantList/copyNumberVariantTableColumns.tsx | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx b/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx
index 33929018c..78cb018ec 100644
--- a/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx
+++ b/browser/src/CopyNumberVariantList/copyNumberVariantTableColumns.tsx
@@ -63,9 +63,8 @@ const copyNumberVariantTableColumns = [
const variantType = variant.type
if (variantType === 'DEL') {
return 'deletion'
- } else {
- return 'duplication'
}
+ return 'duplication'
},
render: renderType,
},
| |