Skip to content

Semantic intersection #19

Description

@PabloBotas

Currently the intersection is done in a hard way. If a symptom from OMIM is not present in the Orphanet annotations, then the symptom is removed from the disease phenotype list. However, symptoms may be defined in a different level of granularity: a symptom may be more precise in OMIM than in Orphanet or viceversa.

The lines following this one:

## REMOVE SYMPTOMS NOT PRESENT IN OMIM DISEASES
, instead of doing if k not in omim_phen:, the condition should consider successors and predecessors. So:

if k not in omim_phen and not any(k in hpo.predecessors(item) for item in omim_phen) and not any(item in omim_phen for item in hpo.predecessors(k)):

Meaning, if a symptom in Orphanet is a predecessor of a symptom in OMIM, then keep it. If a symptom in OMIM has a successor in the Orphanet symptoms, then keep the orphanet symptom as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions