diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 083f78e3..a6b53e7f 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -26,4 +26,4 @@ jobs: java-version: '17' distribution: 'adopt' - name: Build with Maven - run: mvn --batch-mode --update-snapshots verify + run: ./mvnw --batch-mode --update-snapshots verify diff --git a/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/ValidateCommand.java b/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/ValidateCommand.java index 4dd8b3b0..1c8c95eb 100644 --- a/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/ValidateCommand.java +++ b/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/ValidateCommand.java @@ -3,8 +3,8 @@ import com.google.protobuf.MessageOrBuilder; import org.monarchinitiative.phenol.base.PhenolRuntimeException; -import org.monarchinitiative.phenol.io.OntologyLoader; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.io.MinimalOntologyLoader; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.monarchinitiative.phenol.ontology.data.TermId; import org.phenopackets.phenopackettools.core.PhenopacketElement; import org.phenopackets.phenopackettools.core.PhenopacketSchemaVersion; @@ -149,10 +149,10 @@ private List> configureSema // Right now we only have one semantic validator, but we'll extend this in the future. LOGGER.debug("Configuring semantic validators"); List> validators = new ArrayList<>(); - Ontology hpo = null; + MinimalOntology hpo = null; if (validateSection.hpJson != null) { LOGGER.debug("Reading HPO from {}", validateSection.hpJson.toAbsolutePath()); - hpo = OntologyLoader.loadOntology(validateSection.hpJson.toFile()); + hpo = MinimalOntologyLoader.loadOntology(validateSection.hpJson.toFile()); // The entire logic of this command stands and falls on correct state of `element` and the read message(s). // This method requires an appropriate combination of `T` and `element`, as described in Javadoc. @@ -191,7 +191,7 @@ private List> configureSema return validators; } - private static PhenopacketValidator prepareOrganSystemValidator(Ontology hpo, + private static PhenopacketValidator prepareOrganSystemValidator(MinimalOntology hpo, List organSystems, PhenopacketElement element) { // Organ system validation can only be done when HPO is provided. diff --git a/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/BaseValidateCommand.java b/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/BaseValidateCommand.java index d4ecad43..11b48795 100644 --- a/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/BaseValidateCommand.java +++ b/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/BaseValidateCommand.java @@ -1,8 +1,8 @@ package org.phenopackets.phenopackettools.cli.command.validate; import com.google.protobuf.MessageOrBuilder; -import org.monarchinitiative.phenol.io.OntologyLoader; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.io.MinimalOntologyLoader; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.phenopackettools.validator.core.PhenopacketValidator; import org.phenopackets.phenopackettools.validator.core.ValidationResult; import org.phenopackets.phenopackettools.validator.core.ValidationResults; @@ -109,7 +109,7 @@ protected List> configureSemanticValidators() { List> validators = new ArrayList<>(); if (hpJson != null) { LOGGER.debug("Reading HPO from '{}}'", hpJson.toAbsolutePath()); - Ontology hpo = OntologyLoader.loadOntology(hpJson.toFile()); + MinimalOntology hpo = MinimalOntologyLoader.loadOntology(hpJson.toFile()); validators.add(createHpoValidator(hpo)); } @@ -117,6 +117,6 @@ protected List> configureSemanticValidators() { return validators; } - protected abstract PhenopacketValidator createHpoValidator(Ontology hpo); + protected abstract PhenopacketValidator createHpoValidator(MinimalOntology hpo); } diff --git a/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/ValidateCohortCommand.java b/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/ValidateCohortCommand.java index 6355f625..5e6f00d4 100644 --- a/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/ValidateCohortCommand.java +++ b/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/ValidateCohortCommand.java @@ -1,6 +1,6 @@ package org.phenopackets.phenopackettools.cli.command.validate; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.phenopackettools.validator.core.PhenopacketValidator; import org.phenopackets.phenopackettools.validator.core.ValidationWorkflowRunner; import org.phenopackets.phenopackettools.validator.core.phenotype.HpoPhenotypeValidators; @@ -30,7 +30,7 @@ protected ValidationWorkflowRunner prepareValidationWorkflow(Li } @Override - protected PhenopacketValidator createHpoValidator(Ontology hpo) { + protected PhenopacketValidator createHpoValidator(MinimalOntology hpo) { return HpoPhenotypeValidators.cohortHpoPhenotypeValidator(hpo); } diff --git a/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/ValidateFamilyCommand.java b/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/ValidateFamilyCommand.java index 25390c06..05481da1 100644 --- a/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/ValidateFamilyCommand.java +++ b/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/ValidateFamilyCommand.java @@ -1,6 +1,6 @@ package org.phenopackets.phenopackettools.cli.command.validate; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.phenopackettools.validator.core.PhenopacketValidator; import org.phenopackets.phenopackettools.validator.core.ValidationWorkflowRunner; import org.phenopackets.phenopackettools.validator.core.phenotype.HpoPhenotypeValidators; @@ -30,7 +30,7 @@ protected ValidationWorkflowRunner prepareValidationWorkflow(Li } @Override - protected PhenopacketValidator createHpoValidator(Ontology hpo) { + protected PhenopacketValidator createHpoValidator(MinimalOntology hpo) { return HpoPhenotypeValidators.familyHpoPhenotypeValidator(hpo); } diff --git a/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/ValidatePhenopacketCommand.java b/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/ValidatePhenopacketCommand.java index a16486d4..ceffd908 100644 --- a/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/ValidatePhenopacketCommand.java +++ b/phenopacket-tools-cli/src/main/java/org/phenopackets/phenopackettools/cli/command/validate/ValidatePhenopacketCommand.java @@ -1,6 +1,6 @@ package org.phenopackets.phenopackettools.cli.command.validate; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.phenopackettools.validator.core.PhenopacketValidator; import org.phenopackets.phenopackettools.validator.core.ValidationWorkflowRunner; import org.phenopackets.phenopackettools.validator.core.metadata.MetaDataValidators; @@ -32,7 +32,7 @@ protected ValidationWorkflowRunner prepareValidationWorkfl } @Override - protected PhenopacketValidator createHpoValidator(Ontology hpo) { + protected PhenopacketValidator createHpoValidator(MinimalOntology hpo) { return HpoPhenotypeValidators.phenopacketHpoPhenotypeValidator(hpo); } diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/HpoPhenotypeValidators.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/HpoPhenotypeValidators.java index 40da8cb8..fda53165 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/HpoPhenotypeValidators.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/HpoPhenotypeValidators.java @@ -1,6 +1,6 @@ package org.phenopackets.phenopackettools.validator.core.phenotype; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.monarchinitiative.phenol.ontology.data.TermId; import org.phenopackets.phenopackettools.validator.core.PhenopacketValidator; import org.phenopackets.phenopackettools.validator.core.phenotype.ancestry.CohortHpoAncestryValidator; @@ -26,39 +26,39 @@ private HpoPhenotypeValidators() { } /** - * Get {@link PhenopacketValidator} to validate {@link Phenopacket} using provided {@link Ontology}. + * Get {@link PhenopacketValidator} to validate {@link Phenopacket} using provided {@link MinimalOntology}. * * @param hpo HPO ontology - * @deprecated use {@link Primary#phenopacketHpoPhenotypeValidator(Ontology)} instead + * @deprecated use {@link Primary#phenopacketHpoPhenotypeValidator(MinimalOntology)} instead */ // REMOVE(v1.0.0) @Deprecated(forRemoval = true) - public static PhenopacketValidator phenopacketHpoPhenotypeValidator(Ontology hpo) { + public static PhenopacketValidator phenopacketHpoPhenotypeValidator(MinimalOntology hpo) { return Primary.phenopacketHpoPhenotypeValidator(hpo); } /** - * Get {@link PhenopacketValidator} for validate {@link Family} using provided {@link Ontology}. + * Get {@link PhenopacketValidator} for validate {@link Family} using provided {@link MinimalOntology}. * * @param hpo HPO ontology - * @deprecated use {@link Primary#familyHpoPhenotypeValidator(Ontology)} instead + * @deprecated use {@link Primary#familyHpoPhenotypeValidator(MinimalOntology)} instead */ // REMOVE(v1.0.0) @Deprecated(forRemoval = true) - public static PhenopacketValidator familyHpoPhenotypeValidator(Ontology hpo) { + public static PhenopacketValidator familyHpoPhenotypeValidator(MinimalOntology hpo) { return Primary.familyHpoPhenotypeValidator(hpo); } /** - * Get {@link PhenopacketValidator} for performing primary validation {@link Cohort} using provided {@link Ontology}, + * Get {@link PhenopacketValidator} for performing primary validation {@link Cohort} using provided {@link MinimalOntology}, * as described in {@link org.phenopackets.phenopackettools.validator.core.phenotype.primary.AbstractHpoPhenotypeValidator}. * * @param hpo HPO ontology - * @deprecated use {@link Primary#cohortHpoPhenotypeValidator(Ontology)} instead + * @deprecated use {@link Primary#cohortHpoPhenotypeValidator(MinimalOntology)} instead */ // REMOVE(v1.0.0) @Deprecated(forRemoval = true) - public static PhenopacketValidator cohortHpoPhenotypeValidator(Ontology hpo) { + public static PhenopacketValidator cohortHpoPhenotypeValidator(MinimalOntology hpo) { return Primary.cohortHpoPhenotypeValidator(hpo); } @@ -69,30 +69,30 @@ public static PhenopacketValidator cohortHpoPhenotypeValidator( */ public static class Primary { /** - * Get {@link PhenopacketValidator} to validate {@link Phenopacket} using provided {@link Ontology}. + * Get {@link PhenopacketValidator} to validate {@link Phenopacket} using provided {@link MinimalOntology}. * * @param hpo HPO ontology */ - public static PhenopacketValidator phenopacketHpoPhenotypeValidator(Ontology hpo) { + public static PhenopacketValidator phenopacketHpoPhenotypeValidator(MinimalOntology hpo) { return new PhenopacketHpoPhenotypeValidator(hpo); } /** - * Get {@link PhenopacketValidator} for validate {@link Family} using provided {@link Ontology}. + * Get {@link PhenopacketValidator} for validate {@link Family} using provided {@link MinimalOntology}. * * @param hpo HPO ontology */ - public static PhenopacketValidator familyHpoPhenotypeValidator(Ontology hpo) { + public static PhenopacketValidator familyHpoPhenotypeValidator(MinimalOntology hpo) { return new FamilyHpoPhenotypeValidator(hpo); } /** - * Get {@link PhenopacketValidator} for performing primary validation {@link Cohort} using provided {@link Ontology}, + * Get {@link PhenopacketValidator} for performing primary validation {@link Cohort} using provided {@link MinimalOntology}, * as described in {@link org.phenopackets.phenopackettools.validator.core.phenotype.primary.AbstractHpoPhenotypeValidator}. * * @param hpo HPO ontology */ - public static PhenopacketValidator cohortHpoPhenotypeValidator(Ontology hpo) { + public static PhenopacketValidator cohortHpoPhenotypeValidator(MinimalOntology hpo) { return new CohortHpoPhenotypeValidator(hpo); } } @@ -115,29 +115,29 @@ private Ancestry() { } /** - * Get {@link PhenopacketValidator} to validate ancestry {@link Phenopacket} using provided {@link Ontology}. + * Get {@link PhenopacketValidator} to validate ancestry {@link Phenopacket} using provided {@link MinimalOntology}. * * @param hpo HPO ontology */ - public static PhenopacketValidator phenopacketHpoAncestryValidator(Ontology hpo) { + public static PhenopacketValidator phenopacketHpoAncestryValidator(MinimalOntology hpo) { return new PhenopacketHpoAncestryValidator(hpo); } /** - * Get {@link PhenopacketValidator} to validate ancestry {@link Family} using provided {@link Ontology}. + * Get {@link PhenopacketValidator} to validate ancestry {@link Family} using provided {@link MinimalOntology}. * * @param hpo HPO ontology */ - public static PhenopacketValidator familyHpoAncestryValidator(Ontology hpo) { + public static PhenopacketValidator familyHpoAncestryValidator(MinimalOntology hpo) { return new FamilyHpoAncestryValidator(hpo); } /** - * Get {@link PhenopacketValidator} to validate ancestry {@link Cohort} using provided {@link Ontology}. + * Get {@link PhenopacketValidator} to validate ancestry {@link Cohort} using provided {@link MinimalOntology}. * * @param hpo HPO ontology */ - public static PhenopacketValidator cohortHpoAncestryValidator(Ontology hpo) { + public static PhenopacketValidator cohortHpoAncestryValidator(MinimalOntology hpo) { return new CohortHpoAncestryValidator(hpo); } } @@ -160,45 +160,45 @@ private OrganSystem() { /** * Get {@link PhenopacketValidator} to validate annotation of organ systems in a {@link Phenopacket} - * using provided {@link Ontology} and a collection of organ system {@link TermId}s. + * using provided {@link MinimalOntology} and a collection of organ system {@link TermId}s. *

