Skip to content

Commit

Permalink
Merge pull request #242 from alliance-genome/curie_refactor
Browse files Browse the repository at this point in the history
Curie refactor
  • Loading branch information
markquintontulloch authored Nov 28, 2023
2 parents a840363 + ebbabd2 commit 71b4e37
Show file tree
Hide file tree
Showing 9 changed files with 232 additions and 46 deletions.
205 changes: 196 additions & 9 deletions generated/jsonschema/allianceModel.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -1130,8 +1130,8 @@
},
"required": [
"subtype_name",
"mod_entity_id",
"taxon_curie",
"mod_entity_id",
"data_provider_dto",
"internal"
],
Expand Down Expand Up @@ -2076,8 +2076,8 @@
},
"required": [
"allele_symbol_dto",
"mod_entity_id",
"taxon_curie",
"mod_entity_id",
"data_provider_dto",
"internal"
],
Expand Down Expand Up @@ -5330,9 +5330,9 @@
"required": [
"display_name",
"genome_assembly",
"curie",
"taxon",
"data_provider",
"curie",
"internal"
],
"title": "AssemblyComponent",
Expand Down Expand Up @@ -6919,8 +6919,8 @@
}
},
"required": [
"mod_entity_id",
"taxon_curie",
"mod_entity_id",
"data_provider_dto",
"internal"
],
Expand Down Expand Up @@ -7291,8 +7291,8 @@
},
"required": [
"construct_symbol",
"curie",
"data_provider",
"curie",
"internal"
],
"title": "Construct",
Expand Down Expand Up @@ -9020,6 +9020,57 @@
"title": "CurationReportHistory",
"type": "object"
},
"CurieObject": {
"additionalProperties": false,
"description": "Parent class for LinkML classes where all child classes have a curie (or will have one generated at the Alliance)",
"properties": {
"created_by": {
"description": "The individual that created the entity.",
"type": "string"
},
"curie": {
"description": "A unique identifier for a thing. Must be either a CURIE shorthand for a URI or a complete URI",
"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 disinct 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 disinct 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"
},
"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"
},
"updated_by": {
"description": "The individual that last modified the entity.",
"type": "string"
}
},
"required": [
"internal"
],
"title": "CurieObject",
"type": "object"
},
"DAOTerm": {
"additionalProperties": false,
"description": "",
Expand Down Expand Up @@ -10301,6 +10352,10 @@
"description": "A unique identifier for a thing. Must be either a CURIE shorthand for a URI or a complete URI",
"type": "string"
},
"data_provider": {
"$ref": "#/$defs/DataProvider",
"description": "Object representing the organization (e.g. MOD) from which the data was sourced and a CrossReference to that organisation's site"
},
"date_created": {
"description": "The date on which an entity was created. This can be applied to nodes or edges.",
"format": "date-time",
Expand All @@ -10325,6 +10380,14 @@
"description": "Classifies the entity as private (for internal use) or not (for public use).",
"type": "boolean"
},
"mod_entity_id": {
"description": "The model organism database (MOD) identifier/curie for the object",
"type": "string"
},
"mod_internal_id": {
"description": "The model organism database (MOD) internal identifier for the object",
"type": "string"
},
"obsolete": {
"description": "Entity is no longer current.",
"type": "boolean"
Expand Down Expand Up @@ -10364,7 +10427,7 @@
}
},
"required": [
"curie",
"data_provider",
"internal"
],
"title": "ExpressionExperiment",
Expand Down Expand Up @@ -11320,8 +11383,8 @@
"required": [
"gene_symbol",
"gene_type",
"mod_entity_id",
"taxon",
"mod_entity_id",
"data_provider",
"internal"
],
Expand Down Expand Up @@ -11793,8 +11856,8 @@
"required": [
"gene_symbol_dto",
"gene_type_curie",
"mod_entity_id",
"taxon_curie",
"mod_entity_id",
"data_provider_dto",
"internal"
],
Expand Down Expand Up @@ -19181,8 +19244,8 @@
}
},
"required": [
"mod_entity_id",
"taxon_curie",
"mod_entity_id",
"data_provider_dto",
"internal"
],
Expand Down Expand Up @@ -20315,6 +20378,130 @@
"title": "StrandEnum",
"type": "string"
},
"SubmittedObject": {
"additionalProperties": false,
"description": "Parent class for LinkML classes of submitted entities that may have a public or internal MOD ID/curie",
"properties": {
"created_by": {
"description": "The individual that created the entity.",
"type": "string"
},
"curie": {
"description": "A unique identifier for a thing. Must be either a CURIE shorthand for a URI or a complete URI",
"type": "string"
},
"data_provider": {
"$ref": "#/$defs/DataProvider",
"description": "Object representing the organization (e.g. MOD) from which the data was sourced and a CrossReference to that organisation's site"
},
"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 disinct 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 disinct 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"
},
"internal": {
"description": "Classifies the entity as private (for internal use) or not (for public use).",
"type": "boolean"
},
"mod_entity_id": {
"description": "The model organism database (MOD) identifier/curie for the object",
"type": "string"
},
"mod_internal_id": {
"description": "The model organism database (MOD) internal identifier for the object",
"type": "string"
},
"obsolete": {
"description": "Entity is no longer current.",
"type": "boolean"
},
"updated_by": {
"description": "The individual that last modified the entity.",
"type": "string"
}
},
"required": [
"data_provider",
"internal"
],
"title": "SubmittedObject",
"type": "object"
},
"SubmittedObjectDTO": {
"additionalProperties": false,
"description": "",
"properties": {
"created_by_curie": {
"description": "Curie of the Person object representing the individual that created the entity",
"type": "string"
},
"data_provider_dto": {
"$ref": "#/$defs/DataProviderDTO",
"description": "Ingest object representing the organization (e.g. MOD) from which the data was sourced and a CrossReference to that organisation's site"
},
"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 disinct 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 disinct 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"
},
"internal": {
"description": "Classifies the entity as private (for internal use) or not (for public use).",
"type": "boolean"
},
"mod_entity_id": {
"description": "The model organism database (MOD) identifier/curie for the object",
"type": "string"
},
"mod_internal_id": {
"description": "The model organism database (MOD) internal identifier for the object",
"type": "string"
},
"obsolete": {
"description": "Entity is no longer current.",
"type": "boolean"
},
"updated_by_curie": {
"description": "Curie of the Person object representing the individual that updated the entity",
"type": "string"
}
},
"required": [
"data_provider_dto",
"internal"
],
"title": "SubmittedObjectDTO",
"type": "object"
},
"SubtypeValues": {
"description": "",
"enum": [
Expand Down
36 changes: 27 additions & 9 deletions model/schema/core.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -82,30 +82,48 @@ classes:
- internal
- obsolete

BiologicalEntity:
CurieObject:
is_a: AuditedObject
description: >-
An entity of biological origin that can be unambiguously attributed to
a single species.
abstract: true
Parent class for LinkML classes where all child classes have a curie
(or will have one generated at the Alliance)
slots:
- curie

SubmittedObject:
is_a: CurieObject
description: >-
Parent class for LinkML classes of submitted entities
that may have a public or internal MOD ID/curie
slots:
- mod_entity_id
- mod_internal_id
- taxon
- data_provider

SubmittedObjectDTO:
is_a: AuditedObjectDTO
slots:
- mod_entity_id
- mod_internal_id
- data_provider_dto

BiologicalEntity:
is_a: SubmittedObject
description: >-
An entity of biological origin that can be unambiguously attributed to
a single species.
abstract: true
slots:
- taxon
slot_usage:
taxon:
required: true

BiologicalEntityDTO:
is_a: AuditedObjectDTO
is_a: SubmittedObjectDTO
abstract: true
slots:
- mod_entity_id
- mod_internal_id
- taxon_curie
- data_provider_dto
slot_usage:
taxon_curie:
required: true
Expand Down
6 changes: 1 addition & 5 deletions model/schema/expression.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,13 @@ emit_prefixes:
classes:

ExpressionExperiment:
is_a: AuditedObject
is_a: SubmittedObject
description: >-
Defined by the gene of interest, the specimen, the assay, the reagents
(Antibody, Probe), and the reference. It groups ExpressionAnnotations.
notes: >-
Specimens are defined by their AGM and/or alleles (or gel lane at MGI).
slots:
- curie
- single_reference
- biological_entity_assayed
- assay_used
Expand All @@ -59,9 +58,6 @@ classes:
- specimen_alleles
- condition_relations
- related_notes
slot_usage:
curie:
required: true
rules:
- postconditions:
any_of:
Expand Down
Loading

0 comments on commit 71b4e37

Please sign in to comment.