From 68a0827cbca39ba28c51189e9e793b93810b4036 Mon Sep 17 00:00:00 2001 From: Jules Jacobsen Date: Thu, 30 Nov 2023 16:42:37 +0000 Subject: [PATCH 1/5] Update link to manual in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 63fc5fde5..7839bbc99 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ For further instructions on installing and running please refer to the [README.m #### Running it -Please refer to the [manual](http://exomiser.github.io/Exomiser/) for details on how to configure and run the Exomiser. +Please refer to the [manual](https://exomiser.readthedocs.io/en/latest/) for details on how to configure and run the Exomiser. #### Demo site From e613e84d509ff9a24cd73c7488e94a26e04df470 Mon Sep 17 00:00:00 2001 From: Jules Jacobsen Date: Fri, 23 Aug 2024 12:19:48 +0100 Subject: [PATCH 2/5] Fix for issue #565 ArrayIndexOutOfBoundsException in FrequencyData.maxFrequency() --- .../core/model/frequency/FrequencyData.java | 21 ++++++++------- .../model/frequency/FrequencyDataTest.java | 26 ++++++++++++++----- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/model/frequency/FrequencyData.java b/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/model/frequency/FrequencyData.java index 6c11dd277..8b3cb47da 100644 --- a/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/model/frequency/FrequencyData.java +++ b/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/model/frequency/FrequencyData.java @@ -324,7 +324,7 @@ public float maxFreq() { @JsonIgnore @Nullable public Frequency maxFrequency() { - return this.size == 0 ? null : frequency(maxSource); + return maxSource == -1 ? null : frequency(maxSource); } /** @@ -454,10 +454,11 @@ public Builder addFrequency(FrequencySource frequencySource, int ac, int an, int */ private Builder addFrequency(FrequencySource frequencySource, float frequency, int ac, int an, int homCount) { frequencySources[frequencySource.ordinal()] = frequencySource; - frequencyData[frequencySource.ordinal() * WORD_SIZE + FREQ_OFFSET] = frequency; - frequencyData[frequencySource.ordinal() * WORD_SIZE + AC_OFFSET] = ac; - frequencyData[frequencySource.ordinal() * WORD_SIZE + AN_OFFSET] = an; - frequencyData[frequencySource.ordinal() * WORD_SIZE + HOM_OFFSET] = homCount; + int freqIndex = frequencySource.ordinal() * WORD_SIZE; + frequencyData[freqIndex + FREQ_OFFSET] = frequency; + frequencyData[freqIndex + AC_OFFSET] = ac; + frequencyData[freqIndex + AN_OFFSET] = an; + frequencyData[freqIndex + HOM_OFFSET] = homCount; return this; } @@ -517,10 +518,12 @@ public FrequencyData build() { FrequencySource source = values[i]; if (frequencySources[source.ordinal()] != null) { sources[dataPos] = source; - data[dataPos * WORD_SIZE + FREQ_OFFSET] = frequencyData[source.ordinal() * WORD_SIZE + FREQ_OFFSET]; - data[dataPos * WORD_SIZE + AC_OFFSET] = frequencyData[source.ordinal() * WORD_SIZE + AC_OFFSET]; - data[dataPos * WORD_SIZE + AN_OFFSET] = frequencyData[source.ordinal() * WORD_SIZE + AN_OFFSET]; - data[dataPos * WORD_SIZE + HOM_OFFSET] = frequencyData[source.ordinal() * WORD_SIZE + HOM_OFFSET]; + int dataIndex = dataPos * WORD_SIZE; + int freqIndex = source.ordinal() * WORD_SIZE; + data[dataIndex + FREQ_OFFSET] = frequencyData[freqIndex + FREQ_OFFSET]; + data[dataIndex + AC_OFFSET] = frequencyData[freqIndex + AC_OFFSET]; + data[dataIndex + AN_OFFSET] = frequencyData[freqIndex + AN_OFFSET]; + data[dataIndex + HOM_OFFSET] = frequencyData[freqIndex + HOM_OFFSET]; dataPos++; } } diff --git a/exomiser-core/src/test/java/org/monarchinitiative/exomiser/core/model/frequency/FrequencyDataTest.java b/exomiser-core/src/test/java/org/monarchinitiative/exomiser/core/model/frequency/FrequencyDataTest.java index 1f09347aa..8db886462 100644 --- a/exomiser-core/src/test/java/org/monarchinitiative/exomiser/core/model/frequency/FrequencyDataTest.java +++ b/exomiser-core/src/test/java/org/monarchinitiative/exomiser/core/model/frequency/FrequencyDataTest.java @@ -26,12 +26,15 @@ package org.monarchinitiative.exomiser.core.model.frequency; +import org.h2.mvstore.MVStore; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +import org.monarchinitiative.exomiser.core.genome.dao.serialisers.MvStoreUtil; +import org.monarchinitiative.exomiser.core.model.AlleleProtoAdaptor; +import org.monarchinitiative.exomiser.core.proto.AlleleProto; +import org.monarchinitiative.exomiser.core.proto.AlleleProtoFormatter; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; +import java.util.*; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; @@ -287,6 +290,17 @@ public void testGetMaxFrequencyWithData() { assertThat(instance.maxFrequency(), equalTo(maxFrequency)); } + @Test + public void testGetMaxFrequencyWhenZeroData() { + Frequency maxFrequency = Frequency.of(GNOMAD_E_AFR, 0, 1000, 0); + Frequency minFrequency = Frequency.of(TOPMED, 0f); + FrequencyData instance = FrequencyData.of("rs545662810", minFrequency, maxFrequency); + + assertThat(instance.maxFrequency(), equalTo(null)); + assertThat(instance.maxFreq(), equalTo(0f)); + assertThat(instance.frequencies(), equalTo(List.of(minFrequency, maxFrequency))); + } + @Test public void testHasFrequencyOverPercentageValue() { float maxFreq = 0.05f; @@ -482,12 +496,12 @@ void floatArray() { var an = 10000; var hom = 10; var af = Frequency.percentageFrequency(ac, an); - System.out.println("AF=" + af); + data[0] = (float) ac; data[1] = (float) an; data[2] = (float) hom; data[3] = (float) af; - System.out.println("dataAF=" + data[3]); + assertThat(Frequency.percentageFrequency((int) data[0], (int) data[1]), equalTo((float) data[3])); } From 7a4dc1e06bf489f7815a873ef6c34a83c3b2e99b Mon Sep 17 00:00:00 2001 From: Jules Jacobsen Date: Tue, 3 Sep 2024 09:44:17 +0100 Subject: [PATCH 3/5] Update Exomiser version to 14.0.1 --- exomiser-cli/pom.xml | 2 +- exomiser-core/pom.xml | 2 +- exomiser-data-genome/pom.xml | 2 +- exomiser-data-phenotype/pom.xml | 2 +- exomiser-rest-prioritiser/pom.xml | 2 +- exomiser-spring-boot-autoconfigure/pom.xml | 2 +- exomiser-spring-boot-starter/pom.xml | 2 +- exomiser-spring-boot-test/pom.xml | 2 +- exomiser-web/pom.xml | 2 +- phenix-repository/pom.xml | 2 +- pom.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/exomiser-cli/pom.xml b/exomiser-cli/pom.xml index 8dfbafcae..94db0ad3f 100644 --- a/exomiser-cli/pom.xml +++ b/exomiser-cli/pom.xml @@ -32,7 +32,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.0 + 14.0.1 diff --git a/exomiser-core/pom.xml b/exomiser-core/pom.xml index 55135dc45..35cfb6069 100644 --- a/exomiser-core/pom.xml +++ b/exomiser-core/pom.xml @@ -30,7 +30,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.0 + 14.0.1 diff --git a/exomiser-data-genome/pom.xml b/exomiser-data-genome/pom.xml index 8e758ec44..021493a3c 100644 --- a/exomiser-data-genome/pom.xml +++ b/exomiser-data-genome/pom.xml @@ -31,7 +31,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.0 + 14.0.1 diff --git a/exomiser-data-phenotype/pom.xml b/exomiser-data-phenotype/pom.xml index 888a26cd9..400c6b801 100644 --- a/exomiser-data-phenotype/pom.xml +++ b/exomiser-data-phenotype/pom.xml @@ -31,7 +31,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.0 + 14.0.1 diff --git a/exomiser-rest-prioritiser/pom.xml b/exomiser-rest-prioritiser/pom.xml index 200bc2409..f9371153c 100644 --- a/exomiser-rest-prioritiser/pom.xml +++ b/exomiser-rest-prioritiser/pom.xml @@ -27,7 +27,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.0 + 14.0.1 exomiser-rest-prioritiser diff --git a/exomiser-spring-boot-autoconfigure/pom.xml b/exomiser-spring-boot-autoconfigure/pom.xml index f36eff528..2f3e37a9d 100644 --- a/exomiser-spring-boot-autoconfigure/pom.xml +++ b/exomiser-spring-boot-autoconfigure/pom.xml @@ -35,7 +35,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.0 + 14.0.1 diff --git a/exomiser-spring-boot-starter/pom.xml b/exomiser-spring-boot-starter/pom.xml index 92513d85f..89a73a160 100644 --- a/exomiser-spring-boot-starter/pom.xml +++ b/exomiser-spring-boot-starter/pom.xml @@ -28,7 +28,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.0 + 14.0.1 exomiser-spring-boot-starter diff --git a/exomiser-spring-boot-test/pom.xml b/exomiser-spring-boot-test/pom.xml index 11a6ee2cd..bada5a7e7 100644 --- a/exomiser-spring-boot-test/pom.xml +++ b/exomiser-spring-boot-test/pom.xml @@ -27,7 +27,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.0 + 14.0.1 exomiser-spring-boot-test diff --git a/exomiser-web/pom.xml b/exomiser-web/pom.xml index 47e0d64ef..4672daa8a 100644 --- a/exomiser-web/pom.xml +++ b/exomiser-web/pom.xml @@ -31,7 +31,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.0 + 14.0.1 diff --git a/phenix-repository/pom.xml b/phenix-repository/pom.xml index 8fa671333..d1c1630bc 100644 --- a/phenix-repository/pom.xml +++ b/phenix-repository/pom.xml @@ -7,7 +7,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.0 + 14.0.1 phenix-repository diff --git a/pom.xml b/pom.xml index 614a3c406..f1a9b979b 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.0 + 14.0.1 pom exomiser From a738609af03784af38022f79efe89819b01390ae Mon Sep 17 00:00:00 2001 From: Jules Jacobsen Date: Fri, 20 Sep 2024 13:42:23 +0100 Subject: [PATCH 4/5] Fix for issue #571 - removed unnecessary MOI checks which were the source of an incorrectly scoped boolean check. --- .../core/analysis/util/acmg/Acmg2015EvidenceAssigner.java | 5 +---- .../analysis/util/acmg/Acmg2015EvidenceAssignerTest.java | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/analysis/util/acmg/Acmg2015EvidenceAssigner.java b/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/analysis/util/acmg/Acmg2015EvidenceAssigner.java index 78d3466ce..8ddb92860 100644 --- a/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/analysis/util/acmg/Acmg2015EvidenceAssigner.java +++ b/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/analysis/util/acmg/Acmg2015EvidenceAssigner.java @@ -237,10 +237,7 @@ private void assignPVS1(AcmgEvidence.Builder acmgEvidenceBuilder, VariantEvaluat // Should this be using the hasCompatibleDiseaseMatches variable? boolean inGeneWithKnownDiseaseAssociations = !knownDiseases.isEmpty(); if (inGeneWithKnownDiseaseAssociations && isLossOfFunctionEffect(variantEvaluation.getVariantEffect()) - && (modeOfInheritance == ModeOfInheritance.ANY - || compatibleWithRecessive(modeOfInheritance) - || compatibleWithDominant(modeOfInheritance) && (geneContraint != null && geneContraint.isLossOfFunctionIntolerant()) - ) + && (geneContraint != null && geneContraint.isLossOfFunctionIntolerant()) ) { if (variantEvaluation.hasTranscriptAnnotations()) { TranscriptAnnotation transcriptAnnotation = variantEvaluation.getTranscriptAnnotations().get(0); diff --git a/exomiser-core/src/test/java/org/monarchinitiative/exomiser/core/analysis/util/acmg/Acmg2015EvidenceAssignerTest.java b/exomiser-core/src/test/java/org/monarchinitiative/exomiser/core/analysis/util/acmg/Acmg2015EvidenceAssignerTest.java index 79f5d7853..a60df8c2e 100644 --- a/exomiser-core/src/test/java/org/monarchinitiative/exomiser/core/analysis/util/acmg/Acmg2015EvidenceAssignerTest.java +++ b/exomiser-core/src/test/java/org/monarchinitiative/exomiser/core/analysis/util/acmg/Acmg2015EvidenceAssignerTest.java @@ -103,7 +103,7 @@ void testAssignsPVS1() { "MALE, X_RECESSIVE, X_RECESSIVE, true", "FEMALE, X_RECESSIVE, X_RECESSIVE, true", - "UNKNOWN, X_RECESSIVE, X_RECESSIVE, false", + "UNKNOWN, X_RECESSIVE, X_RECESSIVE, true", "MALE, X_DOMINANT, X_DOMINANT, true", "FEMALE, X_DOMINANT, X_DOMINANT, true", From e943e0463a1d966ec352ce815b972b82aff7b448 Mon Sep 17 00:00:00 2001 From: Jules Jacobsen Date: Fri, 20 Sep 2024 13:43:07 +0100 Subject: [PATCH 5/5] Update CHANGELOG.md Update version to 14.0.2 --- exomiser-cli/CHANGELOG.md | 8 ++++++++ exomiser-cli/pom.xml | 2 +- exomiser-core/CHANGELOG.md | 8 ++++++++ exomiser-core/pom.xml | 2 +- exomiser-data-genome/pom.xml | 2 +- exomiser-data-phenotype/pom.xml | 2 +- exomiser-rest-prioritiser/pom.xml | 2 +- exomiser-spring-boot-autoconfigure/pom.xml | 2 +- exomiser-spring-boot-starter/pom.xml | 2 +- exomiser-spring-boot-test/pom.xml | 2 +- exomiser-web/pom.xml | 2 +- phenix-repository/pom.xml | 2 +- pom.xml | 2 +- 13 files changed, 27 insertions(+), 11 deletions(-) diff --git a/exomiser-cli/CHANGELOG.md b/exomiser-cli/CHANGELOG.md index 15659a4e8..618ae1dc9 100644 --- a/exomiser-cli/CHANGELOG.md +++ b/exomiser-cli/CHANGELOG.md @@ -1,5 +1,13 @@ # The Exomiser Command Line Executable - Changelog +## 14.0.2 2024-09-20 + +- Fix for issue #571. This is a bug-fix release to prevent erroneous assignment of `PVS1` to recessive-compatible variants in LOF-tolerant genes. + +## 14.0.1 2024-09-03 + +- Fix for Issue #565. This is a patch release to prevent a possible ArrayIndexOutOfBoundsException being thrown when outputting the variants TSV file. There are no other changes. + ## 14.0.0 2024-02-29 - Minimum Java version is now **Java 17** diff --git a/exomiser-cli/pom.xml b/exomiser-cli/pom.xml index 94db0ad3f..13caf5017 100644 --- a/exomiser-cli/pom.xml +++ b/exomiser-cli/pom.xml @@ -32,7 +32,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.1 + 14.0.2 diff --git a/exomiser-core/CHANGELOG.md b/exomiser-core/CHANGELOG.md index a528ffc25..ff2282600 100644 --- a/exomiser-core/CHANGELOG.md +++ b/exomiser-core/CHANGELOG.md @@ -1,5 +1,13 @@ # The Exomiser - Core Library Changelog +## 14.0.2 2024-09-20 + +- Fix for issue #571. This is a bug-fix release to prevent erroneous assignment of `PVS1` to recessive-compatible variants in LOF-tolerant genes. + +## 14.0.1 2024-09-03 + +- Fix for Issue #565. This is a patch release to prevent a possible ArrayIndexOutOfBoundsException being thrown when outputting the variants TSV file. There are no other changes. + ## 14.0.0 2024-02-29 This release **requires data version >= 2402** and **Java version >= 17** (the previous LTS release). diff --git a/exomiser-core/pom.xml b/exomiser-core/pom.xml index 35cfb6069..550715ad8 100644 --- a/exomiser-core/pom.xml +++ b/exomiser-core/pom.xml @@ -30,7 +30,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.1 + 14.0.2 diff --git a/exomiser-data-genome/pom.xml b/exomiser-data-genome/pom.xml index 021493a3c..198882fc5 100644 --- a/exomiser-data-genome/pom.xml +++ b/exomiser-data-genome/pom.xml @@ -31,7 +31,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.1 + 14.0.2 diff --git a/exomiser-data-phenotype/pom.xml b/exomiser-data-phenotype/pom.xml index 400c6b801..79034b9f6 100644 --- a/exomiser-data-phenotype/pom.xml +++ b/exomiser-data-phenotype/pom.xml @@ -31,7 +31,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.1 + 14.0.2 diff --git a/exomiser-rest-prioritiser/pom.xml b/exomiser-rest-prioritiser/pom.xml index f9371153c..410424d28 100644 --- a/exomiser-rest-prioritiser/pom.xml +++ b/exomiser-rest-prioritiser/pom.xml @@ -27,7 +27,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.1 + 14.0.2 exomiser-rest-prioritiser diff --git a/exomiser-spring-boot-autoconfigure/pom.xml b/exomiser-spring-boot-autoconfigure/pom.xml index 2f3e37a9d..f7b6387dc 100644 --- a/exomiser-spring-boot-autoconfigure/pom.xml +++ b/exomiser-spring-boot-autoconfigure/pom.xml @@ -35,7 +35,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.1 + 14.0.2 diff --git a/exomiser-spring-boot-starter/pom.xml b/exomiser-spring-boot-starter/pom.xml index 89a73a160..c7c045e11 100644 --- a/exomiser-spring-boot-starter/pom.xml +++ b/exomiser-spring-boot-starter/pom.xml @@ -28,7 +28,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.1 + 14.0.2 exomiser-spring-boot-starter diff --git a/exomiser-spring-boot-test/pom.xml b/exomiser-spring-boot-test/pom.xml index bada5a7e7..1b4491c94 100644 --- a/exomiser-spring-boot-test/pom.xml +++ b/exomiser-spring-boot-test/pom.xml @@ -27,7 +27,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.1 + 14.0.2 exomiser-spring-boot-test diff --git a/exomiser-web/pom.xml b/exomiser-web/pom.xml index 4672daa8a..5adf01eee 100644 --- a/exomiser-web/pom.xml +++ b/exomiser-web/pom.xml @@ -31,7 +31,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.1 + 14.0.2 diff --git a/phenix-repository/pom.xml b/phenix-repository/pom.xml index d1c1630bc..b3bfd5633 100644 --- a/phenix-repository/pom.xml +++ b/phenix-repository/pom.xml @@ -7,7 +7,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.1 + 14.0.2 phenix-repository diff --git a/pom.xml b/pom.xml index f1a9b979b..ad2622e3a 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ org.monarchinitiative.exomiser exomiser - 14.0.1 + 14.0.2 pom exomiser