Skip to content

Commit

Permalink
Merge f3ba9ad into 234ae8d
Browse files Browse the repository at this point in the history
  • Loading branch information
holtgrewe committed Sep 9, 2022
2 parents 234ae8d + f3ba9ad commit edb86ce
Show file tree
Hide file tree
Showing 33 changed files with 458 additions and 165 deletions.
14 changes: 0 additions & 14 deletions .pylintrc

This file was deleted.

33 changes: 26 additions & 7 deletions HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,32 @@
History / Changelog
===================

-----------------
v1.2.3 (anthenea)
-----------------

End-User Summary
================

- Create single result row even if multiple clinvar entries (#565).
- Warning in the case of truncated displayed results (#641).
- Improving Clinvar filter performance (#635).
- Fixing clinvar filter (#296).
**This will require an import of the updated Clinvar ``20210728c`` data (#296).**
- Warning in the case of truncated displayed results (#641).
- Improving Clinvar record aggregation (#640).

Full Change List
================

- Create single result row even if multiple clinvar entries (#565).
- Warning in the case of truncated displayed results (#641).
- Improving Clinvar filter performance (#635).
Database indices were missing, assumedly because of a Django ``makemigrations`` bug.
- Fixing clinvar filter (#296).
**This will require an import of the updated Clinvar ``20210728c`` data (#296).**
- Improving Clinvar record aggregation (#640).

-----------------
v1.2.2 (anthenea)
-----------------
Expand All @@ -13,7 +39,6 @@ End-User Summary
- Extra annotations in export completed and tested (#495).
- Fixed bug where Exac and thousand genomes settings were not shown in frequency tab for GRCh37 (#597).
- Form template reports error if genomebuild variable is not set (#607).
- Create single result row even if multiple clinvar entries (#565).

Full Change List
================
Expand All @@ -22,7 +47,6 @@ Full Change List
- Fixing issue with sync-from-remote when no remote is defined (#570).
- Fixed bug where Exac and thousand genomes settings were not shown in frequency tab for GRCh37 (#597).
- Form template reports error if genomebuild variable is not set (#607).
- Create single result row even if multiple clinvar entries (#565).

-----------------
v1.2.1 (anthenea)
Expand Down Expand Up @@ -52,8 +76,6 @@ End-User Summary
- Fixed smallvariant flags filter query (#502).
- Added flags `segregates`, `doesnt_segregate` and `no_disease_association` to file export (#502).
- Adding feature to enable and configure link-out to HGMD (#576).
- Warning in the case of truncated displayed results (#641).
- Improving Clinvar filter performance (#635).

Full Change List
================
Expand All @@ -78,9 +100,6 @@ Full Change List
- Added flags `segregates`, `doesnt_segregate` and `no_disease_association` to file export (#502).
- Converted not cooperative tooltip to standard title on Filter & Display button (#508).
- Adding feature to enable and configure link-out to HGMD (#576).
- Warning in the case of truncated displayed results (#641).
- Improving Clinvar filter performance (#635).
Database indices were missing, assumedly because of a Django ``makemigrations`` bug.

------
v1.2.0
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ celery:

.PHONY: geticons
geticons:
python manage.py geticons -c cil gridicons octicon
python manage.py geticons -c cil gridicons octicon icon-park-outline

.PHONY: collectstatic
collectstatic: geticons
Expand Down
28 changes: 28 additions & 0 deletions clinvar/migrations/0008_auto_20220829_1132.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Generated by Django 3.2.12 on 2022-08-29 11:32

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("clinvar", "0007_alter_clinvar_details"),
]

operations = [
migrations.RenameField(
model_name="clinvar", old_name="point_rating", new_name="gold_stars",
),
migrations.RemoveField(model_name="clinvar", name="pathogenicity_summary",),
migrations.AddField(
model_name="clinvar", name="origin", field=models.CharField(max_length=32, null=True),
),
migrations.AddField(
model_name="clinvar", name="rcv", field=models.CharField(max_length=32, null=True),
),
migrations.AddField(
model_name="clinvar",
name="variation_id",
field=models.CharField(max_length=32, null=True),
),
]
72 changes: 72 additions & 0 deletions clinvar/migrations/0009_auto_20220908_1430.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Generated by Django 3.2.15 on 2022-09-08 14:30

import django.contrib.postgres.fields
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("clinvar", "0008_auto_20220829_1132"),
]

operations = [
migrations.RemoveField(model_name="clinvar", name="gold_stars",),
migrations.RemoveField(model_name="clinvar", name="origin",),
migrations.RemoveField(model_name="clinvar", name="pathogenicity",),
migrations.RemoveField(model_name="clinvar", name="rcv",),
migrations.RemoveField(model_name="clinvar", name="review_status",),
migrations.RemoveField(model_name="clinvar", name="variation_id",),
migrations.AddField(
model_name="clinvar",
name="clinvar_version",
field=models.CharField(max_length=512, null=True),
),
migrations.AddField(
model_name="clinvar", name="set_type", field=models.CharField(max_length=32, null=True),
),
migrations.AddField(
model_name="clinvar",
name="summary_clinvar_gold_stars",
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name="clinvar",
name="summary_clinvar_pathogenicity",
field=django.contrib.postgres.fields.ArrayField(
base_field=models.CharField(max_length=32), null=True, size=None
),
),
migrations.AddField(
model_name="clinvar",
name="summary_clinvar_pathogenicity_label",
field=models.CharField(max_length=512, null=True),
),
migrations.AddField(
model_name="clinvar",
name="summary_clinvar_review_status_label",
field=models.CharField(max_length=512, null=True),
),
migrations.AddField(
model_name="clinvar",
name="summary_paranoid_gold_stars",
field=models.IntegerField(null=True),
),
migrations.AddField(
model_name="clinvar",
name="summary_paranoid_pathogenicity",
field=django.contrib.postgres.fields.ArrayField(
base_field=models.CharField(max_length=32), null=True, size=None
),
),
migrations.AddField(
model_name="clinvar",
name="summary_paranoid_pathogenicity_label",
field=models.CharField(max_length=512, null=True),
),
migrations.AddField(
model_name="clinvar",
name="summary_paranoid_review_status_label",
field=models.CharField(max_length=512, null=True),
),
]
54 changes: 54 additions & 0 deletions clinvar/migrations/0010_clinvarpathogenicgenes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-04-16 14:00
from __future__ import unicode_literals

from django.conf import settings
from django.db import migrations

operations = []


if not settings.IS_TESTING:
operations.append(
migrations.RunSQL(
"""
DROP MATERIALIZED VIEW IF EXISTS clinvar_clinvarpathogenicgenes;
CREATE MATERIALIZED VIEW clinvar_clinvarpathogenicgenes
AS
SELECT
ROW_NUMBER() OVER () AS id,
symbol,
geneinfo_hgnc.ensembl_gene_id,
geneinfo_refseqtohgnc.entrez_id,
pathogenic_count,
likely_pathogenic_count
FROM (
SELECT
unnest(symbols) as symbol,
SUM(CASE WHEN summary_clinvar_pathogenicity @> ARRAY['pathogenic'::varchar] THEN 1 ELSE 0 END) AS pathogenic_count,
SUM(CASE WHEN summary_clinvar_pathogenicity @> ARRAY['likely pathogenic'::varchar] THEN 1 ELSE 0 END) AS likely_pathogenic_count
FROM clinvar_clinvar
GROUP BY symbol
HAVING
SUM(CASE WHEN summary_clinvar_pathogenicity @> ARRAY['pathogenic'::varchar] THEN 1 ELSE 0 END) > 0 OR
SUM(CASE WHEN summary_clinvar_pathogenicity @> ARRAY['likely pathogenic'::varchar] THEN 1 ELSE 0 END) > 0
) AS clinvar_pathogenic_counts
LEFT OUTER JOIN geneinfo_hgnc USING (symbol)
LEFT OUTER JOIN geneinfo_refseqtohgnc USING (hgnc_id)
WITH DATA;
""",
"""
DROP MATERIALIZED VIEW clinvar_clinvarpathogenicgenes;
""",
)
)


class Migration(migrations.Migration):
dependencies = [
("clinvar", "0009_auto_20220908_1430"),
("geneinfo", "0005_auto_20190104_1554"),
("geneinfo", "0007_refseqtohgnc"),
]
operations = operations
32 changes: 24 additions & 8 deletions clinvar/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ class Clinvar(models.Model):
reference = models.CharField(max_length=512)
#: Variant coordinates - alternative
alternative = models.CharField(max_length=512)
#: ClinVar version
clinvar_version = models.CharField(max_length=512, null=True)
#: Type of the set
set_type = models.CharField(max_length=32, null=True)
#: Type of variation
variation_type = models.CharField(max_length=16)
#: The symbols.
Expand All @@ -36,14 +40,26 @@ class Clinvar(models.Model):
hgnc_ids = ArrayField(base_field=models.CharField(max_length=32), size=None)
#: The variant accession
vcv = models.CharField(max_length=32)
#: The point_rating
point_rating = models.IntegerField()
#: The pathogenicity.
pathogenicity = models.CharField(max_length=128)
#: The review_status.
review_status = models.CharField(max_length=128)
#: The pathogenicity summary.
pathogenicity_summary = models.CharField(max_length=128)
#: Summary (ClinVar style) - review status label
summary_clinvar_review_status_label = models.CharField(max_length=512, null=True)
#: Summary (ClinVar style) - pathogenicity label
summary_clinvar_pathogenicity_label = models.CharField(max_length=512, null=True)
#: Summary (ClinVar style) - pathogenicities
summary_clinvar_pathogenicity = ArrayField(
base_field=models.CharField(max_length=32), size=None, null=True
)
#: Summary (ClinVar style) - gold stars for VCV
summary_clinvar_gold_stars = models.IntegerField(null=True)
#: Summary (paranoid style) - review status label
summary_paranoid_review_status_label = models.CharField(max_length=512, null=True)
#: Summary (paranoid style) - pathogenicity label
summary_paranoid_pathogenicity_label = models.CharField(max_length=512, null=True)
#: Summary (paranoid style) - pathogenicities
summary_paranoid_pathogenicity = ArrayField(
base_field=models.CharField(max_length=32), size=None, null=True
)
#: Summary (paranoid style) - gold stars for VCV
summary_paranoid_gold_stars = models.IntegerField(null=True)
#: The structured Details information.
details = JSONField()

Expand Down
Empty file.
27 changes: 27 additions & 0 deletions clinvar/templatetags/clinvar_tags.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from django import template

register = template.Library()

PATHO_MAP = {
"benign": -2,
"likely benign": -1,
"uncertain significance": 0,
"likely pathogenic": 1,
"pathogenic": 2,
}


@register.filter
def clinvar_patho_rank(entry):
if entry.summary_pathogenicity_label:
return PATHO_MAP.get(entry.summary_pathogenicity_label, -1) + 1
else:
return 0


@register.filter
def clinvar_gold_stars(entry):
if entry.summary_gold_stars:
return entry.summary_gold_stars + 1
else:
return 0
14 changes: 10 additions & 4 deletions clinvar/tests/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,20 @@ class Meta:
bin = 0
reference = factory.Iterator("ACGT")
alternative = factory.Iterator("CGTA")
clinvar_version = "99991122.1"
variation_type = "snv"
set_type = "variant"
symbols = factory.Sequence(lambda n: ["SYMBOL%d" % n])
hgnc_ids = factory.Sequence(lambda n: ["HGNC:%d" % n])
vcv = factory.Sequence(lambda n: "VCV%d" % (12345 + n))
point_rating = factory.Iterator([0, 1, 2, 3])
pathogenicity = ""
review_status = "practice guideline"
pathogenicity_summary = "uncertain significance"
summary_clinvar_review_status_label = "criteria provided, single committer"
summary_clinvar_pathogenicity_label = "likely pathogenic"
summary_clinvar_pathogenicity = ["likely pathogenic"]
summary_clinvar_gold_stars = 1
summary_paranoid_review_status_label = "criteria provided, single committer"
summary_paranoid_pathogenicity_label = "likely pathogenic"
summary_paranoid_pathogenicity = ["likely pathogenic"]
summary_paranoid_gold_stars = 1
details = []

@factory.post_generation
Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ RUN cd /usr/src/app && \
DJANGO_SECRET_KEY=for-build-only \
DJANGO_SETTINGS_MODULE=config.settings.production \
DATABASE_URL=postgres://sodar:sodar@fake/sodar \
python manage.py geticons -c mdi bi cil fa-regular fa-solid fluent gridicons octicon
python manage.py geticons -c mdi bi cil fa-regular fa-solid fluent gridicons octicon icon-park-outline

# Prepare static files
RUN cd /usr/src/app && \
Expand Down

0 comments on commit edb86ce

Please sign in to comment.