From 8e16b59d92fe15876cfa21d4db2f127bf4758849 Mon Sep 17 00:00:00 2001 From: markquintontulloch Date: Thu, 15 Feb 2024 21:57:35 +0000 Subject: [PATCH 1/8] Refactor association slots using domain prefix --- model/schema/allele.yaml | 115 ++++++++++-------- model/schema/biologicalEntitySet.yaml | 12 +- model/schema/core.yaml | 31 +---- model/schema/expression.yaml | 18 ++- model/schema/gene.yaml | 33 +++-- model/schema/geneInteraction.yaml | 25 ++-- model/schema/orthology.yaml | 1 - .../schema/phenotypeAndDiseaseAnnotation.yaml | 69 ++++++----- model/schema/reagent.yaml | 19 ++- model/schema/variantConsequence.yaml | 17 ++- model/schema/variation.yaml | 24 ++-- 11 files changed, 195 insertions(+), 169 deletions(-) diff --git a/model/schema/allele.yaml b/model/schema/allele.yaml index 34e705d40..49563454a 100644 --- a/model/schema/allele.yaml +++ b/model/schema/allele.yaml @@ -178,19 +178,28 @@ classes: mod_entity_id: required: true - SequenceTargetingReagentToGeneAssociation: + SequenceTargetingReagentAssociation: + is_a: EvidenceAssociation + abstract: true + description: Base class for STR associations + attributes: + sequence_targeting_reagent_association_subject: + range: SequenceTargetingReagent + required: true + + SequenceTargetingReagentGeneAssociation: description: >- the relationship between a Sequence Targeting Reagent and its targeted genes. The relation should be a VocabularyTerm with one of the following values - targets - is_a: EvidenceAssociation + is_a: SequenceTargetingReagentAssociation + attributes: + sequence_targeting_reagent_gene_association_object: + range: Gene + required: true slot_usage: relation: range: VocabularyTerm - subject: - range: SequenceTargetingReagent - object: - range: Gene # TO DO: create SequenceTargetingReagentToGeneAssociationDTO class? [CG] @@ -384,15 +393,26 @@ classes: ## ALLELE ASSOCIATION CLASSES ## ------------ + AlleleAssociation: + is_a: EvidenceAssociation + abstract: true + description: Base class for all Allele Associations + attributes: + allele_association_subject: + range: Allele + required: true + AlleleAlleleAssociation: is_a: AlleleGenomicEntityAssociation description: >- Association between an allele and another allele + attributes: + allele_allele_association_object: + range: Allele + required: true slot_usage: relation: notes: CV 'Allele Allele Association Relation' - object: - range: Allele AlleleAlleleAssociationDTO: is_a: AlleleGenomicEntityAssociationDTO @@ -403,18 +423,18 @@ classes: # do mutant/parent/embryonic cell line associations need to be split out? AlleleCellLineAssociation: - is_a: EvidenceAssociation + is_a: AlleleAssociation description: >- The relationship between an allele and a cell line. Includes mutant/ embryonic stem cell lines known to carry the allele, and parental cell line of alleles made in embryonic stem cells. + attributes: + allele_cell_line_association_object: + range: CellLine + required: true slot_usage: - subject: - range: Allele relation: range: VocabularyTerm - object: - range: CellLine AlleleCellLineAssociationDTO: is_a: EvidenceAssociationDTO @@ -432,16 +452,16 @@ classes: description: >- The relationship between an allele and constructs contained in that allele. + attributes: + allele_construct_association_object: + range: Construct + required: true slot_usage: - subject: - range: Allele relation: range: VocabularyTerm notes: >- CV 'Allele Construct Association Relation' including - contains, contains_coinjection_marker, contains_phenotypic_sequence_feature, and contains_innocuous_sequence_feature - object: - range: Construct AlleleConstructAssociationDTO: is_a: AlleleGenomicEntityAssociationDTO @@ -460,9 +480,10 @@ classes: is_a: AlleleGenomicEntityAssociation description: >- Association between an allele and a gene - slot_usage: - object: + attributes: + allele_gene_association_object: range: Gene + required: true AlleleGeneAssociationDTO: description: >- @@ -472,18 +493,18 @@ classes: - gene_identifier AlleleGenerationMethodAssociation: - is_a: EvidenceAssociation + is_a: AlleleAssociation slots: - mutation_target_strain + attributes: + allele_generation_method_association_object: + range: GenerationMethod + required: true slot_usage: - subject: - range: Allele relation: any_of: equals_string: has_generation_method notes: CV 'Allele Generation Method Association Relation' - object: - range: GenerationMethod AlleleGenerationMethodAssociationDTO: is_a: EvidenceAssociationDTO @@ -499,7 +520,7 @@ classes: equals_string: has_generation_method AlleleGenomicEntityAssociation: - is_a: EvidenceAssociation + is_a: AlleleAssociation abstract: true description: >- Association between an allele and a genomic entity @@ -507,12 +528,8 @@ classes: - evidence_code - related_note slot_usage: - subject: - range: Allele relation: range: VocabularyTerm # If we can adequately represent all needed relations in RO, this could be ROTerm - object: - range: GenomicEntity evidence: required: false # This needs to be not required, at least in the base class @@ -526,18 +543,18 @@ classes: - note_dto AlleleImageAssociation: - is_a: EvidenceAssociation + is_a: AlleleAssociation description: >- The relationship between an allele and an image. slots: - primary_image + attributes: + allele_image_association_object: + range: Image + required: true slot_usage: - subject: - range: Allele relation: range: VocabularyTerm - object: - range: Image primary_image: description: >- Can be null; if false, maybe you would show all the images. @@ -559,14 +576,13 @@ classes: We need to revisit this issue. AlleleOriginAssociation: - is_a: EvidenceAssociation + is_a: AlleleAssociation description: >- The relationship between an allele and the origin of the allele. - slot_usage: - subject: - range: Allele - object: + attributes: + allele_origin_association_object: range: AffectedGenomicModel + required: true AlleleOriginAssociationDTO: is_a: EvidenceAssociationDTO @@ -581,9 +597,11 @@ classes: is_a: AlleleGenomicEntityAssociation description: >- Association between an allele and a protein - slot_usage: - object: + attributes: + allele_protein_association_object: range: Protein + required: true + AlleleProteinAssociationDTO: is_a: AlleleGenomicEntityAssociationDTO @@ -596,9 +614,11 @@ classes: is_a: AlleleGenomicEntityAssociation description: >- Association between an allele and a transcript - slot_usage: - object: + attributes: + allele_transcript_association_object: range: Transcript + required: true + AlleleTranscriptAssociationDTO: is_a: AlleleGenomicEntityAssociationDTO @@ -613,12 +633,11 @@ classes: The relationship between an allele and a variant is many to many. An Allele may have many variants and a variant can be present in many alleles. - slot_usage: - subject: - range: Allele - object: + attributes: + allele_variant_association_object: range: Variant - + required: true + AlleleVariantAssociationDTO: is_a: AlleleGenomicEntityAssociationDTO description: >- diff --git a/model/schema/biologicalEntitySet.yaml b/model/schema/biologicalEntitySet.yaml index db4833870..4fb249b02 100644 --- a/model/schema/biologicalEntitySet.yaml +++ b/model/schema/biologicalEntitySet.yaml @@ -131,15 +131,17 @@ classes: - proteins - GeneToPathwayAssociation: + GenePathwayAssociation: is_a: EvidenceAssociation + slots: + - gene_association_subject + attributes: + gene_pathway_association_object: + range: Pathway + required: true slot_usage: relation: subproperty_of: has_participant - subject: - range: Gene - object: - range: Pathway ## ------------ diff --git a/model/schema/core.yaml b/model/schema/core.yaml index eb03043d5..8d3ec43ae 100644 --- a/model/schema/core.yaml +++ b/model/schema/core.yaml @@ -325,22 +325,18 @@ classes: of the association, and likewise the object is the curie (or identifier of the class that is the object. The relationship between subject and object is defined by the relation slot (which can also be constrained using the range of the relation). - exact_mappings: - - biolink:association notes: Keeping this more generic than biolink:association by foregoing the qualifiers and negated slots. + Association child classes must also have subject and object slots defined, but (due to implementation issues) + these must have distinct names if the range of the slot inherits from a different base table in the database. + Therefore these are defined in the appropriate classes with a prefix indicating the class(es) using the slot, + e.g. disease_annotation_subject, allele_association_subject, allele_construct_association_object. slots: - - subject - relation - - object slot_usage: - subject: - required: true relation: required: true - object: - required: true SingleReferenceAssociation: abstract: true @@ -1200,25 +1196,6 @@ slots: ## ASSOCIATION SLOTS ## -------------------- - subject: - is_a: association_slot - description: >- - connects an association to the subject of the association. - For example, in a gene-to-phenotype association, the gene is subject and phenotype is object. - required: true - exact_mappings: - - owl:annotatedSource - - biolink:subject - - object: - is_a: association_slot - description: >- - connects an association to the object of the association. - For example, in a gene-to-phenotype association, the gene is subject and phenotype is object. - required: true - exact_mappings: - - biolink:object - relation: is_a: association_slot description: >- diff --git a/model/schema/expression.yaml b/model/schema/expression.yaml index 5b648212e..036ee659b 100644 --- a/model/schema/expression.yaml +++ b/model/schema/expression.yaml @@ -131,17 +131,25 @@ classes: - cellular_component - spatial_qualifiers - ExpressionAnnotationImagePane: + ExpressionAnnotationAssociation: + is_a: EvidenceAssociation + abstract: true + description: Base class for all ExpressionAnnotation associations + attributes: + expression_annotation_subject: + required: true + domain: ExpressionAnnotation + + ExpressionAnnotationImagePaneAssociation: is_a: EvidenceAssociation notes: >- This aims to provide the same functionality as MGI imagepane. Some MODs (like ZFIN) point to the whole image. In these cases, the pane would encompass the whole image. - slot_usage: - subject: - range: ExpressionAnnotation - object: + attributes: + expression_annotation_image_pane_association_object: range: ImagePane + required: true # GeneExpressionStatement: # is_a: EntityStatement # Update to use Note class instead? diff --git a/model/schema/gene.yaml b/model/schema/gene.yaml index 5d1aaad63..22b66b9d4 100644 --- a/model/schema/gene.yaml +++ b/model/schema/gene.yaml @@ -208,13 +208,14 @@ classes: is_a: LocationAssociation description: >- Location(s) of the gene on the genome. + attributes: + gene_genomic_location_association_object: + range: AssemblyComponent + required: true slots: + - gene_association_subject - strand slot_usage: - subject: - range: Gene - object: - range: AssemblyComponent evidence: notes: List all references that support a given location association. start: @@ -237,14 +238,15 @@ classes: does this include genetic segregation studies? How do we handle location to specific chromosome arms? Different asso'n, or different slot here, etc? + attributes: + gene_chromosomal_location_association_object: + range: Chromosome + required: true slots: + - gene_association_subject - left_boundary_marker - right_boundary_marker slot_usage: - subject: - range: Gene - object: - range: Chromosome relation: any_of: - equals_string: has_location @@ -259,15 +261,16 @@ classes: Should this be limited to reports of specific cM on a given chromosome, or should it include genetic segregation studies that link gene to a chromosome? - slot_usage: - subject: - range: Gene - object: + attributes: + gene_genetic_map_association_object: range: Chromosome + required: true + slot_usage: relation: any_of: - equals_string: has_location slots: + - gene_association_subject - genetic_map_position_centimorgan - genetic_map_position_centimorgan_error @@ -277,6 +280,12 @@ classes: slots: + gene_association_subject: + description: >- + Subject slot to be used for gene associations + required: true + range: Gene + left_boundary_marker: description: >- The left boundary of a feature location relative to the landmark's diff --git a/model/schema/geneInteraction.yaml b/model/schema/geneInteraction.yaml index e46f925ee..a062395bd 100644 --- a/model/schema/geneInteraction.yaml +++ b/model/schema/geneInteraction.yaml @@ -50,33 +50,30 @@ classes: ## ASSOCIATIONS ## ------------ - GeneToGeneAssociation: + GeneGeneAssociation: description: >- abstract parent class for different kinds of gene-gene or gene product to gene product relationships. Includes homology and interaction. abstract: true is_a: EvidenceAssociation - defining_slots: - - subject - - object - slot_usage: - subject: + attributes: + gene_gene_association_object: range: Gene + required: true description: >- - the subject gene in the association. If the relation is symmetric, + the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa. - object: - range: Gene + slot_usage: + gene_association_subject: description: >- - the object gene in the association. If the relation is symmetric, + the subject gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa. # exact_mappings: # - biolink:GeneToGeneAssociation GeneToGeneAssociationDTO: - abstract: true is_a: AuditedObjectDTO slots: - subject_gene_identifier @@ -89,7 +86,7 @@ classes: An interaction between two genes or gene products; this may be a physical molecular interaction between gene products (e.g. protein-protein interactions), or may be a genetic interaction between genes (e.g. phenotypic suppression) - is_a: GeneToGeneAssociation + is_a: GeneGeneAssociation abstract: true slots: - curie @@ -101,9 +98,9 @@ classes: - interactor_A_type - interactor_B_type defining_slots: - - subject + - gene_association_subject - relation - - object + - gene_gene_association_object id_prefixes: - BIOGRID - DIP diff --git a/model/schema/orthology.yaml b/model/schema/orthology.yaml index f6ee5462b..7cd664b89 100644 --- a/model/schema/orthology.yaml +++ b/model/schema/orthology.yaml @@ -40,7 +40,6 @@ classes: GeneToGeneOrthology: is_a: AuditedObject - description: >- slots: - subject_gene - object_gene diff --git a/model/schema/phenotypeAndDiseaseAnnotation.yaml b/model/schema/phenotypeAndDiseaseAnnotation.yaml index 1d7873b2f..6069dfe51 100644 --- a/model/schema/phenotypeAndDiseaseAnnotation.yaml +++ b/model/schema/phenotypeAndDiseaseAnnotation.yaml @@ -64,12 +64,8 @@ classes: - related_notes - data_provider slot_usage: - subject: - required: true - object: - required: true - single_reference: - required: true + single_reference: + required: true AnnotationDTO: is_a: SingleReferenceAssociationDTO @@ -91,13 +87,16 @@ classes: description: >- An annotation asserting an association between a biological entity and a phenotype supported by evidence. slots: + - phenotype_annotation_subject - phenotype_term - slot_usage: - subject: # objectId in JSON schema + attributes: + phenotype_annotation_object: description: >- - The biological entity (e.g. gene, allele, genotype) to which the phenotype is associated, by direct curation. + phenotype statement: The label of an individual phenotype term from a phenotype ontology or the post-composed + statement of the phenotype from a post-composed terminology required: true - range: BiologicalEntity + range: string + slot_usage: phenotype_term: values_from: - HP @@ -114,12 +113,6 @@ classes: description: axon morphology variant - value: MP:0001569 description: abnormal circulating bilirubin level - object: # phenotypeStatement in JSON schema; eventually object should point to Phenotype class object - description: >- - phenotype statement: The label of an individual phenotype term from a phenotype ontology or the post-composed - statement of the phenotype from a post-composed terminology - required: true - range: string single_reference: description: >- The reference in which the phenotype association was asserted/reported. @@ -152,8 +145,7 @@ classes: slots: - sgd_strain_background # Does this also apply to phenotype annotations? slot_usage: - subject: - required: true + phenotype_annotation_subject: description: >- The gene to which the phenotype ontology term is associated. range: Gene @@ -175,7 +167,7 @@ classes: - inferred_gene - asserted_genes slot_usage: - subject: + phenotype_annotation_subject: description: >- The allele to which the phenotype ontology term is associated. range: Allele @@ -209,7 +201,7 @@ classes: - asserted_genes - asserted_allele slot_usage: - subject: + phenotype_annotation_subject: description: >- The AGM to which the phenotype ontology term is associated. range: AffectedGenomicModel @@ -227,6 +219,7 @@ classes: required: false asserted_allele: required: false + AGMPhenotypeAnnotationDTO: is_a: PhenotypeAnnotationDTO description: >- @@ -243,7 +236,13 @@ classes: abstract: true description: >- An annotation asserting an association between a biological entity and a disease supported by evidence. + attributes: + disease_annotation_object: + description: The Disease Ontology term + range: DOTerm + required: true slots: + - disease_annotation_subject - negated - evidence_codes - annotation_type @@ -274,19 +273,9 @@ classes: The model organism database (MOD) internal identifier for the disease annotation. When available, this is used for determination of distinctness instead of the Unique ID field. required: false - subject: - required: true - description: >- - The biological entity to which the disease ontology term is associated. - range: BiologicalEntity negated: description: >- The negative qualifier for the annotation. - object: - required: true - description: >- - The disease ontology term. - range: DOTerm relation: description: >- The relation between the subject biological entity and disease in the annotation. @@ -349,7 +338,7 @@ classes: slots: - sgd_strain_background slot_usage: - subject: + disease_annotation_subject: required: true description: >- The gene to which the disease ontology term is associated. @@ -378,7 +367,7 @@ classes: - inferred_gene - asserted_genes slot_usage: - subject: + disease_annotation_subject: description: >- The allele to which the disease ontology term is associated. range: Allele @@ -417,7 +406,7 @@ classes: - asserted_genes - asserted_allele slot_usage: - subject: + disease_annotation_subject: description: >- The AGM to which the disease ontology term is associated. range: AffectedGenomicModel @@ -739,6 +728,13 @@ slots: inlined: true inlined_as_list: true + disease_annotation_subject: + required: true + description: >- + The biological entity to which the disease ontology term is associated. + domain: DiseaseAnnotation + range: BiologicalEntity + disease_genetic_modifiers: description: >- Specifies a genetic object that modifies the disease model. May be a gene, allele, AGM. @@ -820,6 +816,13 @@ slots: automated pipeline range: string + phenotype_annotation_subject: + description: >- + The biological entity (e.g. gene, allele, genotype) to which the phenotype is associated, by direct curation. + required: true + domain: PhenotypeAnnotation + range: BiologicalEntity + phenotype_term: description: >- The phenotype ontology term used to describe the phenotype of an organism diff --git a/model/schema/reagent.yaml b/model/schema/reagent.yaml index 584ff9526..336cae2d1 100644 --- a/model/schema/reagent.yaml +++ b/model/schema/reagent.yaml @@ -257,25 +257,34 @@ classes: single_construct: required: true - ConstructGenomicEntityAssociation: + ConstructAssociation: + abstract: true is_a: EvidenceAssociation + description: Base class for construct associations + attributes: + construct_association_subject: + range: Construct + required: true + + ConstructGenomicEntityAssociation: + is_a: ConstructAssociation description: >- An association class to capture the identity of a construct component that is a known genomic entity with a curie and any accompanying meta data about the relationship between the construct and that genomic entity component + attributes: + construct_genomic_entity_association_object: + range: GenomicEntity + required: true slots: - related_notes slot_usage: - subject: - range: Construct relation: range: VocabularyTerm notes: >- The relation should be a VocabularyTerm with one of the following values - expresses (RO:0002292) / is_regulated_by (RO:0002334) / targets (RO:0002436). CV: 'Construct Genomic Entity Association Relation' - object: - range: GenomicEntity related_notes: required: false diff --git a/model/schema/variantConsequence.yaml b/model/schema/variantConsequence.yaml index 881a24b7b..eebb16173 100644 --- a/model/schema/variantConsequence.yaml +++ b/model/schema/variantConsequence.yaml @@ -46,8 +46,6 @@ classes: consequences abstract: true slots: - - subject - - object - vep_consequence - vep_impact - polyphen_score @@ -60,10 +58,10 @@ classes: description: >- Class for gene-level VEP results is_a: VariantConsequence - slot_usage: - object: + attributes: + variant_gene_consequence_object: range: Gene - subject: + variant_gene_consequence_subject: range: VariantGenomicLocationAssociation VariantTranscriptConsequence: @@ -71,6 +69,11 @@ classes: is_a: VariantConsequence description: >- Class for transcript-level VEP results + attributes: + variant_transcript_consequence_object: + range: Transcript + variant_transcript_consequence_subject: + range: VariantTranscriptLocationAssociation slots: - amino_acid_reference - amino_acid_variant @@ -85,10 +88,6 @@ classes: - hgvs_protein_nomenclature - hgvs_coding_nomenclature slot_usage: - object: - range: Transcript - subject: - range: VariantTranscriptLocationAssociation amino_acid_reference: description: >- Amino acid sequence encoded by codon(s) in reference genome sequence diff --git a/model/schema/variation.yaml b/model/schema/variation.yaml index 3c282bb82..6fdbf46a3 100644 --- a/model/schema/variation.yaml +++ b/model/schema/variation.yaml @@ -76,16 +76,14 @@ classes: the definition of the transcript or protein isoform used by the source has changed, or if there was an error in the source data. slots: + - variant_association_subject - hgvs - reference_sequence - variant_sequence - consequence - curated_consequence - sequence_of_reference_accession_number # Should this point to a chromosome object instead of a string? Will this be redundant with genomic location association of the subject? - slot_usage: - subject: - range: Variant - + VariantGenomicLocationAssociation: is_a: VariantLocationAssociation abstract: true @@ -102,8 +100,8 @@ classes: - padded_base - dna_mutation_type - gene_localization_type - slot_usage: - object: + attributes: + variant_genomic_location_association_object: description: >- The location reference object should be a chromosome assembly curie. range: AssemblyComponent @@ -118,8 +116,8 @@ classes: slots: - exon_number - intron_number - slot_usage: - object: + attributes: + variant_transcript_location_object: description: >- Transcript associated with variant and for which a specific location and consequence of that variant is provided, as specified at source. Multivalued=false for this slot because although a variant can have @@ -139,8 +137,8 @@ classes: - associated_transcripts # won't this be a property of the protein objects? - number_amino_acids_removed - number_amino_acids_inserted - slot_usage: - object: + attributes: + variant_polypeptide_location_association_object: description: >- Polypeptide associated with variant and for which a specific location and consequence of that variant is provided, as specified by curator. Multivalued=false for this slot because although a variant can have @@ -227,6 +225,12 @@ classes: # Slots slots: + variant_association_subject: + description: >- + Subject slot to be used for variant associations + required: true + range: Variant + number_amino_acids_removed: description: >- The number of amino acids removed from the polypeptide as a result of the variant. From 068a8f088c2cfecb38f9e3d61f7f47246914b38f Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 15 Feb 2024 22:08:14 +0000 Subject: [PATCH 2/8] Automated artifacts regeneration [skip actions] --- .../jsonschema/allianceModel.schema.json | 851 +++++++++--------- 1 file changed, 419 insertions(+), 432 deletions(-) diff --git a/generated/jsonschema/allianceModel.schema.json b/generated/jsonschema/allianceModel.schema.json index a22a6819a..ce4eadb37 100644 --- a/generated/jsonschema/allianceModel.schema.json +++ b/generated/jsonschema/allianceModel.schema.json @@ -57,6 +57,14 @@ "format": "date-time", "type": "string" }, + "disease_annotation_object": { + "description": "The Disease Ontology term", + "type": "string" + }, + "disease_annotation_subject": { + "$ref": "#/$defs/AffectedGenomicModel", + "description": "The AGM to which the disease ontology term is associated." + }, "disease_genetic_modifier_relation": { "description": "A relation describing how the genetic modifier modifies the disease model. Submitted value should be a vocabulary term from the 'Disease genetic modifiers' vocabulary", "type": "string" @@ -110,10 +118,6 @@ "description": "The negative qualifier for the annotation.", "type": "boolean" }, - "object": { - "description": "The disease ontology term.", - "type": "string" - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -137,10 +141,6 @@ "$ref": "#/$defs/Reference", "description": "The reference in which the disease association was asserted/reported." }, - "subject": { - "$ref": "#/$defs/AffectedGenomicModel", - "description": "The AGM to which the disease ontology term is associated." - }, "unique_id": { "description": "Unique identifier for the disease annotation. Will be generated at AGR if not submitted by the MOD.", "type": "string" @@ -158,12 +158,12 @@ } }, "required": [ + "disease_annotation_subject", "evidence_codes", + "disease_annotation_object", "data_provider", "single_reference", - "subject", "relation", - "object", "internal" ], "title": "AGMDiseaseAnnotation", @@ -400,14 +400,18 @@ "description": "The model organism database (MOD) internal identifier for the object", "type": "string" }, - "object": { - "description": "phenotype statement: The label of an individual phenotype term from a phenotype ontology or the post-composed statement of the phenotype from a post-composed terminology", - "type": "string" - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" }, + "phenotype_annotation_object": { + "description": "phenotype statement: The label of an individual phenotype term from a phenotype ontology or the post-composed statement of the phenotype from a post-composed terminology", + "type": "string" + }, + "phenotype_annotation_subject": { + "$ref": "#/$defs/AffectedGenomicModel", + "description": "The AGM to which the phenotype ontology term is associated." + }, "phenotype_term": { "description": "The phenotype ontology term used to describe the phenotype of an organism or a set of organisms.", "type": "string" @@ -427,10 +431,6 @@ "$ref": "#/$defs/Reference", "description": "The reference in which the phenotype association was asserted/reported." }, - "subject": { - "$ref": "#/$defs/AffectedGenomicModel", - "description": "The AGM to which the phenotype ontology term is associated." - }, "unique_id": { "description": "A non-curie unique identifier for a thing.", "type": "string" @@ -441,11 +441,11 @@ } }, "required": [ + "phenotype_annotation_subject", + "phenotype_annotation_object", "data_provider", "single_reference", - "subject", "relation", - "object", "date_created", "internal" ], @@ -1484,6 +1484,12 @@ "additionalProperties": false, "description": "Association between an allele and another allele", "properties": { + "allele_allele_association_object": { + "$ref": "#/$defs/Allele" + }, + "allele_association_subject": { + "$ref": "#/$defs/Allele" + }, "created_by": { "description": "The individual that created the entity.", "type": "string" @@ -1522,10 +1528,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/Allele", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -1538,19 +1540,15 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/Allele", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "allele_allele_association_object", + "allele_association_subject", "relation", - "object", "internal" ], "title": "AlleleAlleleAssociation", @@ -1635,6 +1633,12 @@ "additionalProperties": false, "description": "The relationship between an allele and a cell line. Includes mutant/ embryonic stem cell lines known to carry the allele, and parental cell line of alleles made in embryonic stem cells.", "properties": { + "allele_association_subject": { + "$ref": "#/$defs/Allele" + }, + "allele_cell_line_association_object": { + "$ref": "#/$defs/CellLine" + }, "created_by": { "description": "The individual that created the entity.", "type": "string" @@ -1670,10 +1674,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/CellLine", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -1682,19 +1682,15 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/Allele", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "allele_cell_line_association_object", + "allele_association_subject", "relation", - "object", "internal" ], "title": "AlleleCellLineAssociation", @@ -1773,6 +1769,12 @@ "additionalProperties": false, "description": "The relationship between an allele and constructs contained in that allele.", "properties": { + "allele_association_subject": { + "$ref": "#/$defs/Allele" + }, + "allele_construct_association_object": { + "type": "string" + }, "created_by": { "description": "The individual that created the entity.", "type": "string" @@ -1811,10 +1813,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.", - "type": "string" - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -1827,19 +1825,15 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/Allele", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "allele_construct_association_object", + "allele_association_subject", "relation", - "object", "internal" ], "title": "AlleleConstructAssociation", @@ -2257,6 +2251,14 @@ "format": "date-time", "type": "string" }, + "disease_annotation_object": { + "description": "The Disease Ontology term", + "type": "string" + }, + "disease_annotation_subject": { + "$ref": "#/$defs/Allele", + "description": "The allele to which the disease ontology term is associated." + }, "disease_genetic_modifier_relation": { "description": "A relation describing how the genetic modifier modifies the disease model. Submitted value should be a vocabulary term from the 'Disease genetic modifiers' vocabulary", "type": "string" @@ -2306,10 +2308,6 @@ "description": "The negative qualifier for the annotation.", "type": "boolean" }, - "object": { - "description": "The disease ontology term.", - "type": "string" - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -2333,10 +2331,6 @@ "$ref": "#/$defs/Reference", "description": "The reference in which the disease association was asserted/reported." }, - "subject": { - "$ref": "#/$defs/Allele", - "description": "The allele to which the disease ontology term is associated." - }, "unique_id": { "description": "Unique identifier for the disease annotation. Will be generated at AGR if not submitted by the MOD.", "type": "string" @@ -2354,12 +2348,12 @@ } }, "required": [ + "disease_annotation_subject", "evidence_codes", + "disease_annotation_object", "data_provider", "single_reference", - "subject", "relation", - "object", "internal" ], "title": "AlleleDiseaseAnnotation", @@ -2745,6 +2739,12 @@ "additionalProperties": false, "description": "Association between an allele and a gene", "properties": { + "allele_association_subject": { + "$ref": "#/$defs/Allele" + }, + "allele_gene_association_object": { + "$ref": "#/$defs/Gene" + }, "created_by": { "description": "The individual that created the entity.", "type": "string" @@ -2783,10 +2783,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/Gene", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -2799,19 +2795,15 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/Allele", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "allele_gene_association_object", + "allele_association_subject", "relation", - "object", "internal" ], "title": "AlleleGeneAssociation", @@ -2897,6 +2889,12 @@ "additionalProperties": false, "description": "", "properties": { + "allele_association_subject": { + "$ref": "#/$defs/Allele" + }, + "allele_generation_method_association_object": { + "$ref": "#/$defs/GenerationMethod" + }, "created_by": { "description": "The individual that created the entity.", "type": "string" @@ -2936,10 +2934,6 @@ "$ref": "#/$defs/AffectedGenomicModel", "description": "The particular strain (solely for and from MGI) that is targeted by the generation method for a particular allele." }, - "object": { - "$ref": "#/$defs/GenerationMethod", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -2953,19 +2947,15 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/Allele", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "allele_generation_method_association_object", + "allele_association_subject", "relation", - "object", "internal" ], "title": "AlleleGenerationMethodAssociation", @@ -3173,6 +3163,12 @@ "additionalProperties": false, "description": "The relationship between an allele and an image.", "properties": { + "allele_association_subject": { + "$ref": "#/$defs/Allele" + }, + "allele_image_association_object": { + "$ref": "#/$defs/Image" + }, "created_by": { "description": "The individual that created the entity.", "type": "string" @@ -3208,10 +3204,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/Image", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -3224,19 +3216,15 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/Allele", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "allele_image_association_object", + "allele_association_subject", "relation", - "object", "internal" ], "title": "AlleleImageAssociation", @@ -3705,6 +3693,12 @@ "additionalProperties": false, "description": "The relationship between an allele and the origin of the allele.", "properties": { + "allele_association_subject": { + "$ref": "#/$defs/Allele" + }, + "allele_origin_association_object": { + "$ref": "#/$defs/AffectedGenomicModel" + }, "created_by": { "description": "The individual that created the entity.", "type": "string" @@ -3740,10 +3734,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/AffectedGenomicModel", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -3752,19 +3742,15 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/Allele", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "allele_origin_association_object", + "allele_association_subject", "relation", - "object", "internal" ], "title": "AlleleOriginAssociation", @@ -3903,14 +3889,18 @@ "description": "The model organism database (MOD) internal identifier for the object", "type": "string" }, - "object": { - "description": "phenotype statement: The label of an individual phenotype term from a phenotype ontology or the post-composed statement of the phenotype from a post-composed terminology", - "type": "string" - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" }, + "phenotype_annotation_object": { + "description": "phenotype statement: The label of an individual phenotype term from a phenotype ontology or the post-composed statement of the phenotype from a post-composed terminology", + "type": "string" + }, + "phenotype_annotation_subject": { + "$ref": "#/$defs/Allele", + "description": "The allele to which the phenotype ontology term is associated." + }, "phenotype_term": { "description": "The phenotype ontology term used to describe the phenotype of an organism or a set of organisms.", "type": "string" @@ -3930,10 +3920,6 @@ "$ref": "#/$defs/Reference", "description": "The reference in which the phenotype association was asserted/reported." }, - "subject": { - "$ref": "#/$defs/Allele", - "description": "The allele to which the phenotype ontology term is associated." - }, "unique_id": { "description": "A non-curie unique identifier for a thing.", "type": "string" @@ -3944,11 +3930,11 @@ } }, "required": [ + "phenotype_annotation_subject", + "phenotype_annotation_object", "data_provider", "single_reference", - "subject", "relation", - "object", "date_created", "internal" ], @@ -4060,6 +4046,12 @@ "additionalProperties": false, "description": "Association between an allele and a protein", "properties": { + "allele_association_subject": { + "$ref": "#/$defs/Allele" + }, + "allele_protein_association_object": { + "$ref": "#/$defs/Protein" + }, "created_by": { "description": "The individual that created the entity.", "type": "string" @@ -4098,10 +4090,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/Protein", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -4114,19 +4102,15 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/Allele", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "allele_protein_association_object", + "allele_association_subject", "relation", - "object", "internal" ], "title": "AlleleProteinAssociation", @@ -4435,6 +4419,12 @@ "additionalProperties": false, "description": "Association between an allele and a transcript", "properties": { + "allele_association_subject": { + "$ref": "#/$defs/Allele" + }, + "allele_transcript_association_object": { + "$ref": "#/$defs/Transcript" + }, "created_by": { "description": "The individual that created the entity.", "type": "string" @@ -4473,10 +4463,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/Transcript", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -4489,19 +4475,15 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/Allele", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "allele_transcript_association_object", + "allele_association_subject", "relation", - "object", "internal" ], "title": "AlleleTranscriptAssociation", @@ -4586,6 +4568,12 @@ "additionalProperties": false, "description": "The relationship between an allele and a variant is many to many. An Allele may have many variants and a variant can be present in many alleles.", "properties": { + "allele_association_subject": { + "$ref": "#/$defs/Allele" + }, + "allele_variant_association_object": { + "$ref": "#/$defs/Variant" + }, "created_by": { "description": "The individual that created the entity.", "type": "string" @@ -4624,10 +4612,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/Variant", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -4640,19 +4624,15 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/Allele", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "allele_variant_association_object", + "allele_association_subject", "relation", - "object", "internal" ], "title": "AlleleVariantAssociation", @@ -4920,10 +4900,6 @@ "description": "The model organism database (MOD) internal identifier for the object", "type": "string" }, - "object": { - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.", - "type": "string" - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -4943,10 +4919,6 @@ "$ref": "#/$defs/Reference", "description": "holds between an object and a single reference" }, - "subject": { - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.", - "type": "string" - }, "unique_id": { "description": "A non-curie unique identifier for a thing.", "type": "string" @@ -4959,9 +4931,7 @@ "required": [ "data_provider", "single_reference", - "subject", "relation", - "object", "internal" ], "title": "Annotation", @@ -5444,10 +5414,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.", - "type": "string" - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -5456,19 +5422,13 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.", - "type": "string" - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", "relation", - "object", "internal" ], "title": "Association", @@ -7777,6 +7737,12 @@ "additionalProperties": false, "description": "An association class to capture the identity of a construct component that is a known genomic entity with a curie and any accompanying meta data about the relationship between the construct and that genomic entity component", "properties": { + "construct_association_subject": { + "type": "string" + }, + "construct_genomic_entity_association_object": { + "$ref": "#/$defs/GenomicEntity" + }, "created_by": { "description": "The individual that created the entity.", "type": "string" @@ -7812,10 +7778,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/GenomicEntity", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -7831,19 +7793,15 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.", - "type": "string" - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "construct_genomic_entity_association_object", + "construct_association_subject", "relation", - "object", "internal" ], "title": "ConstructGenomicEntityAssociation", @@ -8288,10 +8246,6 @@ "description": "The number of DNA base pairs removed from the reference sequence by the variant. sequence.", "type": "integer" }, - "object": { - "$ref": "#/$defs/AssemblyComponent", - "description": "The location reference object should be a chromosome assembly curie." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -8321,14 +8275,18 @@ "description": "The start of the feature in positive 1-based integer coordinates relative to the reference landmark.", "type": "integer" }, - "subject": { - "$ref": "#/$defs/Variant", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" }, + "variant_association_subject": { + "$ref": "#/$defs/Variant", + "description": "Subject slot to be used for variant associations" + }, + "variant_genomic_location_association_object": { + "$ref": "#/$defs/AssemblyComponent", + "description": "The location reference object should be a chromosome assembly curie." + }, "variant_sequence": { "description": "Sequence that differs from the reference sequence of genome or genomic entity at position of variant, as specified by curator.", "type": "string" @@ -8339,12 +8297,12 @@ } }, "required": [ + "variant_genomic_location_association_object", + "variant_association_subject", "hgvs", "start", "end", - "subject", "relation", - "object", "internal" ], "title": "CuratedVariantGenomicLocationAssociation", @@ -8556,10 +8514,6 @@ "description": "The number of amino acids removed from the polypeptide as a result of the variant.", "type": "integer" }, - "object": { - "$ref": "#/$defs/Protein", - "description": "Polypeptide associated with variant and for which a specific location and consequence of that variant is provided, as specified by curator. Multivalued=false for this slot because although a variant can have multiple VariantPolypeptideLocationAssociation stanzas, each stanza will have one and only one curated polypeptide ID." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -8585,26 +8539,30 @@ "description": "The start of the feature in positive 1-based integer coordinates relative to the reference landmark.", "type": "integer" }, - "subject": { - "$ref": "#/$defs/Variant", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" }, + "variant_association_subject": { + "$ref": "#/$defs/Variant", + "description": "Subject slot to be used for variant associations" + }, + "variant_polypeptide_location_association_object": { + "$ref": "#/$defs/Protein", + "description": "Polypeptide associated with variant and for which a specific location and consequence of that variant is provided, as specified by curator. Multivalued=false for this slot because although a variant can have multiple VariantPolypeptideLocationAssociation stanzas, each stanza will have one and only one curated polypeptide ID." + }, "variant_sequence": { "description": "Sequence that differs from the reference sequence of genome or genomic entity at position of variant, as specified by curator.", "type": "string" } }, "required": [ + "variant_polypeptide_location_association_object", + "variant_association_subject", "hgvs", "start", "end", - "subject", "relation", - "object", "internal" ], "title": "CuratedVariantPolypeptideLocationAssociation", @@ -8791,10 +8749,6 @@ "description": "The intron number of the variant location. If the variant is in an exon, this slot is not populated. Primarily used for zebrafish.", "type": "integer" }, - "object": { - "$ref": "#/$defs/Transcript", - "description": "Transcript associated with variant and for which a specific location and consequence of that variant is provided, as specified at source. Multivalued=false for this slot because although a variant can have multiple VariantTranscriptLocationAssociation stanzas, each stanza will have one and only one source transcript ID." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -8820,26 +8774,30 @@ "description": "The start of the feature in positive 1-based integer coordinates relative to the reference landmark.", "type": "integer" }, - "subject": { - "$ref": "#/$defs/Variant", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" }, + "variant_association_subject": { + "$ref": "#/$defs/Variant", + "description": "Subject slot to be used for variant associations" + }, "variant_sequence": { "description": "Sequence that differs from the reference sequence of genome or genomic entity at position of variant, as specified by curator.", "type": "string" + }, + "variant_transcript_location_object": { + "$ref": "#/$defs/Transcript", + "description": "Transcript associated with variant and for which a specific location and consequence of that variant is provided, as specified at source. Multivalued=false for this slot because although a variant can have multiple VariantTranscriptLocationAssociation stanzas, each stanza will have one and only one source transcript ID." } }, "required": [ + "variant_transcript_location_object", + "variant_association_subject", "hgvs", "start", "end", - "subject", "relation", - "object", "internal" ], "title": "CuratedVariantTranscriptLocationAssociation", @@ -10386,7 +10344,7 @@ "title": "ExpressionAnnotation", "type": "object" }, - "ExpressionAnnotationImagePane": { + "ExpressionAnnotationImagePaneAssociation": { "additionalProperties": false, "description": "", "properties": { @@ -10421,14 +10379,13 @@ }, "type": "array" }, + "expression_annotation_image_pane_association_object": { + "$ref": "#/$defs/ImagePane" + }, "internal": { "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/ImagePane", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -10437,22 +10394,17 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/ExpressionAnnotation", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "expression_annotation_image_pane_association_object", "relation", - "object", "internal" ], - "title": "ExpressionAnnotationImagePane", + "title": "ExpressionAnnotationImagePaneAssociation", "type": "object" }, "ExpressionConditionRelationEnum": { @@ -11678,6 +11630,13 @@ "format": "date-time", "type": "string" }, + "gene_association_subject": { + "$ref": "#/$defs/Gene", + "description": "Subject slot to be used for gene associations" + }, + "gene_chromosomal_location_association_object": { + "$ref": "#/$defs/Chromosome" + }, "internal": { "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" @@ -11686,10 +11645,6 @@ "$ref": "#/$defs/BiologicalEntity", "description": "The left boundary of a feature location relative to the landmark's inherent orientation." }, - "object": { - "$ref": "#/$defs/Chromosome", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -11711,19 +11666,15 @@ "$ref": "#/$defs/Reference", "description": "holds between an object and a single reference" }, - "subject": { - "$ref": "#/$defs/Gene", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "gene_association_subject", + "gene_chromosomal_location_association_object", "relation", - "object", "internal" ], "title": "GeneChromosomalLocationAssociation", @@ -12048,6 +11999,14 @@ "format": "date-time", "type": "string" }, + "disease_annotation_object": { + "description": "The Disease Ontology term", + "type": "string" + }, + "disease_annotation_subject": { + "$ref": "#/$defs/Gene", + "description": "The gene to which the disease ontology term is associated." + }, "disease_genetic_modifier_relation": { "description": "A relation describing how the genetic modifier modifies the disease model. Submitted value should be a vocabulary term from the 'Disease genetic modifiers' vocabulary", "type": "string" @@ -12093,10 +12052,6 @@ "description": "The negative qualifier for the annotation.", "type": "boolean" }, - "object": { - "description": "The disease ontology term.", - "type": "string" - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -12123,10 +12078,6 @@ "$ref": "#/$defs/Reference", "description": "The reference in which the disease association was asserted/reported." }, - "subject": { - "$ref": "#/$defs/Gene", - "description": "The gene to which the disease ontology term is associated." - }, "unique_id": { "description": "Unique identifier for the disease annotation. Will be generated at AGR if not submitted by the MOD.", "type": "string" @@ -12144,12 +12095,12 @@ } }, "required": [ + "disease_annotation_subject", "evidence_codes", + "disease_annotation_object", "data_provider", "single_reference", - "subject", "relation", - "object", "internal" ], "title": "GeneDiseaseAnnotation", @@ -12426,6 +12377,10 @@ }, "type": "array" }, + "gene_gene_association_object": { + "$ref": "#/$defs/Gene", + "description": "the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa." + }, "interaction_source": { "description": "The interaction database that curated the interaction. e.g. BioGRID An MITerm from the AGR interaction source subset of AGR terms.", "type": "string" @@ -12466,10 +12421,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/Gene", - "description": "the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -12484,10 +12435,6 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/Gene", - "description": "the subject gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" @@ -12498,9 +12445,8 @@ "interaction_type", "interactor_A_type", "interactor_B_type", - "subject", + "gene_gene_association_object", "relation", - "object", "internal" ], "title": "GeneGeneticInteraction", @@ -12659,6 +12605,13 @@ "format": "date-time", "type": "string" }, + "gene_association_subject": { + "$ref": "#/$defs/Gene", + "description": "Subject slot to be used for gene associations" + }, + "gene_genetic_map_association_object": { + "$ref": "#/$defs/Chromosome" + }, "genetic_map_position_centimorgan": { "description": "Genetic map distance calculated along a chromosome in centiMorgans: e.g., 22.3366 cM.", "type": "number" @@ -12671,10 +12624,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/Chromosome", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -12692,19 +12641,15 @@ "$ref": "#/$defs/Reference", "description": "holds between an object and a single reference" }, - "subject": { - "$ref": "#/$defs/Gene", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", + "gene_association_subject", + "gene_genetic_map_association_object", "relation", - "object", "internal" ], "title": "GeneGeneticMapAssociation", @@ -12749,14 +12694,17 @@ }, "type": "array" }, + "gene_association_subject": { + "$ref": "#/$defs/Gene", + "description": "Subject slot to be used for gene associations" + }, + "gene_genomic_location_association_object": { + "$ref": "#/$defs/AssemblyComponent" + }, "internal": { "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/AssemblyComponent", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -12778,22 +12726,18 @@ "$ref": "#/$defs/StrandEnum", "description": "The strand of a DNA reference object to which an entity maps." }, - "subject": { - "$ref": "#/$defs/Gene", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ + "gene_association_subject", "strand", + "gene_genomic_location_association_object", "start", "end", - "subject", "relation", - "object", "internal" ], "title": "GeneGenomicLocationAssociation", @@ -12853,6 +12797,10 @@ }, "type": "array" }, + "gene_gene_association_object": { + "$ref": "#/$defs/Gene", + "description": "the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa." + }, "interaction_source": { "description": "The interaction database that curated the interaction. e.g. BioGRID An MITerm from the AGR interaction source subset of AGR terms.", "type": "string" @@ -12887,10 +12835,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/Gene", - "description": "the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -12899,10 +12843,6 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/Gene", - "description": "the subject gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" @@ -12913,9 +12853,8 @@ "interaction_type", "interactor_A_type", "interactor_B_type", - "subject", + "gene_gene_association_object", "relation", - "object", "internal" ], "title": "GeneMolecularInteraction", @@ -13122,6 +13061,74 @@ "title": "GeneNomenclatureSet", "type": "object" }, + "GenePathwayAssociation": { + "additionalProperties": false, + "description": "", + "properties": { + "created_by": { + "description": "The individual that created the entity.", + "type": "string" + }, + "date_created": { + "description": "The date on which an entity was created. This can be applied to nodes or edges.", + "format": "date-time", + "type": "string" + }, + "date_updated": { + "description": "Date on which an entity was last modified.", + "format": "date-time", + "type": "string" + }, + "db_date_created": { + "description": "The date on which an entity was created in the Alliance database. This is distinct from date_created, which represents the date when the entity was originally created (i.e. at the MOD for imported data).", + "format": "date-time", + "type": "string" + }, + "db_date_updated": { + "description": "Date on which an entity was last modified in the Alliance database. This is distinct from date_updated, which represents the date when the entity was last modified and may predate import into the Alliance database.", + "format": "date-time", + "type": "string" + }, + "evidence": { + "description": "", + "items": { + "$ref": "#/$defs/InformationContentEntity" + }, + "type": "array" + }, + "gene_association_subject": { + "$ref": "#/$defs/Gene", + "description": "Subject slot to be used for gene associations" + }, + "gene_pathway_association_object": { + "$ref": "#/$defs/Pathway" + }, + "internal": { + "description": "Classifies the entity as private (for internal use) or not (for public use).", + "type": "boolean" + }, + "obsolete": { + "description": "Entity is no longer current.", + "type": "boolean" + }, + "relation": { + "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", + "type": "string" + }, + "updated_by": { + "description": "The individual that last modified the entity.", + "type": "string" + } + }, + "required": [ + "gene_association_subject", + "gene_pathway_association_object", + "relation", + "internal" + ], + "title": "GenePathwayAssociation", + "type": "object" + }, "GenePhenotypeAnnotation": { "additionalProperties": false, "description": "An annotation asserting an association between a gene and a phenotype supported by evidence.", @@ -13176,14 +13183,18 @@ "description": "The model organism database (MOD) internal identifier for the object", "type": "string" }, - "object": { - "description": "phenotype statement: The label of an individual phenotype term from a phenotype ontology or the post-composed statement of the phenotype from a post-composed terminology", - "type": "string" - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" }, + "phenotype_annotation_object": { + "description": "phenotype statement: The label of an individual phenotype term from a phenotype ontology or the post-composed statement of the phenotype from a post-composed terminology", + "type": "string" + }, + "phenotype_annotation_subject": { + "$ref": "#/$defs/Gene", + "description": "The gene to which the phenotype ontology term is associated." + }, "phenotype_term": { "description": "The phenotype ontology term used to describe the phenotype of an organism or a set of organisms.", "type": "string" @@ -13206,10 +13217,6 @@ "$ref": "#/$defs/Reference", "description": "The reference in which the phenotype association was asserted/reported." }, - "subject": { - "$ref": "#/$defs/Gene", - "description": "The gene to which the phenotype ontology term is associated." - }, "unique_id": { "description": "A non-curie unique identifier for a thing.", "type": "string" @@ -13220,11 +13227,11 @@ } }, "required": [ + "phenotype_annotation_subject", + "phenotype_annotation_object", "data_provider", "single_reference", - "subject", "relation", - "object", "date_created", "internal" ], @@ -13630,6 +13637,75 @@ "title": "GeneSystematicNameSlotAnnotation", "type": "object" }, + "GeneToGeneAssociationDTO": { + "additionalProperties": false, + "description": "", + "properties": { + "created_by_curie": { + "description": "Curie of the Person object representing the individual that created the entity", + "type": "string" + }, + "date_created": { + "description": "The date on which an entity was created. This can be applied to nodes or edges.", + "format": "date-time", + "type": "string" + }, + "date_updated": { + "description": "Date on which an entity was last modified.", + "format": "date-time", + "type": "string" + }, + "db_date_created": { + "description": "The date on which an entity was created in the Alliance database. This is distinct from date_created, which represents the date when the entity was originally created (i.e. at the MOD for imported data).", + "format": "date-time", + "type": "string" + }, + "db_date_updated": { + "description": "Date on which an entity was last modified in the Alliance database. This is distinct from date_updated, which represents the date when the entity was last modified and may predate import into the Alliance database.", + "format": "date-time", + "type": "string" + }, + "evidence_curies": { + "description": "Curies of InformationContentEntity objects given as evidence", + "items": { + "type": "string" + }, + "type": "array" + }, + "gene_relation_name": { + "description": "Name of VocabularyTerm describing relationship between a subject entity and an object Gene", + "type": "string" + }, + "internal": { + "description": "Classifies the entity as private (for internal use) or not (for public use).", + "type": "boolean" + }, + "object_gene_identifier": { + "description": "Identifier (curie/mod_entity_id/mod_internal_id) of the object gene in a gene-to-gene association", + "type": "string" + }, + "obsolete": { + "description": "Entity is no longer current.", + "type": "boolean" + }, + "subject_gene_identifier": { + "description": "Identifier (curie/mod_entity_id/mod_internal_id) of the subject gene in a gene-to-gene association", + "type": "string" + }, + "updated_by_curie": { + "description": "Curie of the Person object representing the individual that updated the entity", + "type": "string" + } + }, + "required": [ + "subject_gene_identifier", + "gene_relation_name", + "object_gene_identifier", + "internal" + ], + "title": "GeneToGeneAssociationDTO", + "type": "object" + }, "GeneToGeneOrthology": { "additionalProperties": false, "description": "", @@ -13852,75 +13928,6 @@ "title": "GeneToGeneOrthologyGenerated", "type": "object" }, - "GeneToPathwayAssociation": { - "additionalProperties": false, - "description": "", - "properties": { - "created_by": { - "description": "The individual that created the entity.", - "type": "string" - }, - "date_created": { - "description": "The date on which an entity was created. This can be applied to nodes or edges.", - "format": "date-time", - "type": "string" - }, - "date_updated": { - "description": "Date on which an entity was last modified.", - "format": "date-time", - "type": "string" - }, - "db_date_created": { - "description": "The date on which an entity was created in the Alliance database. This is distinct from date_created, which represents the date when the entity was originally created (i.e. at the MOD for imported data).", - "format": "date-time", - "type": "string" - }, - "db_date_updated": { - "description": "Date on which an entity was last modified in the Alliance database. This is distinct from date_updated, which represents the date when the entity was last modified and may predate import into the Alliance database.", - "format": "date-time", - "type": "string" - }, - "evidence": { - "description": "", - "items": { - "$ref": "#/$defs/InformationContentEntity" - }, - "type": "array" - }, - "internal": { - "description": "Classifies the entity as private (for internal use) or not (for public use).", - "type": "boolean" - }, - "object": { - "$ref": "#/$defs/Pathway", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, - "obsolete": { - "description": "Entity is no longer current.", - "type": "boolean" - }, - "relation": { - "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", - "type": "string" - }, - "subject": { - "$ref": "#/$defs/Gene", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, - "updated_by": { - "description": "The individual that last modified the entity.", - "type": "string" - } - }, - "required": [ - "subject", - "relation", - "object", - "internal" - ], - "title": "GeneToPathwayAssociation", - "type": "object" - }, "GenerationMethod": { "additionalProperties": false, "description": "", @@ -16977,10 +16984,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.", - "type": "string" - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -16995,19 +16998,13 @@ }, "type": "array" }, - "subject": { - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.", - "type": "string" - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" } }, "required": [ - "subject", "relation", - "object", "internal" ], "title": "OntologyTermClosure", @@ -17789,14 +17786,18 @@ "description": "The model organism database (MOD) internal identifier for the object", "type": "string" }, - "object": { - "description": "phenotype statement: The label of an individual phenotype term from a phenotype ontology or the post-composed statement of the phenotype from a post-composed terminology", - "type": "string" - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" }, + "phenotype_annotation_object": { + "description": "phenotype statement: The label of an individual phenotype term from a phenotype ontology or the post-composed statement of the phenotype from a post-composed terminology", + "type": "string" + }, + "phenotype_annotation_subject": { + "$ref": "#/$defs/BiologicalEntity", + "description": "The biological entity (e.g. gene, allele, genotype) to which the phenotype is associated, by direct curation." + }, "phenotype_term": { "description": "The phenotype ontology term used to describe the phenotype of an organism or a set of organisms.", "type": "string" @@ -17816,10 +17817,6 @@ "$ref": "#/$defs/Reference", "description": "The reference in which the phenotype association was asserted/reported." }, - "subject": { - "$ref": "#/$defs/BiologicalEntity", - "description": "The biological entity (e.g. gene, allele, genotype) to which the phenotype is associated, by direct curation." - }, "unique_id": { "description": "A non-curie unique identifier for a thing.", "type": "string" @@ -17830,11 +17827,11 @@ } }, "required": [ + "phenotype_annotation_subject", + "phenotype_annotation_object", "data_provider", "single_reference", - "subject", "relation", - "object", "date_created", "internal" ], @@ -19581,7 +19578,7 @@ "title": "SequenceTargetingReagentDTO", "type": "object" }, - "SequenceTargetingReagentToGeneAssociation": { + "SequenceTargetingReagentGeneAssociation": { "additionalProperties": false, "description": "the relationship between a Sequence Targeting Reagent and its targeted genes. The relation should be a VocabularyTerm with one of the following values - targets", "properties": { @@ -19620,10 +19617,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/Gene", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -19632,9 +19625,11 @@ "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" }, - "subject": { - "$ref": "#/$defs/SequenceTargetingReagent", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." + "sequence_targeting_reagent_association_subject": { + "$ref": "#/$defs/SequenceTargetingReagent" + }, + "sequence_targeting_reagent_gene_association_object": { + "$ref": "#/$defs/Gene" }, "updated_by": { "description": "The individual that last modified the entity.", @@ -19642,12 +19637,12 @@ } }, "required": [ - "subject", + "sequence_targeting_reagent_gene_association_object", + "sequence_targeting_reagent_association_subject", "relation", - "object", "internal" ], - "title": "SequenceTargetingReagentToGeneAssociation", + "title": "SequenceTargetingReagentGeneAssociation", "type": "object" }, "SiftPredictionLevels": { @@ -19897,10 +19892,6 @@ "description": "The number of DNA base pairs removed from the reference sequence by the variant. sequence.", "type": "integer" }, - "object": { - "$ref": "#/$defs/AssemblyComponent", - "description": "The location reference object should be a chromosome assembly curie." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -19934,14 +19925,18 @@ "description": "The start of the feature in positive 1-based integer coordinates relative to the reference landmark.", "type": "integer" }, - "subject": { - "$ref": "#/$defs/Variant", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" }, + "variant_association_subject": { + "$ref": "#/$defs/Variant", + "description": "Subject slot to be used for variant associations" + }, + "variant_genomic_location_association_object": { + "$ref": "#/$defs/AssemblyComponent", + "description": "The location reference object should be a chromosome assembly curie." + }, "variant_sequence": { "description": "Sequence that differs from the reference sequence of genome or genomic entity at position of variant, as specified by curator.", "type": "string" @@ -19953,9 +19948,9 @@ }, "required": [ "single_reference", - "subject", + "variant_genomic_location_association_object", + "variant_association_subject", "relation", - "object", "internal" ], "title": "SourceVariantGenomicLocationAssociation", @@ -20170,10 +20165,6 @@ "description": "The number of amino acids removed from the polypeptide as a result of the variant.", "type": "integer" }, - "object": { - "$ref": "#/$defs/Protein", - "description": "Polypeptide associated with variant and for which a specific location and consequence of that variant is provided, as specified by curator. Multivalued=false for this slot because although a variant can have multiple VariantPolypeptideLocationAssociation stanzas, each stanza will have one and only one curated polypeptide ID." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -20203,14 +20194,18 @@ "description": "The start of the feature in positive 1-based integer coordinates relative to the reference landmark.", "type": "integer" }, - "subject": { - "$ref": "#/$defs/Variant", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" }, + "variant_association_subject": { + "$ref": "#/$defs/Variant", + "description": "Subject slot to be used for variant associations" + }, + "variant_polypeptide_location_association_object": { + "$ref": "#/$defs/Protein", + "description": "Polypeptide associated with variant and for which a specific location and consequence of that variant is provided, as specified by curator. Multivalued=false for this slot because although a variant can have multiple VariantPolypeptideLocationAssociation stanzas, each stanza will have one and only one curated polypeptide ID." + }, "variant_sequence": { "description": "Sequence that differs from the reference sequence of genome or genomic entity at position of variant, as specified by curator.", "type": "string" @@ -20218,9 +20213,9 @@ }, "required": [ "single_reference", - "subject", + "variant_polypeptide_location_association_object", + "variant_association_subject", "relation", - "object", "internal" ], "title": "SourceVariantPolypeptideLocationAssociation", @@ -20410,10 +20405,6 @@ "description": "The intron number of the variant location. If the variant is in an exon, this slot is not populated. Primarily used for zebrafish.", "type": "integer" }, - "object": { - "$ref": "#/$defs/Transcript", - "description": "Transcript associated with variant and for which a specific location and consequence of that variant is provided, as specified at source. Multivalued=false for this slot because although a variant can have multiple VariantTranscriptLocationAssociation stanzas, each stanza will have one and only one source transcript ID." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -20443,24 +20434,28 @@ "description": "The start of the feature in positive 1-based integer coordinates relative to the reference landmark.", "type": "integer" }, - "subject": { - "$ref": "#/$defs/Variant", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" }, + "variant_association_subject": { + "$ref": "#/$defs/Variant", + "description": "Subject slot to be used for variant associations" + }, "variant_sequence": { "description": "Sequence that differs from the reference sequence of genome or genomic entity at position of variant, as specified by curator.", "type": "string" + }, + "variant_transcript_location_object": { + "$ref": "#/$defs/Transcript", + "description": "Transcript associated with variant and for which a specific location and consequence of that variant is provided, as specified at source. Multivalued=false for this slot because although a variant can have multiple VariantTranscriptLocationAssociation stanzas, each stanza will have one and only one source transcript ID." } }, "required": [ "single_reference", - "subject", + "variant_transcript_location_object", + "variant_association_subject", "relation", - "object", "internal" ], "title": "SourceVariantTranscriptLocationAssociation", @@ -21827,10 +21822,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/Gene", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -21851,14 +21842,16 @@ "description": "SIFT score between 0 and 1", "type": "number" }, - "subject": { - "$ref": "#/$defs/VariantGenomicLocationAssociation", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" }, + "variant_gene_consequence_object": { + "$ref": "#/$defs/Gene" + }, + "variant_gene_consequence_subject": { + "$ref": "#/$defs/VariantGenomicLocationAssociation" + }, "vep_consequence": { "$ref": "#/$defs/VepConsequenceLevels", "description": "VEP consequence" @@ -21869,8 +21862,6 @@ } }, "required": [ - "subject", - "object", "internal" ], "title": "VariantGeneConsequence", @@ -22071,10 +22062,6 @@ "description": "Classifies the entity as private (for internal use) or not (for public use).", "type": "boolean" }, - "object": { - "$ref": "#/$defs/Transcript", - "description": "connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "obsolete": { "description": "Entity is no longer current.", "type": "boolean" @@ -22103,14 +22090,16 @@ "description": "SIFT score between 0 and 1", "type": "number" }, - "subject": { - "$ref": "#/$defs/VariantTranscriptLocationAssociation", - "description": "connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object." - }, "updated_by": { "description": "The individual that last modified the entity.", "type": "string" }, + "variant_transcript_consequence_object": { + "$ref": "#/$defs/Transcript" + }, + "variant_transcript_consequence_subject": { + "$ref": "#/$defs/VariantTranscriptLocationAssociation" + }, "vep_consequence": { "$ref": "#/$defs/VepConsequenceLevels", "description": "VEP consequence" @@ -22121,8 +22110,6 @@ } }, "required": [ - "subject", - "object", "internal" ], "title": "VariantTranscriptConsequence", From 216e2646d132c00a021c171366aef4e572a82732 Mon Sep 17 00:00:00 2001 From: markquintontulloch Date: Fri, 16 Feb 2024 10:52:16 +0000 Subject: [PATCH 3/8] Update ontology term closure --- model/schema/ontologyTerm.yaml | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/model/schema/ontologyTerm.yaml b/model/schema/ontologyTerm.yaml index 06fb4c45a..671c67da5 100644 --- a/model/schema/ontologyTerm.yaml +++ b/model/schema/ontologyTerm.yaml @@ -102,13 +102,6 @@ slots: like "develops_from", ancestors are the terms to which this term develops into (not a true parent/child or ancestor/descendant relationship). - relationship_type: - range: string - multivalued: true - - distance_between: - range: integer - child_count: range: integer @@ -164,18 +157,21 @@ classes: OntologyTermClosure: is_a: EvidenceAssociation - slots: - - relationship_type - - distance_between - slot_usage: - subject: + attributes: + ontology_term_closure_subject: range: OntologyTerm - object: + required: true + ontology_term_closure_object: range: OntologyTerm + required: true distance_between: + range: integer description: >- distance_between is zero for reflexive–transitive closure each node has an ancestor or descendant of itself + relationship_type: + range: string + multivalued: true DOTerm: is_a: OntologyTerm From 38850ad65046b89593b61fac7592db2ef837bc94 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Fri, 16 Feb 2024 10:54:13 +0000 Subject: [PATCH 4/8] Automated artifacts regeneration [skip actions] --- generated/jsonschema/allianceModel.schema.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/generated/jsonschema/allianceModel.schema.json b/generated/jsonschema/allianceModel.schema.json index ce4eadb37..d558bd8ff 100644 --- a/generated/jsonschema/allianceModel.schema.json +++ b/generated/jsonschema/allianceModel.schema.json @@ -16988,6 +16988,12 @@ "description": "Entity is no longer current.", "type": "boolean" }, + "ontology_term_closure_object": { + "type": "string" + }, + "ontology_term_closure_subject": { + "type": "string" + }, "relation": { "description": "A high-level grouping for the relationship type. This is analogous to category for nodes. In RDF, this corresponds to rdf:predicate and in Neo4j this corresponds to the relationship type.", "type": "string" @@ -17004,6 +17010,8 @@ } }, "required": [ + "ontology_term_closure_subject", + "ontology_term_closure_object", "relation", "internal" ], From 22aebad3637c5356d4f8e22a687a3f8200d561d1 Mon Sep 17 00:00:00 2001 From: markquintontulloch Date: Fri, 16 Feb 2024 11:03:44 +0000 Subject: [PATCH 5/8] Update ontology closure test --- test/data/ontology_closure_test.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/test/data/ontology_closure_test.json b/test/data/ontology_closure_test.json index f597a46ee..7684ff765 100644 --- a/test/data/ontology_closure_test.json +++ b/test/data/ontology_closure_test.json @@ -2,32 +2,32 @@ "linkml_version": "2.0.0", "ontology_closure_ingest_set": [ { - "subject": "ZFA:brain", - "object": "ZFA:cavitated_compound_organ", + "ontology_term_closure_subject": "ZFA:brain", + "ontology_term_closure_object": "ZFA:cavitated_compound_organ", "relation": "RO:is_a", "internal": false }, { - "subject": "ZFA:brain", - "object": "ZFA:compound_organ", + "ontology_term_closure_subject": "ZFA:brain", + "ontology_term_closure_object": "ZFA:compound_organ", "relation": "RO:is_a", "internal": false }, { - "subject": "ZFA:brain", - "object": "ZFA:anatomical_structure", + "ontology_term_closure_subject": "ZFA:brain", + "ontology_term_closure_object": "ZFA:anatomical_structure", "relation": "RO:is_a", "internal": false }, { - "subject": "ZFA:brain", - "object": "ZFA:zebrafish_anatomical_entity", + "ontology_term_closure_subject": "ZFA:brain", + "ontology_term_closure_object": "ZFA:zebrafish_anatomical_entity", "relation": "RO:is_a", "internal": false }, { - "subject": "ZFA:brain", - "object": "ZFA:whole_organism", + "ontology_term_closure_subject": "ZFA:brain", + "ontology_term_closure_object": "ZFA:whole_organism", "relation": [ "RO:is_a", "RO:part_of" @@ -35,8 +35,8 @@ "internal": false }, { - "subject": "ZFA:brain", - "object": "ZFA:whole_organism", + "ontology_term_closure_subject": "ZFA:brain", + "ontology_term_closure_object": "ZFA:whole_organism", "relation": [ "RO:is_a", "RO:part_of" From 353ea58720fbe1c5af3ab139500365d185301ac8 Mon Sep 17 00:00:00 2001 From: markquintontulloch Date: Fri, 16 Feb 2024 20:47:58 +0000 Subject: [PATCH 6/8] Add missing slot --- model/schema/geneInteraction.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/model/schema/geneInteraction.yaml b/model/schema/geneInteraction.yaml index a062395bd..232a96f16 100644 --- a/model/schema/geneInteraction.yaml +++ b/model/schema/geneInteraction.yaml @@ -64,6 +64,8 @@ classes: the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa. + slots: + - gene_association_subject slot_usage: gene_association_subject: description: >- @@ -73,7 +75,7 @@ classes: # exact_mappings: # - biolink:GeneToGeneAssociation - GeneToGeneAssociationDTO: + GeneGeneAssociationDTO: is_a: AuditedObjectDTO slots: - subject_gene_identifier From 20b82cde0bda6f7878318590097465fa66eb7f8f Mon Sep 17 00:00:00 2001 From: markquintontulloch Date: Fri, 16 Feb 2024 20:54:14 +0000 Subject: [PATCH 7/8] Update class names --- model/schema/geneInteraction.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/model/schema/geneInteraction.yaml b/model/schema/geneInteraction.yaml index 232a96f16..c0ea79889 100644 --- a/model/schema/geneInteraction.yaml +++ b/model/schema/geneInteraction.yaml @@ -131,7 +131,7 @@ classes: # - biolink:PairwiseGeneToGeneInteraction GeneInteractionDTO: - is_a: GeneToGeneAssociationDTO + is_a: GeneGeneAssociationDTO abstract: true description: >- Ingest class for an interaction between two genes or gene products; this may be a physical @@ -369,7 +369,7 @@ slots: object_gene_identifier: description: Identifier (curie/mod_entity_id/mod_internal_id) of the object gene in a gene-to-gene association - domain: GeneToGeneAssociationDTO + domain: GeneGeneAssociationDTO range: string required: true @@ -381,7 +381,7 @@ slots: subject_gene_identifier: description: Identifier (curie/mod_entity_id/mod_internal_id) of the subject gene in a gene-to-gene association - domain: GeneToGeneAssociationDTO + domain: GeneGeneAssociationDTO range: string required: true From 0f4e60a73d9bf76b606f99c9be354485da5a951c Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Fri, 16 Feb 2024 20:55:25 +0000 Subject: [PATCH 8/8] Automated artifacts regeneration [skip actions] --- .../jsonschema/allianceModel.schema.json | 148 ++++++++++-------- 1 file changed, 79 insertions(+), 69 deletions(-) diff --git a/generated/jsonschema/allianceModel.schema.json b/generated/jsonschema/allianceModel.schema.json index d558bd8ff..7b269d7e8 100644 --- a/generated/jsonschema/allianceModel.schema.json +++ b/generated/jsonschema/allianceModel.schema.json @@ -12331,6 +12331,75 @@ "title": "GeneFullNameSlotAnnotation", "type": "object" }, + "GeneGeneAssociationDTO": { + "additionalProperties": false, + "description": "", + "properties": { + "created_by_curie": { + "description": "Curie of the Person object representing the individual that created the entity", + "type": "string" + }, + "date_created": { + "description": "The date on which an entity was created. This can be applied to nodes or edges.", + "format": "date-time", + "type": "string" + }, + "date_updated": { + "description": "Date on which an entity was last modified.", + "format": "date-time", + "type": "string" + }, + "db_date_created": { + "description": "The date on which an entity was created in the Alliance database. This is distinct from date_created, which represents the date when the entity was originally created (i.e. at the MOD for imported data).", + "format": "date-time", + "type": "string" + }, + "db_date_updated": { + "description": "Date on which an entity was last modified in the Alliance database. This is distinct from date_updated, which represents the date when the entity was last modified and may predate import into the Alliance database.", + "format": "date-time", + "type": "string" + }, + "evidence_curies": { + "description": "Curies of InformationContentEntity objects given as evidence", + "items": { + "type": "string" + }, + "type": "array" + }, + "gene_relation_name": { + "description": "Name of VocabularyTerm describing relationship between a subject entity and an object Gene", + "type": "string" + }, + "internal": { + "description": "Classifies the entity as private (for internal use) or not (for public use).", + "type": "boolean" + }, + "object_gene_identifier": { + "description": "Identifier (curie/mod_entity_id/mod_internal_id) of the object gene in a gene-to-gene association", + "type": "string" + }, + "obsolete": { + "description": "Entity is no longer current.", + "type": "boolean" + }, + "subject_gene_identifier": { + "description": "Identifier (curie/mod_entity_id/mod_internal_id) of the subject gene in a gene-to-gene association", + "type": "string" + }, + "updated_by_curie": { + "description": "Curie of the Person object representing the individual that updated the entity", + "type": "string" + } + }, + "required": [ + "subject_gene_identifier", + "gene_relation_name", + "object_gene_identifier", + "internal" + ], + "title": "GeneGeneAssociationDTO", + "type": "object" + }, "GeneGeneticInteraction": { "additionalProperties": false, "description": "A genetic interaction between genes (e.g. phenotypic suppression)", @@ -12377,6 +12446,10 @@ }, "type": "array" }, + "gene_association_subject": { + "$ref": "#/$defs/Gene", + "description": "the subject gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa." + }, "gene_gene_association_object": { "$ref": "#/$defs/Gene", "description": "the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa." @@ -12445,6 +12518,7 @@ "interaction_type", "interactor_A_type", "interactor_B_type", + "gene_association_subject", "gene_gene_association_object", "relation", "internal" @@ -12797,6 +12871,10 @@ }, "type": "array" }, + "gene_association_subject": { + "$ref": "#/$defs/Gene", + "description": "the subject gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa." + }, "gene_gene_association_object": { "$ref": "#/$defs/Gene", "description": "the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa." @@ -12853,6 +12931,7 @@ "interaction_type", "interactor_A_type", "interactor_B_type", + "gene_association_subject", "gene_gene_association_object", "relation", "internal" @@ -13637,75 +13716,6 @@ "title": "GeneSystematicNameSlotAnnotation", "type": "object" }, - "GeneToGeneAssociationDTO": { - "additionalProperties": false, - "description": "", - "properties": { - "created_by_curie": { - "description": "Curie of the Person object representing the individual that created the entity", - "type": "string" - }, - "date_created": { - "description": "The date on which an entity was created. This can be applied to nodes or edges.", - "format": "date-time", - "type": "string" - }, - "date_updated": { - "description": "Date on which an entity was last modified.", - "format": "date-time", - "type": "string" - }, - "db_date_created": { - "description": "The date on which an entity was created in the Alliance database. This is distinct from date_created, which represents the date when the entity was originally created (i.e. at the MOD for imported data).", - "format": "date-time", - "type": "string" - }, - "db_date_updated": { - "description": "Date on which an entity was last modified in the Alliance database. This is distinct from date_updated, which represents the date when the entity was last modified and may predate import into the Alliance database.", - "format": "date-time", - "type": "string" - }, - "evidence_curies": { - "description": "Curies of InformationContentEntity objects given as evidence", - "items": { - "type": "string" - }, - "type": "array" - }, - "gene_relation_name": { - "description": "Name of VocabularyTerm describing relationship between a subject entity and an object Gene", - "type": "string" - }, - "internal": { - "description": "Classifies the entity as private (for internal use) or not (for public use).", - "type": "boolean" - }, - "object_gene_identifier": { - "description": "Identifier (curie/mod_entity_id/mod_internal_id) of the object gene in a gene-to-gene association", - "type": "string" - }, - "obsolete": { - "description": "Entity is no longer current.", - "type": "boolean" - }, - "subject_gene_identifier": { - "description": "Identifier (curie/mod_entity_id/mod_internal_id) of the subject gene in a gene-to-gene association", - "type": "string" - }, - "updated_by_curie": { - "description": "Curie of the Person object representing the individual that updated the entity", - "type": "string" - } - }, - "required": [ - "subject_gene_identifier", - "gene_relation_name", - "object_gene_identifier", - "internal" - ], - "title": "GeneToGeneAssociationDTO", - "type": "object" - }, "GeneToGeneOrthology": { "additionalProperties": false, "description": "",