- * NOTE: the organ system {@link TermId} that is absent from the {@link Ontology} is disregarded + * NOTE: the organ system {@link TermId} that is absent from the {@link MinimalOntology} is disregarded * and not used for validation. * * @param hpo HPO ontology * @param organSystemTermIds a collection of HPO {@link TermId}s corresponding to organ systems. */ - public static PhenopacketValidator phenopacketHpoOrganSystemValidator(Ontology hpo, + public static PhenopacketValidator phenopacketHpoOrganSystemValidator(MinimalOntology hpo, Collection organSystemTermIds) { return new PhenopacketHpoOrganSystemValidator(hpo, organSystemTermIds); } /** * Get {@link PhenopacketValidator} to validate annotation of organ systems in a {@link Family} - * using provided {@link Ontology} and a collection of organ system {@link TermId}s. + * using provided {@link MinimalOntology} and a collection of organ system {@link TermId}s. *

- * NOTE: the organ system {@link TermId} that is absent from the {@link Ontology} is disregarded + * NOTE: the organ system {@link TermId} that is absent from the {@link MinimalOntology} is disregarded * and not used for validation. * * @param hpo HPO ontology * @param organSystemTermIds a collection of HPO {@link TermId}s corresponding to organ systems. */ - public static PhenopacketValidator familyHpoOrganSystemValidator(Ontology hpo, + public static PhenopacketValidator familyHpoOrganSystemValidator(MinimalOntology hpo, Collection organSystemTermIds) { return new FamilyHpoOrganSystemValidator(hpo, organSystemTermIds); } /** * Get {@link PhenopacketValidator} to validate annotation of organ systems in a {@link Cohort} - * using provided {@link Ontology} and a collection of organ system {@link TermId}s. + * using provided {@link MinimalOntology} and a collection of organ system {@link TermId}s. *

- * NOTE: the organ system {@link TermId} that is absent from the {@link Ontology} is disregarded + * NOTE: the organ system {@link TermId} that is absent from the {@link MinimalOntology} is disregarded * and not used for validation. * * @param hpo HPO ontology * @param organSystemTermIds a collection of HPO {@link TermId}s corresponding to organ systems. */ - public static PhenopacketValidator cohortHpoOrganSystemValidator(Ontology hpo, + public static PhenopacketValidator cohortHpoOrganSystemValidator(MinimalOntology hpo, Collection organSystemTermIds) { return new CohortHpoOrganSystemValidator(hpo, organSystemTermIds); } diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/AbstractHpoAncestryValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/AbstractHpoAncestryValidator.java index 4da56932..46e5ac0b 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/AbstractHpoAncestryValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/AbstractHpoAncestryValidator.java @@ -1,8 +1,7 @@ package org.phenopackets.phenopackettools.validator.core.phenotype.ancestry; import com.google.protobuf.MessageOrBuilder; -import org.monarchinitiative.phenol.ontology.algo.OntologyAlgorithm; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.monarchinitiative.phenol.ontology.data.Term; import org.monarchinitiative.phenol.ontology.data.TermId; import org.phenopackets.phenopackettools.validator.core.ValidationResult; @@ -16,6 +15,7 @@ import org.slf4j.LoggerFactory; import java.util.*; +import java.util.stream.Collectors; import java.util.stream.Stream; /** @@ -41,8 +41,12 @@ public abstract class AbstractHpoAncestryValidator e private static final String APR_VIOLATION = "Violation of the annotation propagation rule"; private static final String UNKNOWN = "UNKNOWN_NAME"; - AbstractHpoAncestryValidator(Ontology hpo) { + private final Set obsoleteTermIds; + + AbstractHpoAncestryValidator(MinimalOntology hpo) { super(hpo); + this.obsoleteTermIds = hpo.obsoleteTermIdsStream() + .collect(Collectors.toSet()); } @Override @@ -67,12 +71,12 @@ private Stream validatePhenopacketPhenotypicFeatures(String id // Check that the component does not contain both observed term and its ancestor. for (TermId observed : featuresByExclusion.observedPhenotypicFeatures()) { - if (isObsoleteTermId(observed)) { + if (obsoleteTermIds.contains(observed)) { LOGGER.debug("Ignoring unknown/obsolete term ID {}", observed.getValue()); continue; } - for (TermId ancestor : OntologyAlgorithm.getAncestorTerms(hpo, observed, false)) { + for (TermId ancestor : hpo.graph().getAncestors(observed, false)) { if (featuresByExclusion.observedPhenotypicFeatures().contains(ancestor)) results.add(constructResultForAnObservedTerm(id, observed, ancestor, false)); if (featuresByExclusion.excludedPhenotypicFeatures().contains(ancestor)) @@ -82,15 +86,12 @@ private Stream validatePhenopacketPhenotypicFeatures(String id // Check that the component does not have negated descendant for (TermId excluded : featuresByExclusion.excludedPhenotypicFeatures()) { - if (isObsoleteTermId(excluded)) { + if (obsoleteTermIds.contains(excluded)) { LOGGER.debug("Ignoring unknown/obsolete term ID {}", excluded.getValue()); continue; } - for (TermId child : OntologyAlgorithm.getDescendents(hpo, excluded)) { - if (child.equals(excluded)) - // skip the parent term - continue; + for (TermId child : hpo.graph().getDescendants(excluded, false)) { if (featuresByExclusion.excludedPhenotypicFeatures().contains(child)) results.add(constructResultForAnExcludedTerm(id, excluded, child)); } @@ -99,15 +100,13 @@ private Stream validatePhenopacketPhenotypicFeatures(String id return results.build(); } - private boolean isObsoleteTermId(TermId termId) { - return hpo.getObsoleteTermIds().contains(termId); - } - private ValidationResult constructResultForAnObservedTerm(String id, TermId observedId, TermId ancestorId, boolean ancestorIsExcluded) { - Term observedTerm = hpo.getTermMap().get(observedId); - String observedTermName = observedTerm == null ? UNKNOWN : observedTerm.getName(); - Term ancestorTerm = hpo.getTermMap().get(ancestorId); - String ancestorTermName = ancestorTerm == null ? UNKNOWN : ancestorTerm.getName(); + String observedTermName = hpo.termForTermId(observedId) + .map(Term::getName) + .orElse(UNKNOWN); + String ancestorTermName = hpo.termForTermId(ancestorId) + .map(Term::getName) + .orElse(UNKNOWN); String message; if (ancestorIsExcluded) message = "Phenotypic features of %s must not contain both an observed term (%s, %s) and an excluded ancestor (%s, %s)".formatted( @@ -120,10 +119,12 @@ private ValidationResult constructResultForAnObservedTerm(String id, TermId obse } private ValidationResult constructResultForAnExcludedTerm(String id, TermId excluded, TermId child) { - Term excludedTerm = hpo.getTermMap().get(excluded); - String excludedTermName = excludedTerm == null ? UNKNOWN : excludedTerm.getName(); - Term childTerm = hpo.getTermMap().get(child); - String childTermName = childTerm == null ? UNKNOWN : childTerm.getName(); + String excludedTermName = hpo.termForTermId(excluded) + .map(Term::getName) + .orElse(UNKNOWN); + String childTermName = hpo.termForTermId(child) + .map(Term::getName) + .orElse(UNKNOWN); String message = "Phenotypic features of %s must not contain both an excluded term (%s, %s) and an excluded child (%s, %s)".formatted( id, excludedTermName, excluded.getValue(), childTermName, child.getValue()); diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/CohortHpoAncestryValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/CohortHpoAncestryValidator.java index c68a3517..1f1d9bbc 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/CohortHpoAncestryValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/CohortHpoAncestryValidator.java @@ -1,6 +1,6 @@ package org.phenopackets.phenopackettools.validator.core.phenotype.ancestry; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.schema.v2.CohortOrBuilder; import org.phenopackets.schema.v2.PhenopacketOrBuilder; @@ -8,7 +8,7 @@ public class CohortHpoAncestryValidator extends AbstractHpoAncestryValidator { - public CohortHpoAncestryValidator(Ontology hpo) { + public CohortHpoAncestryValidator(MinimalOntology hpo) { super(hpo); } diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/FamilyHpoAncestryValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/FamilyHpoAncestryValidator.java index 66ba7e88..57a9d384 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/FamilyHpoAncestryValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/FamilyHpoAncestryValidator.java @@ -1,6 +1,6 @@ package org.phenopackets.phenopackettools.validator.core.phenotype.ancestry; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.schema.v2.FamilyOrBuilder; import org.phenopackets.schema.v2.Phenopacket; import org.phenopackets.schema.v2.PhenopacketOrBuilder; @@ -9,7 +9,7 @@ public class FamilyHpoAncestryValidator extends AbstractHpoAncestryValidator { - public FamilyHpoAncestryValidator(Ontology hpo) { + public FamilyHpoAncestryValidator(MinimalOntology hpo) { super(hpo); } diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/PhenopacketHpoAncestryValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/PhenopacketHpoAncestryValidator.java index b23ca49a..3e87d72a 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/PhenopacketHpoAncestryValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/ancestry/PhenopacketHpoAncestryValidator.java @@ -1,13 +1,13 @@ package org.phenopackets.phenopackettools.validator.core.phenotype.ancestry; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.schema.v2.PhenopacketOrBuilder; import java.util.stream.Stream; public class PhenopacketHpoAncestryValidator extends AbstractHpoAncestryValidator { - public PhenopacketHpoAncestryValidator(Ontology hpo) { + public PhenopacketHpoAncestryValidator(MinimalOntology hpo) { super(hpo); } diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/base/BaseHpoValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/base/BaseHpoValidator.java index 529569f4..f6d2c049 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/base/BaseHpoValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/base/BaseHpoValidator.java @@ -1,7 +1,7 @@ package org.phenopackets.phenopackettools.validator.core.phenotype.base; import com.google.protobuf.MessageOrBuilder; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.phenopackettools.validator.core.PhenopacketValidator; import org.phenopackets.schema.v2.PhenopacketOrBuilder; @@ -9,10 +9,10 @@ public abstract class BaseHpoValidator implements PhenopacketValidator { - protected final Ontology hpo; + protected final MinimalOntology hpo; protected final String hpoVersion; - protected BaseHpoValidator(Ontology hpo) { + protected BaseHpoValidator(MinimalOntology hpo) { this.hpo = Objects.requireNonNull(hpo); this.hpoVersion = hpo.version().orElse("UNKNOWN"); } diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/AbstractOrganSystemValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/AbstractOrganSystemValidator.java index 2c1fff7c..020fa6bf 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/AbstractOrganSystemValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/AbstractOrganSystemValidator.java @@ -1,8 +1,7 @@ package org.phenopackets.phenopackettools.validator.core.phenotype.orgsys; import com.google.protobuf.MessageOrBuilder; -import org.monarchinitiative.phenol.ontology.algo.OntologyAlgorithm; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.monarchinitiative.phenol.ontology.data.Term; import org.monarchinitiative.phenol.ontology.data.TermId; import org.phenopackets.phenopackettools.validator.core.ValidationResult; @@ -41,7 +40,7 @@ public abstract class AbstractOrganSystemValidator e protected final List organSystemTermIds; - protected AbstractOrganSystemValidator(Ontology hpo, + protected AbstractOrganSystemValidator(MinimalOntology hpo, Collection organSystemTermIds) { super(hpo); this.organSystemTermIds = Objects.requireNonNull(organSystemTermIds).stream() @@ -51,9 +50,9 @@ protected AbstractOrganSystemValidator(Ontology hpo, .toList(); } - private static Predicate organSystemTermIdIsInOntology(Ontology hpo) { + private static Predicate organSystemTermIdIsInOntology(MinimalOntology hpo) { return organSystemTermId -> { - if (hpo.containsTerm(organSystemTermId)) { + if (hpo.termForTermId(organSystemTermId).isPresent()) { return true; } else { LOGGER.warn("{} is not present in the ontology", organSystemTermId.getValue()); @@ -90,13 +89,16 @@ private Stream checkPhenotypicFeatures(PhenopacketOrBuilder ph // Check if we have at least one observed annotation for the organ system. for (TermId pf : featuresByExclusion.observedPhenotypicFeatures()) { - if (OntologyAlgorithm.existsPath(hpo, pf, organSystemId)) { + if (hpo.graph().existsPath(pf, organSystemId)) continue organSystemLoop; // It only takes one termId to annotate an organ system. - } } + // We know that the organSystemId is in the HPO because we check the organ system ID presence + // in the constructor. + //noinspection OptionalGetWithoutIsPresent + Term organSystem = hpo.termForTermId(organSystemId).get(); + // The organSystemId is neither annotated nor excluded. We report a validation error. - Term organSystem = hpo.getTermMap().get(organSystemId); ValidationResult result = ValidationResult.error(VALIDATOR_INFO, MISSING_ORGAN_SYSTEM_CATEGORY, "Missing annotation for %s [%s]%s" diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/CohortHpoOrganSystemValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/CohortHpoOrganSystemValidator.java index 96bea28b..8eabd7bf 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/CohortHpoOrganSystemValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/CohortHpoOrganSystemValidator.java @@ -1,6 +1,6 @@ package org.phenopackets.phenopackettools.validator.core.phenotype.orgsys; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.monarchinitiative.phenol.ontology.data.TermId; import org.phenopackets.schema.v2.CohortOrBuilder; import org.phenopackets.schema.v2.PhenopacketOrBuilder; @@ -10,7 +10,7 @@ public class CohortHpoOrganSystemValidator extends AbstractOrganSystemValidator { - public CohortHpoOrganSystemValidator(Ontology hpo, Collection organSystemTermIds) { + public CohortHpoOrganSystemValidator(MinimalOntology hpo, Collection organSystemTermIds) { super(hpo, organSystemTermIds); } diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/FamilyHpoOrganSystemValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/FamilyHpoOrganSystemValidator.java index 7edf20df..dddae345 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/FamilyHpoOrganSystemValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/FamilyHpoOrganSystemValidator.java @@ -1,6 +1,6 @@ package org.phenopackets.phenopackettools.validator.core.phenotype.orgsys; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.monarchinitiative.phenol.ontology.data.TermId; import org.phenopackets.schema.v2.FamilyOrBuilder; import org.phenopackets.schema.v2.PhenopacketOrBuilder; @@ -10,7 +10,7 @@ public class FamilyHpoOrganSystemValidator extends AbstractOrganSystemValidator { - public FamilyHpoOrganSystemValidator(Ontology hpo, Collection organSystemTermIds) { + public FamilyHpoOrganSystemValidator(MinimalOntology hpo, Collection organSystemTermIds) { super(hpo, organSystemTermIds); } diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/PhenopacketHpoOrganSystemValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/PhenopacketHpoOrganSystemValidator.java index d4db9e81..67ae16ca 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/PhenopacketHpoOrganSystemValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/orgsys/PhenopacketHpoOrganSystemValidator.java @@ -1,6 +1,6 @@ package org.phenopackets.phenopackettools.validator.core.phenotype.orgsys; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.monarchinitiative.phenol.ontology.data.TermId; import org.phenopackets.schema.v2.PhenopacketOrBuilder; @@ -9,7 +9,7 @@ public class PhenopacketHpoOrganSystemValidator extends AbstractOrganSystemValidator { - public PhenopacketHpoOrganSystemValidator(Ontology hpo, + public PhenopacketHpoOrganSystemValidator(MinimalOntology hpo, Collection organSystemTerms) { super(hpo, organSystemTerms); } diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/AbstractHpoPhenotypeValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/AbstractHpoPhenotypeValidator.java index d75cfc7f..95ce0f39 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/AbstractHpoPhenotypeValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/AbstractHpoPhenotypeValidator.java @@ -2,13 +2,15 @@ import com.google.protobuf.MessageOrBuilder; import org.monarchinitiative.phenol.base.PhenolRuntimeException; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; +import org.monarchinitiative.phenol.ontology.data.Term; import org.monarchinitiative.phenol.ontology.data.TermId; import org.phenopackets.phenopackettools.validator.core.*; import org.phenopackets.phenopackettools.validator.core.phenotype.base.BaseHpoValidator; import org.phenopackets.schema.v2.PhenopacketOrBuilder; import org.phenopackets.schema.v2.core.PhenotypicFeature; +import java.util.Optional; import java.util.stream.Stream; public abstract class AbstractHpoPhenotypeValidator extends BaseHpoValidator { @@ -20,7 +22,7 @@ public abstract class AbstractHpoPhenotypeValidator private static final String INVALID_TERM_ID = "Invalid TermId"; private static final String OBSOLETED_TERM_ID = "Obsoleted TermId"; - public AbstractHpoPhenotypeValidator(Ontology hpo) { + public AbstractHpoPhenotypeValidator(MinimalOntology hpo) { super(hpo); } @@ -43,7 +45,8 @@ protected Stream checkPhenotypeFeature(PhenopacketOr } if (termId.getPrefix().equals("HP")) { // Check if the HPO contains the term. - if (!hpo.containsTerm(termId)) { + Optional term = hpo.termForTermId(termId); + if (term.isEmpty()) { String idSummary = summarizePhenopacketAndIndividualId(phenopacket); String msg = "%s%s not found in %s".formatted(termId.getValue(), idSummary, hpoVersion); return Stream.of( @@ -52,7 +55,7 @@ protected Stream checkPhenotypeFeature(PhenopacketOr } // Check if the `termId` is a primary ID. // If not, this is a warning. - TermId primaryId = hpo.getPrimaryTermId(termId); + TermId primaryId = term.get().id(); if (!primaryId.equals(termId)) { String idSummary = summarizePhenopacketAndIndividualId(phenopacket); String msg = "Using obsolete id (%s) instead of current primary id (%s)%s".formatted( diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/CohortHpoPhenotypeValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/CohortHpoPhenotypeValidator.java index 0642f21e..b7beff12 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/CohortHpoPhenotypeValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/CohortHpoPhenotypeValidator.java @@ -1,6 +1,6 @@ package org.phenopackets.phenopackettools.validator.core.phenotype.primary; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.phenopackettools.validator.core.ValidationResult; import org.phenopackets.schema.v2.CohortOrBuilder; import org.phenopackets.schema.v2.Phenopacket; @@ -11,7 +11,7 @@ public class CohortHpoPhenotypeValidator extends AbstractHpoPhenotypeValidator { - public CohortHpoPhenotypeValidator(Ontology hpo) { + public CohortHpoPhenotypeValidator(MinimalOntology hpo) { super(hpo); } diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/FamilyHpoPhenotypeValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/FamilyHpoPhenotypeValidator.java index 65beef4e..179754fb 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/FamilyHpoPhenotypeValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/FamilyHpoPhenotypeValidator.java @@ -1,6 +1,6 @@ package org.phenopackets.phenopackettools.validator.core.phenotype.primary; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.phenopackettools.validator.core.ValidationResult; import org.phenopackets.schema.v2.FamilyOrBuilder; import org.phenopackets.schema.v2.Phenopacket; @@ -11,7 +11,7 @@ public class FamilyHpoPhenotypeValidator extends AbstractHpoPhenotypeValidator { - public FamilyHpoPhenotypeValidator(Ontology hpo) { + public FamilyHpoPhenotypeValidator(MinimalOntology hpo) { super(hpo); } diff --git a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/PhenopacketHpoPhenotypeValidator.java b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/PhenopacketHpoPhenotypeValidator.java index 7b43a10e..dcd60bf6 100644 --- a/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/PhenopacketHpoPhenotypeValidator.java +++ b/phenopacket-tools-validator-core/src/main/java/org/phenopackets/phenopackettools/validator/core/phenotype/primary/PhenopacketHpoPhenotypeValidator.java @@ -1,6 +1,6 @@ package org.phenopackets.phenopackettools.validator.core.phenotype.primary; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.phenopackettools.validator.core.ValidationResult; import org.phenopackets.schema.v2.PhenopacketOrBuilder; import org.phenopackets.schema.v2.core.PhenotypicFeature; @@ -10,7 +10,7 @@ public class PhenopacketHpoPhenotypeValidator extends AbstractHpoPhenotypeValidator { - public PhenopacketHpoPhenotypeValidator(Ontology hpo) { + public PhenopacketHpoPhenotypeValidator(MinimalOntology hpo) { super(hpo); } diff --git a/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/TestData.java b/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/TestData.java index f26901d3..448c858e 100644 --- a/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/TestData.java +++ b/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/TestData.java @@ -1,7 +1,7 @@ package org.phenopackets.phenopackettools.validator.core; -import org.monarchinitiative.phenol.io.OntologyLoader; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.io.MinimalOntologyLoader; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import java.nio.file.Path; @@ -10,6 +10,6 @@ public class TestData { public static final Path TEST_BASE_DIR = Path.of("src/test/resources/org/phenopackets/phenopackettools/validator/core"); private static final Path HPO_MODULE_PATH = TEST_BASE_DIR.resolve("hp.module.json"); - public static final Ontology HPO = OntologyLoader.loadOntology(HPO_MODULE_PATH.toFile()); + public static final MinimalOntology HPO = MinimalOntologyLoader.loadOntology(HPO_MODULE_PATH.toFile()); } diff --git a/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/phenotype/AncestryHpoValidatorTest.java b/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/phenotype/AncestryHpoValidatorTest.java index aa5467d0..aba6d842 100644 --- a/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/phenotype/AncestryHpoValidatorTest.java +++ b/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/phenotype/AncestryHpoValidatorTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.phenopackettools.validator.core.PhenopacketValidator; import org.phenopackets.phenopackettools.validator.core.TestData; import org.phenopackets.phenopackettools.validator.core.ValidationLevel; @@ -19,7 +19,7 @@ public class AncestryHpoValidatorTest { - private static final Ontology HPO = TestData.HPO; + private static final MinimalOntology HPO = TestData.HPO; @Nested public class PhenopacketTest { diff --git a/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/phenotype/OrganSystemValidatorTest.java b/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/phenotype/OrganSystemValidatorTest.java index 845fdc51..d3a2e9b0 100644 --- a/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/phenotype/OrganSystemValidatorTest.java +++ b/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/phenotype/OrganSystemValidatorTest.java @@ -5,7 +5,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.monarchinitiative.phenol.ontology.data.TermId; import org.phenopackets.phenopackettools.validator.core.*; import org.phenopackets.schema.v2.*; @@ -20,7 +20,7 @@ public class OrganSystemValidatorTest { - private static final Ontology HPO = TestData.HPO; + private static final MinimalOntology HPO = TestData.HPO; private static final Set ABNORMALITY_OF_LIMBS_ORGAN_SYSTEM = Set.of(TermId.of("HP:0040064")); // Not a real organ system, but for the sake of testing... private static final Set SLENDER_FINGER_ORGAN_SYSTEM = Set.of(TermId.of("HP:0001238")); diff --git a/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/phenotype/PrimaryHpoPhenotypeValidatorTest.java b/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/phenotype/PrimaryHpoPhenotypeValidatorTest.java index 64e4ade8..031fae9f 100644 --- a/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/phenotype/PrimaryHpoPhenotypeValidatorTest.java +++ b/phenopacket-tools-validator-core/src/test/java/org/phenopackets/phenopackettools/validator/core/phenotype/PrimaryHpoPhenotypeValidatorTest.java @@ -4,7 +4,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import org.monarchinitiative.phenol.ontology.data.Ontology; +import org.monarchinitiative.phenol.ontology.data.MinimalOntology; import org.phenopackets.phenopackettools.validator.core.PhenopacketValidator; import org.phenopackets.phenopackettools.validator.core.TestData; import org.phenopackets.phenopackettools.validator.core.ValidationLevel; @@ -18,7 +18,7 @@ public class PrimaryHpoPhenotypeValidatorTest { - private static final Ontology HPO = TestData.HPO; + private static final MinimalOntology HPO = TestData.HPO; @Nested public class PhenopacketTest { diff --git a/pom.xml b/pom.xml index b8d426cd..8a9088b2 100644 --- a/pom.xml +++ b/pom.xml @@ -92,7 +92,7 @@ 17 3.21.7 2.0.2 - 2.0.0 + 2.0.2 2.14.2 1.0.79 2.0