Skip to content

Commit

Permalink
Merge pull request #190 from ielis/update-phenol
Browse files Browse the repository at this point in the history
Use phenol `2.0.2`
  • Loading branch information
ielis committed Jul 27, 2023
2 parents 41c3734 + b770324 commit e6fb479
Show file tree
Hide file tree
Showing 25 changed files with 118 additions and 112 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -149,10 +149,10 @@ private <T extends MessageOrBuilder> List<PhenopacketValidator<T>> configureSema
// Right now we only have one semantic validator, but we'll extend this in the future.
LOGGER.debug("Configuring semantic validators");
List<PhenopacketValidator<T>> 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.
Expand Down Expand Up @@ -191,7 +191,7 @@ private <T extends MessageOrBuilder> List<PhenopacketValidator<T>> configureSema
return validators;
}

private static <T extends MessageOrBuilder> PhenopacketValidator<T> prepareOrganSystemValidator(Ontology hpo,
private static <T extends MessageOrBuilder> PhenopacketValidator<T> prepareOrganSystemValidator(MinimalOntology hpo,
List<String> organSystems,
PhenopacketElement element) {
// Organ system validation can only be done when HPO is provided.
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -109,14 +109,14 @@ protected List<PhenopacketValidator<T>> configureSemanticValidators() {
List<PhenopacketValidator<T>> 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));
}

LOGGER.debug("Configured {} semantic validator(s)", validators.size());
return validators;
}

protected abstract PhenopacketValidator<T> createHpoValidator(Ontology hpo);
protected abstract PhenopacketValidator<T> createHpoValidator(MinimalOntology hpo);

}
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -30,7 +30,7 @@ protected ValidationWorkflowRunner<CohortOrBuilder> prepareValidationWorkflow(Li
}

@Override
protected PhenopacketValidator<CohortOrBuilder> createHpoValidator(Ontology hpo) {
protected PhenopacketValidator<CohortOrBuilder> createHpoValidator(MinimalOntology hpo) {
return HpoPhenotypeValidators.cohortHpoPhenotypeValidator(hpo);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -30,7 +30,7 @@ protected ValidationWorkflowRunner<FamilyOrBuilder> prepareValidationWorkflow(Li
}

@Override
protected PhenopacketValidator<FamilyOrBuilder> createHpoValidator(Ontology hpo) {
protected PhenopacketValidator<FamilyOrBuilder> createHpoValidator(MinimalOntology hpo) {
return HpoPhenotypeValidators.familyHpoPhenotypeValidator(hpo);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -32,7 +32,7 @@ protected ValidationWorkflowRunner<PhenopacketOrBuilder> prepareValidationWorkfl
}

@Override
protected PhenopacketValidator<PhenopacketOrBuilder> createHpoValidator(Ontology hpo) {
protected PhenopacketValidator<PhenopacketOrBuilder> createHpoValidator(MinimalOntology hpo) {
return HpoPhenotypeValidators.phenopacketHpoPhenotypeValidator(hpo);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<PhenopacketOrBuilder> phenopacketHpoPhenotypeValidator(Ontology hpo) {
public static PhenopacketValidator<PhenopacketOrBuilder> 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<FamilyOrBuilder> familyHpoPhenotypeValidator(Ontology hpo) {
public static PhenopacketValidator<FamilyOrBuilder> 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<CohortOrBuilder> cohortHpoPhenotypeValidator(Ontology hpo) {
public static PhenopacketValidator<CohortOrBuilder> cohortHpoPhenotypeValidator(MinimalOntology hpo) {
return Primary.cohortHpoPhenotypeValidator(hpo);
}

Expand All @@ -69,30 +69,30 @@ public static PhenopacketValidator<CohortOrBuilder> 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<PhenopacketOrBuilder> phenopacketHpoPhenotypeValidator(Ontology hpo) {
public static PhenopacketValidator<PhenopacketOrBuilder> 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<FamilyOrBuilder> familyHpoPhenotypeValidator(Ontology hpo) {
public static PhenopacketValidator<FamilyOrBuilder> 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<CohortOrBuilder> cohortHpoPhenotypeValidator(Ontology hpo) {
public static PhenopacketValidator<CohortOrBuilder> cohortHpoPhenotypeValidator(MinimalOntology hpo) {
return new CohortHpoPhenotypeValidator(hpo);
}
}
Expand All @@ -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<PhenopacketOrBuilder> phenopacketHpoAncestryValidator(Ontology hpo) {
public static PhenopacketValidator<PhenopacketOrBuilder> 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<FamilyOrBuilder> familyHpoAncestryValidator(Ontology hpo) {
public static PhenopacketValidator<FamilyOrBuilder> 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<CohortOrBuilder> cohortHpoAncestryValidator(Ontology hpo) {
public static PhenopacketValidator<CohortOrBuilder> cohortHpoAncestryValidator(MinimalOntology hpo) {
return new CohortHpoAncestryValidator(hpo);
}
}
Expand All @@ -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.
* <p>
* <b>NOTE:</b> the organ system {@link TermId} that is absent from the {@link Ontology} is disregarded
* <b>NOTE:</b> 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<PhenopacketOrBuilder> phenopacketHpoOrganSystemValidator(Ontology hpo,
public static PhenopacketValidator<PhenopacketOrBuilder> phenopacketHpoOrganSystemValidator(MinimalOntology hpo,
Collection<TermId> 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.
* <p>
* <b>NOTE:</b> the organ system {@link TermId} that is absent from the {@link Ontology} is disregarded
* <b>NOTE:</b> 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<FamilyOrBuilder> familyHpoOrganSystemValidator(Ontology hpo,
public static PhenopacketValidator<FamilyOrBuilder> familyHpoOrganSystemValidator(MinimalOntology hpo,
Collection<TermId> 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.
* <p>
* <b>NOTE:</b> the organ system {@link TermId} that is absent from the {@link Ontology} is disregarded
* <b>NOTE:</b> 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<CohortOrBuilder> cohortHpoOrganSystemValidator(Ontology hpo,
public static PhenopacketValidator<CohortOrBuilder> cohortHpoOrganSystemValidator(MinimalOntology hpo,
Collection<TermId> organSystemTermIds) {
return new CohortHpoOrganSystemValidator(hpo, organSystemTermIds);
}
Expand Down
Loading

0 comments on commit e6fb479

Please sign in to comment.