From 0d4dd8e9e9f97bcfee556adf3a1f63a046e8136a Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 27 Aug 2025 15:24:10 +0200 Subject: [PATCH] first commit BOQA prioritizer --- exomiser-core/pom.xml | 5 ++ .../core/prioritisers/BoqaPriority.java | 64 +++++++++++++++++++ .../core/prioritisers/BoqaPriorityResult.java | 23 +++++++ .../core/prioritisers/PriorityType.java | 2 + 4 files changed, 94 insertions(+) create mode 100644 exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/prioritisers/BoqaPriority.java create mode 100644 exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/prioritisers/BoqaPriorityResult.java diff --git a/exomiser-core/pom.xml b/exomiser-core/pom.xml index 54ea8b457..608d34a43 100644 --- a/exomiser-core/pom.xml +++ b/exomiser-core/pom.xml @@ -36,6 +36,11 @@ 18.2.0 + + com.github.p2gx.boqa + boqa-core + 0.1.0-SNAPSHOT + de.charite.compbio diff --git a/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/prioritisers/BoqaPriority.java b/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/prioritisers/BoqaPriority.java new file mode 100644 index 000000000..1b2759aa5 --- /dev/null +++ b/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/prioritisers/BoqaPriority.java @@ -0,0 +1,64 @@ +package org.monarchinitiative.exomiser.core.prioritisers; + +import com.github.p2gx.boqa.core.DiseaseData; +import org.monarchinitiative.exomiser.core.model.Gene; +import org.monarchinitiative.exomiser.core.prioritisers.service.PriorityService; + +import java.nio.file.Path; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Stream; + +public class BoqaPriority implements Prioritiser { + + public static class ExomiserDiseaseData implements DiseaseData { + private final PriorityService priorityService; + + public ExomiserDiseaseData(PriorityService priorityService) { + this.priorityService = priorityService; + } + + @Override + public int size() { + return 0; + } + + @Override + public Set getDiseaseIds() { + return Set.of(); + } + + @Override + public Set getIncludedDiseaseFeatures(String diseaseTermId) { + return new HashSet<>(this.priorityService.getHpoIdsForDiseaseId(diseaseTermId)); + } + + @Override + public Set getDiseaseGeneIds(String s) { + return Set.of(); + } + + @Override + public Set getDiseaseGeneSymbols(String s) { + return Set.of(); + } + } + + + + + public BoqaPriority(PriorityService priorityService, Path hpOboPath){ + DiseaseData diseaseData = new ExomiserDiseaseData(priorityService); + } + + @Override + public Stream prioritise(List hpoIds, List genes) { + return Stream.empty(); + } + + @Override + public PriorityType priorityType() { + return PriorityType.BOQA_PRIORITY; + } +} diff --git a/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/prioritisers/BoqaPriorityResult.java b/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/prioritisers/BoqaPriorityResult.java new file mode 100644 index 000000000..9e7699719 --- /dev/null +++ b/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/prioritisers/BoqaPriorityResult.java @@ -0,0 +1,23 @@ +package org.monarchinitiative.exomiser.core.prioritisers; + +public record BoqaPriorityResult() implements PriorityResult{ + @Override + public int geneId() { + return 0; + } + + @Override + public String geneSymbol() { + return ""; + } + + @Override + public double score() { + return 0; + } + + @Override + public PriorityType priorityType() { + return null; + } +} diff --git a/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/prioritisers/PriorityType.java b/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/prioritisers/PriorityType.java index 9b2800922..f4f41f9df 100644 --- a/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/prioritisers/PriorityType.java +++ b/exomiser-core/src/main/java/org/monarchinitiative/exomiser/core/prioritisers/PriorityType.java @@ -36,6 +36,8 @@ public enum PriorityType { PHIVE_PRIORITY, //Prioritises against OMIM data OMIM_PRIORITY, + // Bayesian Ontology Query Algorithm + BOQA_PRIORITY, //None - for when you don't want to run any prioritisation NONE