diff --git a/backend/src/monarch_py/api/entity.py b/backend/src/monarch_py/api/entity.py index a6d536933..5c9c56145 100644 --- a/backend/src/monarch_py/api/entity.py +++ b/backend/src/monarch_py/api/entity.py @@ -8,7 +8,6 @@ from monarch_py.api.config import solr from monarch_py.api.additional_models import OutputFormat from monarch_py.datamodels.model import AssociationTableResults, Node -from monarch_py.datamodels.category_enums import AssociationCategory from monarch_py.utils.format_utils import to_json, to_tsv router = APIRouter(tags=["entity"], responses={404: {"description": "Not Found"}}) @@ -55,8 +54,9 @@ def _association_table( title="ID of the entity to retrieve association table data for", examples=["MONDO:0019391"], ), - category: AssociationCategory = Path( - title="Type of association to retrieve association table data for", + category: str = Path( + title="Association-type section key (an AssociationTypeMapping key). For plain " + "single-category sections this is the biolink association category.", examples=["biolink:DiseaseToPhenotypicFeatureAssociation"], ), query: str = Query(default=None, title="query string to limit results to a subset", examples=["thumb"]), diff --git a/backend/src/monarch_py/datamodels/model.py b/backend/src/monarch_py/datamodels/model.py index 750739ff8..5e39beb52 100644 --- a/backend/src/monarch_py/datamodels/model.py +++ b/backend/src/monarch_py/datamodels/model.py @@ -278,14 +278,18 @@ class CompactAssociation(ConfiguredBaseModel): class AssociationTypeMapping(ConfiguredBaseModel): """ - A data class to hold the necessary information to produce association type counts for given entities with appropriate directional labels + A data class to hold the necessary information to produce association type counts for given entities with appropriate directional labels. Each match criterion (category, predicate, subject_category, object_category, primary_knowledge_source, provided_by) is an optional list; values within a single criterion are OR'd, and criteria are AND'd together. An omitted criterion places no constraint on that field. """ + key: Optional[str] = Field(default=None, description="""A stable identifier for this association-type section, used to accumulate counts and as the table/section key. Defaults to the (single) category when not set.""") subject_label: Optional[str] = Field(default=None, description="""A label to describe the subjects of the association type as a whole for use in the UI""") object_label: Optional[str] = Field(default=None, description="""A label to describe the objects of the association type as a whole for use in the UI""") symmetric: bool = Field(default=False, description="""Whether the association type is symmetric, meaning that the subject and object labels should be interchangeable""") - category: str = Field(default=..., description="""The biolink category to use in queries for this association type""") - subject_category: Optional[str] = Field(default=None, description="""The biolink category of entities in the subject position of this association type""") - object_category: Optional[str] = Field(default=None, description="""The biolink category of entities in the object position of this association type""") + category: Optional[list[str]] = Field(default=None, description="""The biolink association category/categories to match (OR'd)""") + predicate: Optional[list[str]] = Field(default=None, description="""The predicate(s) to match (OR'd)""") + subject_category: Optional[list[str]] = Field(default=None, description="""The biolink category/categories of entities in the subject position of this association type (OR'd)""") + object_category: Optional[list[str]] = Field(default=None, description="""The biolink category/categories of entities in the object position of this association type (OR'd)""") + primary_knowledge_source: Optional[list[str]] = Field(default=None, description="""The primary knowledge source(s) to match (OR'd)""") + provided_by: Optional[list[str]] = Field(default=None, description="""The provided_by ingest source(s) to match (OR'd)""") class ExpandedAssociation(Association): @@ -465,6 +469,7 @@ class FacetValue(ConfiguredBaseModel): class AssociationCount(FacetValue): + key: Optional[str] = Field(default=None, description="""Stable section identifier used as the frontend section key and the association-table key. Equals the category for plain single-category sections.""") category: Optional[str] = Field(default=None) count_direct: Optional[int] = Field(default=None, description="""Count of direct associations (no closure/descendants)""") count_with_orthologs: Optional[int] = Field(default=None, description="""Count including associations from orthologous genes""") diff --git a/backend/src/monarch_py/datamodels/model.yaml b/backend/src/monarch_py/datamodels/model.yaml index 3c22aeb92..ef7daac57 100644 --- a/backend/src/monarch_py/datamodels/model.yaml +++ b/backend/src/monarch_py/datamodels/model.yaml @@ -24,10 +24,14 @@ classes: AssociationCount: is_a: FacetValue slots: + - key - category - count_direct - count_with_orthologs slot_usage: + key: + description: Stable section identifier used as the frontend section key and the + association-table key. Equals the category for plain single-category sections. category: multivalued: false AssociationCountList: @@ -75,15 +79,27 @@ classes: range: DirectionalAssociation AssociationTypeMapping: description: A data class to hold the necessary information to produce association - type counts for given entities with appropriate directional labels + type counts for given entities with appropriate directional labels. Each match + criterion (category, predicate, subject_category, object_category, + primary_knowledge_source, provided_by) is an optional list; values within a + single criterion are OR'd, and criteria are AND'd together. An omitted criterion + places no constraint on that field. slots: + - key - subject_label - object_label - symmetric - category + - predicate - subject_category - object_category + - primary_knowledge_source + - provided_by slot_usage: + key: + description: A stable identifier for this association-type section, used to + accumulate counts and as the table/section key. Defaults to the (single) + category when not set. subject_label: description: A label to describe the subjects of the association type as a whole for use in the UI @@ -96,15 +112,27 @@ classes: ifabsent: false required: true category: - description: The biolink category to use in queries for this association type - required: true - multivalued: false + description: The biolink association category/categories to match (OR'd) + required: false + multivalued: true + predicate: + description: The predicate(s) to match (OR'd) + required: false + multivalued: true subject_category: - description: The biolink category of entities in the subject position of this - association type + description: The biolink category/categories of entities in the subject position + of this association type (OR'd) + multivalued: true object_category: - description: The biolink category of entities in the object position of this - association type + description: The biolink category/categories of entities in the object position + of this association type (OR'd) + multivalued: true + primary_knowledge_source: + description: The primary knowledge source(s) to match (OR'd) + multivalued: true + provided_by: + description: The provided_by ingest source(s) to match (OR'd) + multivalued: true CategoryGroupedAssociationResults: is_a: Results slots: @@ -555,6 +583,11 @@ slots: required: true category: multivalued: false + key: + description: A stable identifier for an association-type section, used to accumulate + counts and as the table/section key. Defaults to the category when not otherwise set. + range: string + multivalued: false causal_gene: description: A list of genes that are known to be causally associated with a disease range: Entity diff --git a/backend/src/monarch_py/implementations/solr/solr_implementation.py b/backend/src/monarch_py/implementations/solr/solr_implementation.py index 2557b3baf..9bf6ca418 100644 --- a/backend/src/monarch_py/implementations/solr/solr_implementation.py +++ b/backend/src/monarch_py/implementations/solr/solr_implementation.py @@ -30,7 +30,7 @@ EntityCategory, MappingPredicate, ) -from monarch_py.utils.association_type_utils import AssociationTypeMappings +from monarch_py.utils.association_type_utils import AssociationTypeMappings, get_solr_criteria_filters from monarch_py.implementations.solr.solr_parsers import ( convert_facet_fields, convert_facet_queries, @@ -776,7 +776,7 @@ def get_association_facets( def get_association_table( self, entity: str, - category: AssociationCategory, + category: Union[AssociationCategory, str], traverse_orthologs: bool = False, direct: bool = False, q: Optional[str] = None, @@ -787,6 +787,20 @@ def get_association_table( offset: int = 0, limit: int = 5, ) -> AssociationTableResults: + # `category` is really a section key: it resolves to an AssociationTypeMapping + # (whose criteria may combine several categories, a predicate, subject/object + # categories, etc.). An unknown key is treated as a literal category, which keeps + # backward compatibility for existing single-category sections and direct API use. + key = category.value if hasattr(category, "value") else category + mapping = AssociationTypeMappings.get_mapping_by_key(key) + if mapping and mapping.category: + categories = mapping.category + criteria_filters = get_solr_criteria_filters(mapping) + else: + categories = [key] + criteria_filters = [] + table_filter_queries = (filter_queries or []) + criteria_filters + entities = [entity] if traverse_orthologs: ortholog_associations = self.get_associations( @@ -798,12 +812,12 @@ def get_association_table( entities.extend([ent.id for ent in orthologous_entities]) query = build_association_table_query( entity=entities, - category=category.value, + category=categories, direct=direct, q=q, facet_fields=facet_fields, facet_queries=facet_queries, - filter_queries=filter_queries, + filter_queries=table_filter_queries, sort=sort, offset=offset, limit=limit, @@ -1077,12 +1091,13 @@ def get_generic_entity_grid( mapping = AssociationTypeMappings.get_mapping(first_col_cat) if mapping and mapping.subject_category and mapping.object_category: - # Use YAML metadata to determine direction - if context_category == mapping.subject_category: + # Use YAML metadata to determine direction. subject_category and + # object_category are multivalued (list[str]), so test membership. + if context_category in mapping.subject_category: context_field = "subject" column_field = "object" context_closure_field = "subject_closure" - elif context_category == mapping.object_category: + elif context_category in mapping.object_category: context_field = "object" column_field = "subject" context_closure_field = "object_closure" diff --git a/backend/src/monarch_py/implementations/solr/solr_parsers.py b/backend/src/monarch_py/implementations/solr/solr_parsers.py index 9aa0e55cd..a9ab8e987 100644 --- a/backend/src/monarch_py/implementations/solr/solr_parsers.py +++ b/backend/src/monarch_py/implementations/solr/solr_parsers.py @@ -26,7 +26,7 @@ from monarch_py.datamodels.solr import HistoPhenoKeys, SolrQueryResult from monarch_py.service.curie_service import converter from monarch_py.implementations.solr.solr_query_utils import build_association_count_suffixes -from monarch_py.utils.association_type_utils import get_association_type_mapping_by_query_string +from monarch_py.utils.association_type_utils import AssociationTypeMappings, get_solr_query_fragment from monarch_py.utils.utils import get_links_for_field, get_provided_by_link @@ -187,55 +187,57 @@ def parse_association_counts(query_result: SolrQueryResult, entities: List[str]) "orthologs_object": ("orthologs", False), } - # Collect counts into a dict keyed by (label, category) - # Each entry accumulates direct, closure, and ortholog counts - count_data: Dict[str, Dict] = {} - - def _ensure_entry(label: str, category: str): - if label not in count_data: - count_data[label] = {"category": category, "direct": 0, "closure": 0, "orthologs": 0} - - for k, v in query_result.facet_counts.facet_queries.items(): - if v == 0: - continue - - # Determine which suffix matches and which count level it represents - count_level = None - is_subject_direction = None - original_query = None - + # Rebuild the exact facet query string for each (mapping, suffix) so each result + # can be attributed to its mapping directly, without re-parsing the Solr logic. + # This is robust when several mappings share a category (e.g. biolink:Association) + # and are distinguished only by predicate / subject / object category. + lookup = {} + for mapping in AssociationTypeMappings.get_mappings(): + fragment = get_solr_query_fragment(mapping) for suffix_key, suffix_str in suffixes.all_suffixes.items(): - if k.endswith(suffix_str): - original_query = k.replace(f" {suffix_str}", "").lstrip("(").rstrip(")") - count_level, is_subject_direction = suffix_metadata[suffix_key] - break - - if count_level is None: - raise ValueError(f"Unexpected facet query when building association counts: {k}") + lookup[f"({fragment}) {suffix_str}"] = (mapping, *suffix_metadata[suffix_key]) - agm = get_association_type_mapping_by_query_string(original_query) - label = agm.subject_label if is_subject_direction else agm.object_label + # Accumulate counts keyed by the section key + count_data: Dict[str, Dict] = {} - _ensure_entry(label, agm.category) + for query_string, value in query_result.facet_counts.facet_queries.items(): + if value == 0: + continue + if query_string not in lookup: + raise ValueError(f"Unexpected facet query when building association counts: {query_string}") + + mapping, count_level, is_subject_direction = lookup[query_string] + key = mapping.key + if key not in count_data: + count_data[key] = { + "key": key, + "category": mapping.category[0] if mapping.category else None, + "label": None, + "direct": 0, + "closure": 0, + "orthologs": 0, + } + entry = count_data[key] + entry["label"] = mapping.subject_label if is_subject_direction else mapping.object_label # For symmetric associations, sum both directions; otherwise set the value - if agm.symmetric and count_data[label][count_level] > 0: - count_data[label][count_level] += v + if mapping.symmetric and entry[count_level] > 0: + entry[count_level] += value else: - count_data[label][count_level] = v + entry[count_level] = value # Build AssociationCount objects - items = [] - for label, data in count_data.items(): - items.append( - AssociationCount( - label=label, - count=data["closure"], - count_direct=data["direct"], - count_with_orthologs=data["orthologs"] if has_orthologs else None, - category=data["category"], - ) + items = [ + AssociationCount( + key=data["key"], + label=data["label"], + count=data["closure"], + count_direct=data["direct"], + count_with_orthologs=data["orthologs"] if has_orthologs else None, + category=data["category"], ) + for data in count_data.values() + ] return AssociationCountList(items=items) diff --git a/backend/src/monarch_py/implementations/solr/solr_query_utils.py b/backend/src/monarch_py/implementations/solr/solr_query_utils.py index c8c9dfa20..19f391b8b 100644 --- a/backend/src/monarch_py/implementations/solr/solr_query_utils.py +++ b/backend/src/monarch_py/implementations/solr/solr_query_utils.py @@ -147,7 +147,7 @@ def build_association_query( def build_association_table_query( entity: List[str], - category: str, + category: List[str], direct: bool = False, q: Optional[str] = None, facet_fields: List[str] = None, @@ -169,7 +169,7 @@ def build_association_table_query( query = build_association_query( entity=entity, - category=[category], + category=category, q=q, sort=sort, offset=offset, diff --git a/backend/src/monarch_py/utils/association_type_utils.py b/backend/src/monarch_py/utils/association_type_utils.py index e8755f746..48facd48e 100644 --- a/backend/src/monarch_py/utils/association_type_utils.py +++ b/backend/src/monarch_py/utils/association_type_utils.py @@ -1,5 +1,4 @@ import pkgutil -import re from typing import List import yaml @@ -26,10 +25,21 @@ def get_mappings(): @staticmethod def get_mapping(category: str): + """Get the first mapping that includes the given category.""" if AssociationTypeMappings.__instance is None: AssociationTypeMappings() for mapping in AssociationTypeMappings.__instance.mappings: - if mapping.category == category: + if mapping.category and category in mapping.category: + return mapping + return None + + @staticmethod + def get_mapping_by_key(key: str): + """Get the mapping for a given section key.""" + if AssociationTypeMappings.__instance is None: + AssociationTypeMappings() + for mapping in AssociationTypeMappings.__instance.mappings: + if mapping.key == key: return mapping return None @@ -53,84 +63,157 @@ def get_traversable_associations(entity_category: str) -> List[dict]: if AssociationTypeMappings.__instance is None: AssociationTypeMappings() + def _first(values): + return values[0] if values else None + results = [] for mapping in AssociationTypeMappings.__instance.mappings: + category = _first(mapping.category) # Check if entity can be the subject - if mapping.subject_category == entity_category: + if mapping.subject_category and entity_category in mapping.subject_category: results.append( { - "category": mapping.category, - "label": mapping.subject_label or mapping.category, + "category": category, + "label": mapping.subject_label or category, "context_field": "subject", - "target_category": mapping.object_category, + "target_category": _first(mapping.object_category), } ) # Check if entity can be the object (reverse traversal) - if mapping.object_category == entity_category: + if mapping.object_category and entity_category in mapping.object_category: results.append( { - "category": mapping.category, - "label": mapping.object_label or mapping.category, + "category": category, + "label": mapping.object_label or category, "context_field": "object", - "target_category": mapping.subject_category, + "target_category": _first(mapping.subject_category), } ) return results + # Match criteria that are declared as (optional) lists on AssociationTypeMapping. + # Values within a criterion are OR'd; criteria are AND'd together. + MULTIVALUED_CRITERIA = ( + "category", + "predicate", + "subject_category", + "object_category", + "primary_knowledge_source", + "provided_by", + ) + def load_mappings(self): mapping_data = pkgutil.get_data(__package__, "./association_type_mappings.yaml") mapping_data = yaml.load(mapping_data, Loader=yaml.FullLoader) + for entry in mapping_data: + # allow scalar shorthand in the yaml for the multivalued criteria + for field in AssociationTypeMappings.MULTIVALUED_CRITERIA: + value = entry.get(field) + if value is not None and not isinstance(value, list): + entry[field] = [value] + # default the section key to the (single) category when not set + if not entry.get("key"): + category = entry.get("category") + if category: + entry["key"] = category[0] adapter = TypeAdapter(List[AssociationTypeMapping]) self.mappings = adapter.validate_python(mapping_data) -def get_association_type_mapping_by_query_string( - query_string: str, -) -> AssociationTypeMapping: - """ - Get the association type mapping for a given query string, splitting the category and predicate components apart - Args: - query_string: A solr query string to parse apart for category and predicate +def _or_group(field: str, values) -> str: + """Build a Solr clause for one match criterion: OR within the field. - Returns: An AssociationTypeMapping instance appropriate for the given query string - Raises: ValueError if no match is found + A single value renders without parentheses so single-category mappings + produce exactly the same query as before (e.g. `category:"biolink:X"`). """ - - category = parse_query_string_for_category(query_string) - - matching_types = [a_type for a_type in AssociationTypeMappings.get_mappings() if a_type.category == category] - - if len(matching_types) == 0: - raise ValueError(f"No matching association type found for query string: [{query_string}]") - elif len(matching_types) > 1: - raise ValueError(f"Too many association types found for query string: [{query_string}]") - else: - return matching_types[0] + if not values: + return None + if isinstance(values, str): + values = [values] + if len(values) == 1: + return f'{field}:"{values[0]}"' + return "(" + " OR ".join(f'{field}:"{value}"' for value in values) + ")" + + +def uses_full_criteria(agm: AssociationTypeMapping) -> bool: + """Whether a section matches on all its declared criteria (predicate / + subject_category / object_category / source), rather than category alone. + + Sections authored with an explicit `key` in the yaml (e.g. drug_indications, + the clinical-measurement sections) opt into the full multi-criteria match. + Legacy single-category sections are keyed by their category (the key is + defaulted to category[0] at load) and declare subject/object_category only + as entity-grid direction metadata; matching on those as Solr criteria would + undercount edges whose node categories differ from the declared ones (e.g. + gene-expression edges to biolink:NamedThing). So they match on category + alone, exactly as before flexible matching was introduced. + """ + return bool(agm.category) and agm.key not in agm.category def get_solr_query_fragment(agm: AssociationTypeMapping) -> str: - return f'category:"{agm.category}"' + """Build the Solr clause that selects this association type: AND across the + present criteria, each criterion OR'd internally. Legacy single-category + sections match on category alone (see uses_full_criteria).""" + if not uses_full_criteria(agm): + return _or_group("category", agm.category) + parts = [ + _or_group("category", agm.category), + _or_group("predicate", agm.predicate), + _or_group("subject_category", agm.subject_category), + _or_group("object_category", agm.object_category), + _or_group("primary_knowledge_source", agm.primary_knowledge_source), + _or_group("provided_by", agm.provided_by), + ] + return " AND ".join(part for part in parts if part) + + +def get_solr_criteria_filters(agm: AssociationTypeMapping) -> List[str]: + """The non-category match criteria as individual Solr filter-query clauses. + + Used by the association table query, where the category list is applied + separately and predicate / subject / object / source criteria are added as + additional filters. Legacy single-category sections contribute no extra + criteria (see uses_full_criteria). + """ + if not uses_full_criteria(agm): + return [] + return [ + clause + for clause in ( + _or_group("predicate", agm.predicate), + _or_group("subject_category", agm.subject_category), + _or_group("object_category", agm.object_category), + _or_group("primary_knowledge_source", agm.primary_knowledge_source), + _or_group("provided_by", agm.provided_by), + ) + if clause + ] def get_sql_query_fragment(agm: AssociationTypeMapping) -> str: - return f'category = "{agm.category}"' - - -def parse_query_string_for_category( - query_string: str, -) -> str: - categories = [] - - pattern = re.compile(r'(category):\s*"?([\w:]+)"?') - for match in re.findall(pattern, query_string): - if match[0] == "category": - categories.append(match[1]) - - # Check if both categories and predicates were found - if not categories: - raise ValueError("No categories or predicates found in query string") - - if len(categories) > 1: - raise ValueError(f"Multiple categories found in query string: {query_string}") - - return categories[0] + """SQL equivalent of get_solr_query_fragment (AND across criteria, OR within). + Legacy single-category sections match on category alone (see + uses_full_criteria).""" + + def _or_group_sql(field, values): + if not values: + return None + if isinstance(values, str): + values = [values] + if len(values) == 1: + return f'{field} = "{values[0]}"' + return "(" + " OR ".join(f'{field} = "{value}"' for value in values) + ")" + + if not uses_full_criteria(agm): + return _or_group_sql("category", agm.category) + + parts = [ + _or_group_sql("category", agm.category), + _or_group_sql("predicate", agm.predicate), + _or_group_sql("subject_category", agm.subject_category), + _or_group_sql("object_category", agm.object_category), + _or_group_sql("primary_knowledge_source", agm.primary_knowledge_source), + _or_group_sql("provided_by", agm.provided_by), + ] + return " AND ".join(part for part in parts if part) diff --git a/backend/tests/fixtures/association_counts.py b/backend/tests/fixtures/association_counts.py index 30bff467a..c26f39fd8 100644 --- a/backend/tests/fixtures/association_counts.py +++ b/backend/tests/fixtures/association_counts.py @@ -1,6 +1,6 @@ - import pytest + @pytest.fixture def association_counts(): - return {'items': [{'label': 'Disease Model', 'count': 246, 'category': 'biolink:GenotypeToDiseaseAssociation', 'count_direct': 14, 'count_with_orthologs': None}, {'label': 'Disease to Phenotype', 'count': 4247, 'category': 'biolink:DiseaseToPhenotypicFeatureAssociation', 'count_direct': 0, 'count_with_orthologs': None}, {'label': 'Causal Gene', 'count': 133, 'category': 'biolink:CausalGeneToDiseaseAssociation', 'count_direct': 0, 'count_with_orthologs': None}, {'label': 'Correlated Gene', 'count': 156, 'category': 'biolink:CorrelatedGeneToDiseaseAssociation', 'count_direct': 0, 'count_with_orthologs': None}, {'label': 'Variant to Disease', 'count': 701, 'category': 'biolink:VariantToDiseaseAssociation', 'count_direct': 0, 'count_with_orthologs': None}, {'label': 'Medical Action', 'count': 6, 'category': 'biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation', 'count_direct': 0, 'count_with_orthologs': None}, {'label': 'Cases', 'count': 136, 'category': 'biolink:CaseToDiseaseAssociation', 'count_direct': 0, 'count_with_orthologs': None}]} + return {'items': [{'label': 'Disease Model', 'count': 246, 'key': 'biolink:GenotypeToDiseaseAssociation', 'category': 'biolink:GenotypeToDiseaseAssociation', 'count_direct': 14, 'count_with_orthologs': None}, {'label': 'Disease to Phenotype', 'count': 4247, 'key': 'biolink:DiseaseToPhenotypicFeatureAssociation', 'category': 'biolink:DiseaseToPhenotypicFeatureAssociation', 'count_direct': 0, 'count_with_orthologs': None}, {'label': 'Causal Gene', 'count': 133, 'key': 'biolink:CausalGeneToDiseaseAssociation', 'category': 'biolink:CausalGeneToDiseaseAssociation', 'count_direct': 0, 'count_with_orthologs': None}, {'label': 'Correlated Gene', 'count': 156, 'key': 'biolink:CorrelatedGeneToDiseaseAssociation', 'category': 'biolink:CorrelatedGeneToDiseaseAssociation', 'count_direct': 0, 'count_with_orthologs': None}, {'label': 'Variant to Disease', 'count': 701, 'key': 'biolink:VariantToDiseaseAssociation', 'category': 'biolink:VariantToDiseaseAssociation', 'count_direct': 0, 'count_with_orthologs': None}, {'label': 'Medical Action', 'count': 6, 'key': 'biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation', 'category': 'biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation', 'count_direct': 0, 'count_with_orthologs': None}, {'label': 'Cases', 'count': 136, 'key': 'biolink:CaseToDiseaseAssociation', 'category': 'biolink:CaseToDiseaseAssociation', 'count_direct': 0, 'count_with_orthologs': None}]} diff --git a/backend/tests/fixtures/association_counts_query.py b/backend/tests/fixtures/association_counts_query.py index aebe18703..ffef64291 100644 --- a/backend/tests/fixtures/association_counts_query.py +++ b/backend/tests/fixtures/association_counts_query.py @@ -1,6 +1,6 @@ - import pytest + @pytest.fixture def association_counts_query(): return {'q': '*:*', 'rows': 20, 'start': 0, 'facet': True, 'facet_min_count': 1, 'facet_fields': [], 'facet_queries': ['(category:"biolink:DiseaseToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GeneToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:PairwiseGeneToGeneInteraction") AND subject:"MONDO:0020121"', '(category:"biolink:GeneToPathwayAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GeneToExpressionSiteAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GeneToGeneHomologyAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:ChemicalToPathwayAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:MacromolecularMachineToMolecularActivityAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:MacromolecularMachineToCellularComponentAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:MacromolecularMachineToBiologicalProcessAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:CausalGeneToDiseaseAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:CorrelatedGeneToDiseaseAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:VariantToGeneAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:VariantToDiseaseAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GenotypeToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GenotypeToDiseaseAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:VariantToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GenotypeToGeneAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GenotypeToVariantAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:CaseToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:CaseToDiseaseAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:CaseToGeneAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:DiseaseToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GeneToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:PairwiseGeneToGeneInteraction") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GeneToPathwayAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GeneToExpressionSiteAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GeneToGeneHomologyAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:ChemicalToPathwayAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToMolecularActivityAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToCellularComponentAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToBiologicalProcessAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:CausalGeneToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:CorrelatedGeneToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:VariantToGeneAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:VariantToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GenotypeToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GenotypeToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:VariantToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GenotypeToGeneAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GenotypeToVariantAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:CaseToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:CaseToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:CaseToGeneAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:DiseaseToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GeneToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:PairwiseGeneToGeneInteraction") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GeneToPathwayAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GeneToExpressionSiteAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GeneToGeneHomologyAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:ChemicalToPathwayAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToMolecularActivityAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToCellularComponentAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToBiologicalProcessAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:CausalGeneToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:CorrelatedGeneToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:VariantToGeneAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:VariantToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:VariantToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToGeneAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToVariantAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:CaseToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:CaseToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:CaseToGeneAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:DiseaseToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GeneToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:PairwiseGeneToGeneInteraction") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GeneToPathwayAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GeneToExpressionSiteAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GeneToGeneHomologyAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:ChemicalToPathwayAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToMolecularActivityAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToCellularComponentAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToBiologicalProcessAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:CausalGeneToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:CorrelatedGeneToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:VariantToGeneAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:VariantToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:VariantToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToGeneAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToVariantAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:CaseToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:CaseToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:CaseToGeneAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")'], 'filter_queries': ['subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121" OR object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121"'], 'facet_mincount': 1, 'query_fields': None, 'def_type': 'edismax', 'q_op': 'AND', 'mm': '100%', 'boost': None, 'sort': None, 'hl': False} diff --git a/backend/tests/fixtures/association_counts_response.py b/backend/tests/fixtures/association_counts_response.py index 9dc67af5b..fa0d9ebb4 100644 --- a/backend/tests/fixtures/association_counts_response.py +++ b/backend/tests/fixtures/association_counts_response.py @@ -1,6 +1,6 @@ - import pytest + @pytest.fixture def association_counts_response(): return {'responseHeader': {'QTime': 2, 'params': {'facet.query': ['(category:"biolink:DiseaseToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GeneToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:PairwiseGeneToGeneInteraction") AND subject:"MONDO:0020121"', '(category:"biolink:GeneToPathwayAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GeneToExpressionSiteAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GeneToGeneHomologyAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:ChemicalToPathwayAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:MacromolecularMachineToMolecularActivityAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:MacromolecularMachineToCellularComponentAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:MacromolecularMachineToBiologicalProcessAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:CausalGeneToDiseaseAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:CorrelatedGeneToDiseaseAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:VariantToGeneAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:VariantToDiseaseAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GenotypeToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GenotypeToDiseaseAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:VariantToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GenotypeToGeneAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:GenotypeToVariantAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:CaseToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:CaseToDiseaseAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:CaseToGeneAssociation") AND subject:"MONDO:0020121"', '(category:"biolink:DiseaseToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GeneToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:PairwiseGeneToGeneInteraction") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GeneToPathwayAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GeneToExpressionSiteAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GeneToGeneHomologyAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:ChemicalToPathwayAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToMolecularActivityAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToCellularComponentAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToBiologicalProcessAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:CausalGeneToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:CorrelatedGeneToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:VariantToGeneAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:VariantToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GenotypeToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GenotypeToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:VariantToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GenotypeToGeneAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:GenotypeToVariantAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:CaseToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:CaseToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:CaseToGeneAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")', '(category:"biolink:DiseaseToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GeneToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:PairwiseGeneToGeneInteraction") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GeneToPathwayAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GeneToExpressionSiteAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GeneToGeneHomologyAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:ChemicalToPathwayAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToMolecularActivityAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToCellularComponentAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToBiologicalProcessAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:CausalGeneToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:CorrelatedGeneToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:VariantToGeneAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:VariantToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:VariantToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToGeneAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToVariantAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:CaseToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:CaseToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:CaseToGeneAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")', '(category:"biolink:DiseaseToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GeneToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:PairwiseGeneToGeneInteraction") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GeneToPathwayAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GeneToExpressionSiteAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GeneToGeneHomologyAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:ChemicalToPathwayAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToMolecularActivityAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToCellularComponentAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:MacromolecularMachineToBiologicalProcessAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:CausalGeneToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:CorrelatedGeneToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:VariantToGeneAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:VariantToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:VariantToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToGeneAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:GenotypeToVariantAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:CaseToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:CaseToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")', '(category:"biolink:CaseToGeneAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")'], 'mm': '100%', 'q': '*:*', 'defType': 'edismax', 'facet_min_count': '1', 'hl': 'false', 'start': '0', 'q.op': 'AND', 'fq': 'subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121" OR object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121"', 'facet.mincount': '1', 'rows': '20', 'facet': 'true'}}, 'response': {'num_found': 6213, 'start': 0, 'docs': [{'id': 'uuid:b545af16-a828-423a-a1c6-2b8828ef3efb', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'onset_qualifier': 'P4Y', 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_Spo69', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_Spo69||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient Spo69', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}, {'id': 'uuid:880e1e5f-f624-48ca-ab0a-7bbd32271138', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'onset_qualifier': 'P2Y', 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_Spo28', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_Spo28||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient Spo28', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}, {'id': 'uuid:4a229d7e-cce1-4625-bd1d-2923fe889b47', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:18551513'], 'subject': 'phenopacket.store:LMNA.PMID_18551513_1', 'object': 'MONDO:0013178', 'original_object': 'OMIM:613205', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_18551513_1||biolink:has_disease|MONDO:0013178', 'subject_label': '1', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'congenital muscular dystrophy due to LMNA mutation', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:7770009', 'MONDO:7770008', 'MONDO:0019950', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000001', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:7770006', 'MONDO:0002320', 'MONDO:0700223', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0013178', 'MONDO:0002081'], 'object_closure_label': ['hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'disease', 'hereditary disease', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'congenital muscular dystrophy due to LMNA mutation', 'disease of genetic or genomic mechanism', 'congenital nervous system disorder', 'disease by etiologic mechanism', 'congenital muscular dystrophy', 'hereditary neuromuscular disease', 'muscular dystrophy', 'myopathy', 'disease by body system or component', 'musculoskeletal system disorder', 'nervous system disorder', 'human disease'], 'highlighting': None}, {'id': 'uuid:90d82256-d774-451b-a571-cf296fd686d8', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'onset_qualifier': 'P15Y', 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD4_III_8', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD4_III_8||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient EMD4 III-8', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}, {'id': 'uuid:b6736800-9144-4695-bc9d-b1b53b3186e0', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'onset_qualifier': 'P1D', 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD3_III_3', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD3_III_3||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient EMD3 III-3', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}, {'id': 'uuid:c038968e-d77d-40e8-9184-aa180f6c0141', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD1_III_2', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD1_III_2||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient EMD1 III-2', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}, {'id': 'uuid:9f5e7c95-2ec1-479f-8c69-202f4280e7d7', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:18551513'], 'subject': 'phenopacket.store:LMNA.PMID_18551513_14', 'object': 'MONDO:0013178', 'original_object': 'OMIM:613205', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_18551513_14||biolink:has_disease|MONDO:0013178', 'subject_label': '14', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'congenital muscular dystrophy due to LMNA mutation', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:7770009', 'MONDO:7770008', 'MONDO:0019950', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000001', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:7770006', 'MONDO:0002320', 'MONDO:0700223', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0013178', 'MONDO:0002081'], 'object_closure_label': ['hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'disease', 'hereditary disease', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'congenital muscular dystrophy due to LMNA mutation', 'disease of genetic or genomic mechanism', 'congenital nervous system disorder', 'disease by etiologic mechanism', 'congenital muscular dystrophy', 'hereditary neuromuscular disease', 'muscular dystrophy', 'myopathy', 'disease by body system or component', 'musculoskeletal system disorder', 'nervous system disorder', 'human disease'], 'highlighting': None}, {'id': 'uuid:8cdb85f1-ebc8-43ae-bcc7-c001befd5b13', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'onset_qualifier': 'P3Y', 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD6_IV_7', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD6_IV_7||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient EMD6 IV-7', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}, {'id': 'uuid:ba147392-171b-4e7b-af71-af90b42e2cdd', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:18551513'], 'onset_qualifier': 'P4M', 'subject': 'phenopacket.store:LMNA.PMID_18551513_6', 'object': 'MONDO:0013178', 'original_object': 'OMIM:613205', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_18551513_6||biolink:has_disease|MONDO:0013178', 'subject_label': '6', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'congenital muscular dystrophy due to LMNA mutation', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:7770009', 'MONDO:7770008', 'MONDO:0019950', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000001', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:7770006', 'MONDO:0002320', 'MONDO:0700223', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0013178', 'MONDO:0002081'], 'object_closure_label': ['hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'disease', 'hereditary disease', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'congenital muscular dystrophy due to LMNA mutation', 'disease of genetic or genomic mechanism', 'congenital nervous system disorder', 'disease by etiologic mechanism', 'congenital muscular dystrophy', 'hereditary neuromuscular disease', 'muscular dystrophy', 'myopathy', 'disease by body system or component', 'musculoskeletal system disorder', 'nervous system disorder', 'human disease'], 'highlighting': None}, {'id': 'uuid:98898683-c586-485c-8439-034794f66e15', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'onset_qualifier': 'P4Y', 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD2_II_3', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD2_II_3||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient EMD2 II-3', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}, {'id': 'uuid:5cc27f01-934d-424c-acdc-43254aa251af', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'onset_qualifier': 'P4Y', 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_Spo20', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_Spo20||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient Spo20', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}, {'id': 'uuid:50ae46eb-e6a6-4810-b013-c68c8283c289', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:18551513'], 'subject': 'phenopacket.store:LMNA.PMID_18551513_9', 'object': 'MONDO:0013178', 'original_object': 'OMIM:613205', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_18551513_9||biolink:has_disease|MONDO:0013178', 'subject_label': '9', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'congenital muscular dystrophy due to LMNA mutation', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:7770009', 'MONDO:7770008', 'MONDO:0019950', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000001', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:7770006', 'MONDO:0002320', 'MONDO:0700223', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0013178', 'MONDO:0002081'], 'object_closure_label': ['hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'disease', 'hereditary disease', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'congenital muscular dystrophy due to LMNA mutation', 'disease of genetic or genomic mechanism', 'congenital nervous system disorder', 'disease by etiologic mechanism', 'congenital muscular dystrophy', 'hereditary neuromuscular disease', 'muscular dystrophy', 'myopathy', 'disease by body system or component', 'musculoskeletal system disorder', 'nervous system disorder', 'human disease'], 'highlighting': None}, {'id': 'uuid:b220f28e-8f49-4a89-b917-dee5698049df', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'onset_qualifier': 'P8Y', 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_Spo37', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_Spo37||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient Spo37', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}, {'id': 'uuid:7bf2b420-6eff-4749-8fa3-8d902a7292ba', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'onset_qualifier': 'P5Y', 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_Spo2', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_Spo2||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient Spo2', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}, {'id': 'uuid:aa3f86b5-fb3f-4790-960d-dfd897e2aec2', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:18551513'], 'subject': 'phenopacket.store:LMNA.PMID_18551513_8', 'object': 'MONDO:0013178', 'original_object': 'OMIM:613205', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_18551513_8||biolink:has_disease|MONDO:0013178', 'subject_label': '8', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'congenital muscular dystrophy due to LMNA mutation', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:7770009', 'MONDO:7770008', 'MONDO:0019950', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000001', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:7770006', 'MONDO:0002320', 'MONDO:0700223', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0013178', 'MONDO:0002081'], 'object_closure_label': ['hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'disease', 'hereditary disease', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'congenital muscular dystrophy due to LMNA mutation', 'disease of genetic or genomic mechanism', 'congenital nervous system disorder', 'disease by etiologic mechanism', 'congenital muscular dystrophy', 'hereditary neuromuscular disease', 'muscular dystrophy', 'myopathy', 'disease by body system or component', 'musculoskeletal system disorder', 'nervous system disorder', 'human disease'], 'highlighting': None}, {'id': 'uuid:b879d8ba-371a-4d78-b136-9fb03dee37d4', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:18551513'], 'onset_qualifier': 'P6M', 'subject': 'phenopacket.store:LMNA.PMID_18551513_10', 'object': 'MONDO:0013178', 'original_object': 'OMIM:613205', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_18551513_10||biolink:has_disease|MONDO:0013178', 'subject_label': '10', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'congenital muscular dystrophy due to LMNA mutation', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:7770009', 'MONDO:7770008', 'MONDO:0019950', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000001', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:7770006', 'MONDO:0002320', 'MONDO:0700223', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0013178', 'MONDO:0002081'], 'object_closure_label': ['hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'disease', 'hereditary disease', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'congenital muscular dystrophy due to LMNA mutation', 'disease of genetic or genomic mechanism', 'congenital nervous system disorder', 'disease by etiologic mechanism', 'congenital muscular dystrophy', 'hereditary neuromuscular disease', 'muscular dystrophy', 'myopathy', 'disease by body system or component', 'musculoskeletal system disorder', 'nervous system disorder', 'human disease'], 'highlighting': None}, {'id': 'uuid:7d99af53-3d2a-4116-b87d-29b9d1227a7c', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:18551513'], 'subject': 'phenopacket.store:LMNA.PMID_18551513_2', 'object': 'MONDO:0013178', 'original_object': 'OMIM:613205', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_18551513_2||biolink:has_disease|MONDO:0013178', 'subject_label': '2', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'congenital muscular dystrophy due to LMNA mutation', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:7770009', 'MONDO:7770008', 'MONDO:0019950', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000001', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:7770006', 'MONDO:0002320', 'MONDO:0700223', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0013178', 'MONDO:0002081'], 'object_closure_label': ['hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'disease', 'hereditary disease', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'congenital muscular dystrophy due to LMNA mutation', 'disease of genetic or genomic mechanism', 'congenital nervous system disorder', 'disease by etiologic mechanism', 'congenital muscular dystrophy', 'hereditary neuromuscular disease', 'muscular dystrophy', 'myopathy', 'disease by body system or component', 'musculoskeletal system disorder', 'nervous system disorder', 'human disease'], 'highlighting': None}, {'id': 'uuid:46c1a37b-198d-4de3-b367-245973b3aee3', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'onset_qualifier': 'P1Y1M', 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_Spo11', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_Spo11||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient Spo11', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}, {'id': 'uuid:daddc791-e5d2-4a74-aeba-f1dd096c463e', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'onset_qualifier': 'P4Y', 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD5_III_3', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD5_III_3||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient EMD5 III-3', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}, {'id': 'uuid:73c913b2-786d-4fa1-9ae2-a731ef95a5e8', 'predicate': 'biolink:has_disease', 'category': 'biolink:CaseToDiseaseAssociation', 'agent_type': 'manual_agent', 'knowledge_level': 'observation', 'primary_knowledge_source': 'infores:phenopacket-store', 'file_source': 'phenopacket_ingest_edges', 'provided_by': 'phenopacket_ingest_edges', 'publications': ['PMID:10939567'], 'onset_qualifier': 'P4Y', 'subject': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD2_III_7', 'object': 'MONDO:0021569', 'original_object': 'OMIM:181350', 'evidence_count': 1, 'grouping_key': 'phenopacket.store:LMNA.PMID_10939567_Patient_EMD2_III_7||biolink:has_disease|MONDO:0021569', 'subject_label': 'Patient EMD2 III-7', 'subject_category': 'biolink:Case', 'subject_namespace': 'phenopacket.store', 'object_label': 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'object_category': 'biolink:Disease', 'object_namespace': 'MONDO', 'object_closure': ['MONDO:0005267', 'MONDO:0100547', 'MONDO:7770009', 'MONDO:0020336', 'MONDO:0015151', 'MONDO:0016333', 'MONDO:7770008', 'MONDO:0000429', 'MONDO:0020121', 'MONDO:0019056', 'MONDO:0000426', 'MONDO:0016830', 'MONDO:0000001', 'MONDO:0005217', 'MONDO:0016106', 'MONDO:0005336', 'MONDO:0003847', 'MONDO:0700096', 'MONDO:0000591', 'MONDO:0005071', 'MONDO:0100545', 'MONDO:0003939', 'MONDO:0004994', 'MONDO:7770006', 'MONDO:0700223', 'MONDO:0005021', 'MONDO:0021106', 'MONDO:0004995', 'MONDO:0020120', 'MONDO:0100546', 'MONDO:0021569', 'MONDO:0016971', 'MONDO:0002081'], 'object_closure_label': ['autosomal genetic disease', 'familial cardiomyopathy', 'limb-girdle muscular dystrophy', 'hereditary skeletal muscle disorder', 'skeletal muscle disorder', 'dilated cardiomyopathy', 'laminopathy', 'cardiomyopathy', 'muscular dystrophy, limb-girdle, autosomal dominant', 'familial dilated cardiomyopathy', 'disease', 'progressive muscular dystrophy', 'hereditary disease', 'heart disorder', 'neuromuscular disease', 'hereditary neurological disease', 'muscle tissue disorder', 'cardiogenetic disease', 'disease of genetic or genomic mechanism', 'disease by etiologic mechanism', 'hereditary neuromuscular disease', 'Emery-Dreifuss muscular dystrophy 2, autosomal dominant', 'muscular dystrophy', 'autosomal dominant disease', 'Emery-Dreifuss muscular dystrophy', 'myopathy', 'cardiovascular disorder', 'disease by body system or component', 'musculoskeletal system disorder', 'autosomal dominant Emery-Dreifuss muscular dystrophy', 'nervous system disorder', 'human disease', 'intrinsic cardiomyopathy'], 'highlighting': None}]}, 'facet_counts': {'facet_fields': {}, 'facet_queries': {'(category:"biolink:DiseaseToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:GeneToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:PairwiseGeneToGeneInteraction") AND subject:"MONDO:0020121"': 0, '(category:"biolink:GeneToPathwayAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:GeneToExpressionSiteAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:GeneToGeneHomologyAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:ChemicalToPathwayAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:MacromolecularMachineToMolecularActivityAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:MacromolecularMachineToCellularComponentAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:MacromolecularMachineToBiologicalProcessAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:CausalGeneToDiseaseAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:CorrelatedGeneToDiseaseAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:VariantToGeneAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:VariantToDiseaseAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:GenotypeToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:GenotypeToDiseaseAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:VariantToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:GenotypeToGeneAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:GenotypeToVariantAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:CaseToPhenotypicFeatureAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:CaseToDiseaseAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:CaseToGeneAssociation") AND subject:"MONDO:0020121"': 0, '(category:"biolink:DiseaseToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:GeneToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:PairwiseGeneToGeneInteraction") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:GeneToPathwayAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:GeneToExpressionSiteAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:GeneToGeneHomologyAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:ChemicalToPathwayAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:MacromolecularMachineToMolecularActivityAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:MacromolecularMachineToCellularComponentAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:MacromolecularMachineToBiologicalProcessAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:CausalGeneToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:CorrelatedGeneToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:VariantToGeneAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:VariantToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:GenotypeToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:GenotypeToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 14, '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:VariantToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:GenotypeToGeneAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:GenotypeToVariantAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:CaseToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:CaseToDiseaseAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:CaseToGeneAssociation") AND (object:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121")': 0, '(category:"biolink:DiseaseToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 4247, '(category:"biolink:GeneToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:PairwiseGeneToGeneInteraction") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:GeneToPathwayAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:GeneToExpressionSiteAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:GeneToGeneHomologyAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:ChemicalToPathwayAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:MacromolecularMachineToMolecularActivityAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:MacromolecularMachineToCellularComponentAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:MacromolecularMachineToBiologicalProcessAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:CausalGeneToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:CorrelatedGeneToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:VariantToGeneAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:VariantToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:GenotypeToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:GenotypeToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:VariantToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:GenotypeToGeneAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:GenotypeToVariantAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:CaseToPhenotypicFeatureAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:CaseToDiseaseAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:CaseToGeneAssociation") AND (subject:"MONDO:0020121" OR subject_closure:"MONDO:0020121")': 0, '(category:"biolink:DiseaseToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:GeneToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:PairwiseGeneToGeneInteraction") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:GeneToPathwayAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:GeneToExpressionSiteAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:GeneToGeneHomologyAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:ChemicalToPathwayAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:MacromolecularMachineToMolecularActivityAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:MacromolecularMachineToCellularComponentAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:MacromolecularMachineToBiologicalProcessAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:CausalGeneToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 133, '(category:"biolink:CorrelatedGeneToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 156, '(category:"biolink:VariantToGeneAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:VariantToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 701, '(category:"biolink:GenotypeToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:GenotypeToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 246, '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 6, '(category:"biolink:VariantToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:GenotypeToGeneAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:GenotypeToVariantAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:CaseToPhenotypicFeatureAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0, '(category:"biolink:CaseToDiseaseAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 136, '(category:"biolink:CaseToGeneAssociation") AND (object:"MONDO:0020121" OR object_closure:"MONDO:0020121" OR disease_context_qualifier:"MONDO:0020121" OR disease_context_qualifier_closure:"MONDO:0020121")': 0}}, 'highlighting': {}} diff --git a/backend/tests/unit/test_association_type_mapping.py b/backend/tests/unit/test_association_type_mapping.py index 1d4a64328..6e94fcc9d 100644 --- a/backend/tests/unit/test_association_type_mapping.py +++ b/backend/tests/unit/test_association_type_mapping.py @@ -2,19 +2,32 @@ from monarch_py.datamodels.model import AssociationTypeMapping from monarch_py.utils.association_type_utils import ( AssociationTypeMappings, - get_association_type_mapping_by_query_string, + get_solr_criteria_filters, get_solr_query_fragment, get_sql_query_fragment, - parse_query_string_for_category, ) @pytest.fixture() def basic_mapping(): return AssociationTypeMapping( + key="biolink:GeneToPhenotypeAssociation", subject_label="Genes", object_label="Phenotypes", - category="biolink:GeneToPhenotypeAssociation", + category=["biolink:GeneToPhenotypeAssociation"], + ) + + +@pytest.fixture() +def composite_mapping(): + return AssociationTypeMapping( + key="clinical_measurement_correlated_phenotypes", + subject_label="Correlated Phenotypes", + object_label="Correlated Clinical Measurements", + category=["biolink:Association"], + predicate=["biolink:correlated_with"], + subject_category=["biolink:ClinicalMeasurement"], + object_category=["biolink:PhenotypicFeature"], ) @@ -28,21 +41,49 @@ def test_sql_basic_mapping(basic_mapping): assert query_fragment == 'category = "biolink:GeneToPhenotypeAssociation"' -def test_parse_association_type_query_string_single_category(): - query_string = 'category:"biolink:GeneToPhenotypeAssociation"' - category = parse_query_string_for_category(query_string) - assert category == "biolink:GeneToPhenotypeAssociation" - - -def test_parse_association_type_query_string_multiple_categories(): - query_string = 'category:"biolink:GeneToDiseaseAssociation" AND (predicate:"biolink:gene_associated_with_condition" OR predicate:"biolink:contributes_to")' - category = parse_query_string_for_category(query_string) - assert category == "biolink:GeneToDiseaseAssociation" +def test_solr_composite_mapping(composite_mapping): + """A section that keys on predicate + subject/object category, not just category.""" + query_fragment = get_solr_query_fragment(composite_mapping) + assert query_fragment == ( + 'category:"biolink:Association" AND predicate:"biolink:correlated_with" ' + 'AND subject_category:"biolink:ClinicalMeasurement" ' + 'AND object_category:"biolink:PhenotypicFeature"' + ) -# ===================================================================== -# Tests for AssociationTypeMappings singleton -# ===================================================================== +def test_solr_legacy_mapping_matches_on_category_only(): + """A legacy section (key defaulted to its category) declares subject/object + category only as direction metadata; it must NOT constrain the Solr query on + them, or it would undercount edges whose node categories differ from the + declared ones (e.g. gene-expression edges to biolink:NamedThing).""" + mapping = AssociationTypeMapping( + key="biolink:GeneToExpressionSiteAssociation", + subject_label="Gene Expression", + object_label="Gene Expression", + category=["biolink:GeneToExpressionSiteAssociation"], + subject_category=["biolink:Gene"], + object_category=["biolink:AnatomicalEntity"], + ) + assert get_solr_query_fragment(mapping) == 'category:"biolink:GeneToExpressionSiteAssociation"' + assert get_solr_criteria_filters(mapping) == [] + + +def test_solr_or_within_criterion(): + """Multiple values in a single criterion are OR'd (and parenthesized).""" + mapping = AssociationTypeMapping( + key="drug_indications", + subject_label="Indications", + object_label="Treatments", + category=[ + "biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation", + "biolink:ChemicalEntityToDiseaseOrPhenotypicFeatureAssociation", + ], + ) + query_fragment = get_solr_query_fragment(mapping) + assert query_fragment == ( + '(category:"biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation" ' + 'OR category:"biolink:ChemicalEntityToDiseaseOrPhenotypicFeatureAssociation")' + ) # ===================================================================== @@ -56,16 +97,24 @@ def test_get_mappings_returns_list(): assert len(mappings) > 0 -def test_all_mappings_have_category(): +def test_all_mappings_have_category_and_key(): mappings = AssociationTypeMappings.get_mappings() for m in mappings: assert m.category is not None + assert m.key is not None + + +def test_mapping_key_defaults_to_category(): + """Existing single-category mappings get key == their category.""" + mapping = AssociationTypeMappings.get_mapping("biolink:DiseaseToPhenotypicFeatureAssociation") + assert mapping is not None + assert mapping.key == "biolink:DiseaseToPhenotypicFeatureAssociation" def test_get_mapping_by_category(): result = AssociationTypeMappings.get_mapping("biolink:DiseaseToPhenotypicFeatureAssociation") assert result is not None - assert result.category == "biolink:DiseaseToPhenotypicFeatureAssociation" + assert "biolink:DiseaseToPhenotypicFeatureAssociation" in result.category def test_get_mapping_unknown_returns_none(): @@ -73,6 +122,12 @@ def test_get_mapping_unknown_returns_none(): assert result is None +def test_get_mapping_by_key(): + result = AssociationTypeMappings.get_mapping_by_key("biolink:DiseaseToPhenotypicFeatureAssociation") + assert result is not None + assert result.key == "biolink:DiseaseToPhenotypicFeatureAssociation" + + def test_get_traversable_associations_for_gene(): results = AssociationTypeMappings.get_traversable_associations("biolink:Gene") assert len(results) > 0 @@ -99,23 +154,3 @@ def test_get_traversable_associations_returns_direction(): def test_get_traversable_associations_empty_for_unknown(): results = AssociationTypeMappings.get_traversable_associations("biolink:Unknown") assert results == [] - - -# ===================================================================== -# Tests for get_association_type_mapping_by_query_string -# ===================================================================== - - -def test_mapping_by_query_string_valid(): - result = get_association_type_mapping_by_query_string('category:"biolink:DiseaseToPhenotypicFeatureAssociation"') - assert result.category == "biolink:DiseaseToPhenotypicFeatureAssociation" - - -def test_mapping_by_query_string_no_match(): - with pytest.raises(ValueError, match="No matching"): - get_association_type_mapping_by_query_string('category:"biolink:NonExistentAssociation"') - - -def test_mapping_by_query_string_no_category(): - with pytest.raises(ValueError, match="No categories"): - get_association_type_mapping_by_query_string("predicate:something") diff --git a/frontend/src/api/model.ts b/frontend/src/api/model.ts index 06d544d4e..96eda8cc4 100644 --- a/frontend/src/api/model.ts +++ b/frontend/src/api/model.ts @@ -305,6 +305,8 @@ export interface Association { export interface AssociationCount extends FacetValue { + /** Stable section identifier used as the frontend section key and the association-table key. Equals the category for plain single-category sections. */ + key?: string, category?: string, /** Count of direct associations (no closure/descendants) */ count_direct?: number, @@ -370,21 +372,29 @@ export interface AssociationTableResults extends Results { /** - * A data class to hold the necessary information to produce association type counts for given entities with appropriate directional labels + * A data class to hold the necessary information to produce association type counts for given entities with appropriate directional labels. Each match criterion (category, predicate, subject_category, object_category, primary_knowledge_source, provided_by) is an optional list; values within a single criterion are OR'd, and criteria are AND'd together. An omitted criterion places no constraint on that field. */ export interface AssociationTypeMapping { + /** A stable identifier for this association-type section, used to accumulate counts and as the table/section key. Defaults to the (single) category when not set. */ + key?: string, /** A label to describe the subjects of the association type as a whole for use in the UI */ subject_label?: string, /** A label to describe the objects of the association type as a whole for use in the UI */ object_label?: string, /** Whether the association type is symmetric, meaning that the subject and object labels should be interchangeable */ symmetric: boolean, - /** The biolink category to use in queries for this association type */ - category: string, - /** The biolink category of entities in the subject position of this association type */ - subject_category?: string, - /** The biolink category of entities in the object position of this association type */ - object_category?: string, + /** The biolink association category/categories to match (OR'd) */ + category?: string[], + /** The predicate(s) to match (OR'd) */ + predicate?: string[], + /** The biolink category/categories of entities in the subject position of this association type (OR'd) */ + subject_category?: string[], + /** The biolink category/categories of entities in the object position of this association type (OR'd) */ + object_category?: string[], + /** The primary knowledge source(s) to match (OR'd) */ + primary_knowledge_source?: string[], + /** The provided_by ingest source(s) to match (OR'd) */ + provided_by?: string[], } diff --git a/frontend/src/composables/use-association-categories.ts b/frontend/src/composables/use-association-categories.ts index 755f39cb1..906ef6707 100644 --- a/frontend/src/composables/use-association-categories.ts +++ b/frontend/src/composables/use-association-categories.ts @@ -11,7 +11,13 @@ export function useAssociationCategories(node: Node) { const options = computed(() => { const opts = node.association_counts?.map((ac) => ({ - id: ac.category || "", + /** + * stable section key; the backend defaults it to the category for plain + * single-category sections, so this stays category-compatible while + * also distinguishing sections that share one category (e.g. + * biolink:Association) + */ + id: ac.key || ac.category || "", label: startCase(ac.label), count: TRAVERSE_ORTHOLOG_CATEGORIES.has(ac.category || "") ? (ac.count_with_orthologs ?? ac.count) diff --git a/frontend/unit/useAssociationCategories.test.ts b/frontend/unit/useAssociationCategories.test.ts index fe991c2e5..e5d6f071b 100644 --- a/frontend/unit/useAssociationCategories.test.ts +++ b/frontend/unit/useAssociationCategories.test.ts @@ -1,7 +1,12 @@ import { describe, expect, it } from "vitest"; import { useAssociationCategories } from "@/composables/use-association-categories"; -type AssocCount = { category?: string; label: string; count: number }; +type AssocCount = { + key?: string; + category?: string; + label: string; + count: number; +}; type TestNode = { association_counts?: AssocCount[] }; const hidden = @@ -79,4 +84,30 @@ describe("useAssociationCategories", () => { const { options } = useAssociationCategories(node as any); expect(options.value[0]).toMatchObject({ id: "", count: 1 }); }); + + it("prefers the section key over category for the id", () => { + // several sections can share one category (biolink:Association), + // distinguished by their key + const node: TestNode = { + association_counts: [ + { + key: "clinical_measurement_correlated_phenotypes", + category: "biolink:Association", + label: "Correlated Phenotypes", + count: 4, + }, + { + key: "clinical_measurement_related_chemicals", + category: "biolink:Association", + label: "Related Chemicals", + count: 7, + }, + ], + }; + const { options } = useAssociationCategories(node as any); + expect(options.value.map((o) => o.id)).toEqual([ + "clinical_measurement_correlated_phenotypes", + "clinical_measurement_related_chemicals", + ]); + }); });