Skip to content

Commit a6b5ca4

Browse files
committed
Merge branch 'development'
2 parents 495f09b + 8e4ac29 commit a6b5ca4

499 files changed

Lines changed: 14584 additions & 9658 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.circleci/config.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
version: 2.1
2+
orbs:
3+
codecov: codecov/codecov@5.4.3
24
jobs:
35
build:
46
working_directory: ~/exomiser
57
environment:
68
CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
79
CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
810
docker:
9-
# was circleci/openjdk:8-jdk but something changed and it tests failed on fork
10-
#- image: circleci/openjdk@sha256:3640c4f42886e796e805c23af48b0d7348dc1d3fa8dae9a365e1f023f913c795
11-
- image: cimg/openjdk:17.0.7
11+
- image: cimg/openjdk:21.0
1212
steps:
1313
- checkout
1414
- run:
@@ -21,7 +21,8 @@ jobs:
2121
paths:
2222
- ~/.m2
2323
key: exomiser-{{ arch }}-{{ checksum "pom.xml" }}
24-
- run: ./mvnw sonar:sonar -Dsonar.login=$SONAR_TOKEN
24+
# SonarQube now breaks due to shallow clone checkouts and I've lost the will to try and make this work again.
25+
# - run: ./mvnw sonar:sonar -Dsonar.token=$SONAR_TOKEN -Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=exomiser -Dsonar.projectKey=org.monarchinitiative.exomiser:exomiser
2526
#Save junit xml
2627
- run: mkdir -p $CIRCLE_TEST_REPORTS/junit/
2728
- run: find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} $CIRCLE_TEST_REPORTS/ \;
@@ -37,7 +38,8 @@ jobs:
3738
path: /tmp/circleci-artifacts
3839
- store_artifacts:
3940
path: /tmp/circleci-test-results
40-
- run: bash <(curl -s https://codecov.io/bash)
41+
# - run: bash <(curl -s https://codecov.io/bash)
42+
- codecov/upload
4143
workflows:
4244
version: 2
4345
build:

.github/workflows/maven.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ jobs:
2121

2222
steps:
2323
- uses: actions/checkout@v4
24-
- name: Set up JDK 17
24+
- name: Set up JDK 21
2525
uses: actions/setup-java@v4
2626
with:
27-
java-version: '17'
27+
java-version: '21'
2828
distribution: 'temurin'
2929
cache: maven
3030
- name: Build with Maven

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,7 @@ exomiser-db/nbactions.xml
6060
.settings
6161
.classpath
6262
.DS_Store
63+
64+
# Python & docs stuff
65+
.venv/
66+
docs/_build/

.mvn/wrapper/maven-wrapper.properties

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@
1717
# You should have received a copy of the GNU Affero General Public License
1818
# along with this program. If not, see <http://www.gnu.org/licenses/>.
1919
#
20-
21-
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
20+
wrapperVersion=3.3.2
21+
distributionType=only-script
22+
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.9.2/apache-maven-3.9.2-bin.zip

.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.13

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ The Exomiser - A Tool to Annotate and Prioritize Exome Variants
22
===============================================================
33

44
[![GitHub release](https://img.shields.io/github/release/exomiser/Exomiser.svg)](https://github.com/exomiser/Exomiser/releases)
5+
[![GitHub Discussions](https://img.shields.io/github/discussions/exomiser/exomiser?label=data%20release&link=https%3A%2F%2Fgithub.com%2Fexomiser%2FExomiser%2Fdiscussions%2Fcategories%2Fdata-release)](https://github.com/exomiser/Exomiser/discussions/categories/data-release)
56
[![CircleCI](https://circleci.com/gh/exomiser/Exomiser/tree/development.svg?style=shield)](https://circleci.com/gh/exomiser/Exomiser/tree/development)
6-
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/b518a9448b5b4889a40b3dc660ef585a)](https://www.codacy.com/app/monarch-initiative/Exomiser?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=exomiser/Exomiser&amp;utm_campaign=Badge_Grade)
7+
[![Codecov](https://img.shields.io/codecov/c/github/exomiser/exomiser)](https://app.codecov.io/github/exomiser/Exomiser)
78
[![Documentation](https://readthedocs.org/projects/exomiser/badge/?version=latest)](http://exomiser.readthedocs.io/en/latest)
89
#### Overview:
910

@@ -52,7 +53,7 @@ exomiser.phenotype.data-version=1807
5253

5354
We strongly recommend using the latest versions of both the application and the data for optimum results.
5455

55-
For further instructions on installing and running please refer to the [README.md](http://data.monarchinitiative.org/exomiser/README.md) file.
56+
For further instructions on installing and running, please refer to the [online documentation](https://exomiser.readthedocs.io/en/latest/)..
5657

5758
#### Running it
5859

build-docs.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash
2+
uv run sphinx-build -b html docs docs/_build

docs/acmg_assignment.rst

Lines changed: 168 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,13 @@ variants: a joint consensus recommendation of the American College of Medical Ge
1010
for Molecular Pathology <https://doi.org/10.1038/gim.2015.30>`_. The criteria are assigned according to the
1111
`UK ACGS 2020 guidelines <https://www.acgs.uk.com/media/11631/uk-practice-guidelines-for-variant-classification-v4-01-2020.pdf>`_
1212
and scored according to the
13-
`ClinGen SVI <https://clinicalgenome.org/working-groups/sequence-variant-interpretation/>`_
13+
`ClinGen Variant Classification Guidance <https://clinicalgenome.org/tools/clingen-variant-classification-guidance>`_
1414
`updated 2020 guidelines <https://clinicalgenome.org/docs/fitting-a-naturally-scaled-point-system-to-the-acmg-amp-variant-classification-guidelines/>`_.
1515

16+
Additionally, splice variants are scored according to `Using the ACMG/AMP framework to capture evidence related to
17+
predicted and observed impact on splicing: Recommendations from the ClinGen SVI Splicing Subgroup <https://doi.org/10.1016/j.ajhg.2023.06.002>`_.
18+
In this case Exomiser will assign the PVS1, PS1, PP3, BP4, BP7 categories.
19+
1620
It is important to be aware that these scores are not a substitute for manual assignment by a qualified clinical geneticist
1721
or clinician - The scores displayed utilise the data found in the Exomiser database and are a subset of the possible
1822
criteria by which to assess a variant. Nonetheless, in our benchmarking on the returned cases from the 100K Genomes Project,
@@ -25,89 +29,215 @@ recall from 91% to 75%).
2529

2630
Exomiser is capable of assigning the following ACMG categories:
2731

32+
Variant Classification Evidence
33+
===============================
34+
35+
These categories are taken from Figure 1. of `Richards et al. 2015 <https://doi.org/10.1038/gim.2015.30>`_, those in **bold**
36+
are assigned by Exomiser.
37+
38+
39+
Population Data
40+
===============
41+
42+
For the population data criteria, all frequencies are considered using the populations set by the user in the
43+
:ref:`frequencysources`, apart from any bottle-necked populations not recommended for frequency filtering from gnomAD
44+
according to their `filtering allele frequency <https://gnomad.broadinstitute.org/help/faf>`_ document. This excludes
45+
the Ashkenazi Jewish (ASJ), European Finnish (FIN), Other (OTH), Amish (AMI) and Middle Eastern (MID) populations. In
46+
addition the LOCAL frequency will also not be used.
47+
48+
BA1
49+
---
50+
`MAF is too high for disorder`
51+
52+
Given Exomiser will filter out alleles with an allele frequency of >= 2.0%, this is unlikely to be seen. However, alleles
53+
with a maximum frequency >= 5.0% in the frequency sources specified will be assigned the `BA1` criterion. Variants listed
54+
as being excluded from this category by the ClinGen SVI working group `BA1 exclusion list <https://www.clinicalgenome.org/site/assets/files/3460/ba1_exception_list_07_30_2018.pdf>`_
55+
will not be marked as `BA1`, assuming they survived variant filtering.
56+
57+
58+
BS1
59+
---
60+
`MAF is too high for disorder`
61+
62+
Assigned to autosomal variants with a maximum non-founder population allele frequency >= 1.5% or mitochondrial variants
63+
with MAF >= 5%
64+
65+
66+
BS2
67+
---
68+
`Observation in controls inconsistent with disease penetrance`
69+
70+
Variants with a MAF < 5% (not BA1) which have a gnomAD non-founder population `hom` count > 5 when considered under an
71+
autosomal dominant model (gene score) or > 2 when considered under autosomal recessive, X-recessive or X-dominant are
72+
assigned a `BS2`.
73+
74+
75+
PM2
76+
---
77+
`Absent in population databases`
78+
79+
In accordance with the `updated PM2 guidance <https://clinicalgenome.org/site/assets/files/5182/pm2_-_svi_recommendation_-_approved_sept2020.pdf>`_, variants absent from all of the user-defined :ref:`frequencysources`
80+
will be assigned the `PM2_Supporting` criterion. Additionally, for variants considered under a recessive mode of inheritance they
81+
can have a frequency of < 0.01% (0.0001) in all non-bottlenecked populations to be assigned `PM2_Supporting`.
82+
83+
84+
PS4
85+
---
86+
`Prevalence in affecteds statistically increased over controls`
87+
88+
Not assigned
89+
2890
Computational and Predictive Data
2991
=================================
3092
PVS1
3193
----
94+
`Predicted null variant in a gene where LOF is a known mechanism of disease`
95+
3296
Variants must have a predicted loss of function effect, be in a gene with known disease associations and have a gene
3397
constraint LOF O/E < 0.7635 (gnomAD 4.0) to suggest that a gene is LoF intolerant. Variants not predicted to lead to
3498
NMD (those located in the last exon) will have the modifier downgraded to Strong.
3599

36100
PS1
37101
---
102+
`Same amino acid change as an established pathogenic variant`
103+
38104
Variants with the same amino acid change as previously reported P/LP missense or in-frame indel ClinVar variants will be
39105
assigned `PS1` with a strength of `Strong` for variants >= 2 stars, `Moderate` for variants with 1 star or `Supporting`
40106
for those without a ClinVar start rating.
41107

108+
Splice variants will be assigned PS1 with Strong, Moderate or Supporting modifiers,
109+
according to table 2 of `Using the ACMG/AMP framework to capture evidence related to
110+
predicted and observed impact on splicing: Recommendations from the ClinGen SVI Splicing Subgroup <https://doi.org/10.1016/j.ajhg.2023.06.002>`_.
111+
42112
PM4
43113
---
114+
`Protein length changing variant`
115+
44116
Stop-loss and in-frame insertions or deletions, not previously assigned a `PVS1` criterion are assigned `PM4`.
45117

46118
PM5
47119
---
120+
`Novel missense change at an amino acid residue where a different pathogenic missense change has been seen before`
121+
48122
Variants having a novel missense change to an amino acid where a previously reported ClinVar P/LP variant has been seen
49123
will be assigned `PM5` with a strength of `Moderate` for those with >=2 stars or `Supporting` otherwise.
50124

51125
PP3 / BP4
52126
---------
127+
`Multiple lines of computational evidence support a deleterious effect on the gene/gene product (PP3)`
128+
`Multiple lines of computational evidence suggest no impact on gene product (BP4)`
129+
53130
If REVEL is chosen as a pathogenicity predictor for missense variants, `PP3` and `BP4` are assigned using the modifiers
54131
according to table 2 of `Evidence-based calibration of computational tools for missense variant pathogenicity classification
55132
and ClinGen recommendations for clinical use of PP3/BP4 criteria <https://www.biorxiv.org/content/10.1101/2022.03.17.484479v1>`_.
56133
Note that this suggests the use of modifiers up to Strong in the case of pathogenic or Very Strong in the case of benign predictions.
57134
Otherwise, an ensemble-based approach will be used for other pathogenicity predictors as per the original 215 guidelines.
58135
It should be noted we found better performance using the REVEL-based approach when testing against the 100K genomes data.
59136

137+
For splice variants outside of the +/-1,2 canonical splice donor/acceptor site are assigned `PP3` with a SpliceAI score
138+
>= 0.2 or `BP4` with a SpliceAI score < 0.1
139+
140+
141+
BP1
142+
---
143+
`Missense in gene where only truncating cause disease`
144+
145+
Missense or inframe indels found in a gene in which >=75% of ClinVar P/LP variants are loss of function variants are
146+
assigned `BP1`.
147+
148+
BP7
149+
---
150+
`Silent variant with non predicted splice impact`
151+
152+
For synonymous variants, `BP7` is assigned if the variant is not reported as P/LP in ClinVar, with a 1+ star rating and
153+
has a SpliceAI score < 0.1
154+
155+
For splice region variants Exomiser follows the recommendations made in `Using the ACMG/AMP framework to capture evidence related to
156+
predicted and observed impact on splicing: Recommendations from the ClinGen SVI Splicing Subgroup <https://doi.org/10.1016/j.ajhg.2023.06.002>`_
157+
158+
In this case, non-donor/acceptor splice region variants with a SpliceAI score < 0.1 which have been assigned BP4 at or
159+
beyond the +7 and −21 positions (conservative designation for donor/acceptor splice region) are also assigned a `BP7`.
160+
161+
60162
Functional Data
61163
===============
164+
165+
PS3
166+
---
167+
`Well-established functional studies show a deleterious effect`
168+
169+
Not assigned
170+
171+
62172
PM1
63173
---
174+
`Mutational hot spot or well-studied functional domain without benign variation`
175+
64176
Missense and inframe indels are assigned `PM1` if the surrounding region of 25 nucleotides either side of the variant
65177
contain at least 4 reported P/LP variants in ClinVar and no B/LB variants. If the number of P/LP variants is greater
66178
than the number of VUS in the region the strength will be assigned `Moderate` but regions containing P/LP <= VUS
67179
(and no B/BL) will have the strength downgraded to `Supporting`.
68180

69181

182+
PP2
183+
---
184+
`Missense in gene with low rate of benign missense variants and path. missenses common`
185+
186+
Missense or inframe indels in genes where >= 75% of ClinVar P/LP variants are missense and ClinVar benign missense
187+
variants make up <=5% of all reported missense ClinVar variants (P/LP/VUS/B/LB) in that gene are assigned a `PP2`
188+
189+
190+
BS3
191+
---
192+
`Well-established functional studies show no deleterious effect`
193+
194+
Not assigned
195+
196+
70197
Segregation Data
71198
================
199+
200+
PP1
201+
---
202+
`Co-segregation with disease in multiple affected family members`
203+
204+
Not assigned
205+
206+
72207
BS4
73208
---
74-
If a pedigree with two or more members, including the proband is provided, Exomiser will assign `BS4` for variants not
75-
segregating with affected members of the family.
209+
`Non-segregation with disease`
210+
211+
Not assigned. Previously this was assigned but the pedigree assignment of 'affected' status was not always reliable so
212+
this is no longer applied automatically.
213+
76214

77215
De novo Data
78-
===========
216+
============
79217

80218
PS2
81219
---
220+
`*De novo* (paternity & maternity confirmed)`
221+
82222
Exomiser assigns the `PS2` criterion for variants compatible with a dominant mode of inheritance, with a pedigree containing
83223
at least two ancestors of the proband, none of whom are affected and none of whom share the same allele as the proband.
84224

85-
Population Data
86-
===============
87-
88-
For the population data criteria, all frequencies are considered using the populations set by the user in the
89-
:ref:`frequencysources`, apart from any bottle-necked populations not recommended for frequency filtering from gnomAD
90-
according to their `filtering allele frequency <https://gnomad.broadinstitute.org/help/faf>`_ document. This excludes
91-
the Ashkenazi Jewish (ASJ), European Finnish (FIN), Other (OTH), Amish (AMI) and Middle Eastern (MID) populations. In
92-
addition the LOCAL frequency will also not be used.
93-
94-
BA1
225+
PM6
95226
---
96-
Given Exomiser will filter out alleles with an allele frequency of >= 2.0%, this is unlikely to be seen. However, alleles
97-
with a maximum frequency >= 5.0% in the frequency sources specified will be assigned the `BA1` criterion. Variants listed
98-
as being excluded from this category by the ClinGen SVI working group `BA1 exclusion list <https://www.clinicalgenome.org/site/assets/files/3460/ba1_exception_list_07_30_2018.pdf>`_
99-
will not be marked as `BA1`, assuming they survived variant filtering.
227+
`*De novo* (without paternity & maternity confirmed)`
228+
229+
Not assigned
100230

101-
PM2
102-
---
103-
In accordance with the `updated PM2 guidance <https://clinicalgenome.org/site/assets/files/5182/pm2_-_svi_recommendation_-_approved_sept2020.pdf>`_, variants absent from all of the user-defined :ref:`frequencysources`
104-
will be assigned the `PM2_Supporting` criterion. Additionally, for variants considered under a recessive mode of inheritance they
105-
can have a frequency of < 0.01% (0.0001) in all non-bottlenecked populations to be assigned `PM2_Supporting`.
106231

107232
Allelic Data
108233
============
109234
PM3 / BP2
110235
---------
236+
`Observed in *trans* with a dominant variant`
237+
`Observed in *cis* with a pathogenic variant`
238+
239+
For recessive disorders, detected in *trans* with a pathogenic variant *PM3*
240+
111241
If Exomiser is provided with a phased VCF and a variant is found to be *in-trans* with a ClinVar Pathogenic variant and
112242
associated with a recessive disorder, the `PM3` criterion will be applied. However, in cases where variant is being
113243
considered for a recessive disorder and is *in-cis* or a dominant disorder and *in-trans* with another pathogenic variant
@@ -118,14 +248,26 @@ Phenotype
118248
=========
119249
PP4
120250
---
251+
`Patient's phenotype or FH highly specific for gene`
252+
121253
Given Exomiser's focus on phenotype-driven variant prioritisation, variants in a gene associated with a disorder with a
122254
phenotype match score > 0.6 to the patient's phenotype are assigned the `PP4` criterion at the Moderate, rather than
123255
Supporting level.
124256

257+
258+
BP5
259+
---
260+
`Found in case with an alternate cause`
261+
262+
Not assigned
263+
125264
Clinical
126265
========
127266
PP5 / BP6
128-
--------
267+
---------
268+
`Reputable source w/out shared data = benign (BP6)`
269+
`Reputable source = pathogenic (PP5)`
270+
129271
If a variant is previously reported as P/LP in ClinVar with a 1-start rating, it will be assigned `PP5`, those with >= 2
130272
stars (multiple submitters, criteria provided, no conflicts / reviewed by expert panel / practice guideline) will be
131273
assigned a Strong level. Conversely, if the variant is previously reported as B/LB it will be assigned `BP6` with the same
@@ -138,7 +280,8 @@ Transcript Selection
138280

139281
Transcripts will be selected using the most deleterious predicted variant effect from `Jannovar <https://doi.org/10.1002/humu.22531>`_
140282
according to the `transcript-source` property set in the `application.properties`. We recommend using the Ensembl
141-
transcript datasource as the Exomiser build uses the GENCODE basic set of transcripts. Future versions should use MANE transcripts.
283+
transcript datasource as the Exomiser build uses the GENCODE basic transcripts for hg19/GRCh37 and MANE transcripts for
284+
hg38/GRCh38.
142285

143286
ACMG assignments will be reported for a variant on a transcript consistent with a particular mode of inheritance in
144287
conjunction with a disorder, the assigned criteria with any modifiers and the final classification e.g.

0 commit comments

Comments
 (0)