diff --git a/erdiagram-autogen/bican_core.md b/erdiagram-autogen/bican_core.md new file mode 100644 index 00000000..71118b7a --- /dev/null +++ b/erdiagram-autogen/bican_core.md @@ -0,0 +1,262 @@ +```mermaid +erDiagram +OntologyClass { + string id +} +Annotation { + +} +QuantityValue { + unit has_unit + double has_numeric_value +} +Attribute { + string id + uriorcurieList category + stringList type + narrative text description + boolean deprecated + stringList provided_by + uriorcurieList xref + label type full_name + label typeList synonym + label type attribute_name + iri type iri + label type name +} +Entity { + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated +} +NamedThing { + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated + stringList provided_by + uriorcurieList xref + label type full_name + label typeList synonym +} +TaxonomicRank { + string id +} +OrganismTaxon { + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated + stringList provided_by + uriorcurieList xref + label type full_name + label typeList synonym +} +InformationContentEntity { + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated + stringList provided_by + uriorcurieList xref + label type full_name + label typeList synonym + string license + string rights + string format + date creation_date +} +Dataset { + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated + stringList provided_by + uriorcurieList xref + label type full_name + label typeList synonym + string license + string rights + string format + date creation_date +} +PhysicalEssenceOrOccurrent { + +} +PhysicalEssence { + +} +PhysicalEntity { + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated + stringList provided_by + uriorcurieList xref + label type full_name + label typeList synonym +} +Occurrent { + +} +ActivityAndBehavior { + +} +Activity { + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated + stringList provided_by + uriorcurieList xref + label type full_name + label typeList synonym +} +Procedure { + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated + stringList provided_by + uriorcurieList xref + label type full_name + label typeList synonym +} +SubjectOfInvestigation { + +} +MaterialSample { + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated + stringList provided_by + uriorcurieList xref + label type full_name + label typeList synonym +} +ThingWithTaxon { + label type in_taxon_label +} +BiologicalEntity { + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated + stringList provided_by + uriorcurieList xref + label type full_name + label typeList synonym + label type in_taxon_label +} +GenomicEntity { + biological sequence has_biological_sequence +} +ChemicalEntityOrGeneOrGeneProduct { + +} +MacromolecularMachineMixin { + label type name +} +GeneOrGeneProduct { + label type name +} +Gene { + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated + stringList provided_by + label type full_name + label typeList synonym + label type in_taxon_label + string symbol + uriorcurieList xref + biological sequence has_biological_sequence +} +Genome { + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated + stringList provided_by + uriorcurieList xref + label type full_name + label typeList synonym + label type in_taxon_label + biological sequence has_biological_sequence +} +Checksum { + DigestType checksum_algorithm + string value + string id + iri type iri + uriorcurieList category + stringList type + label type name + narrative text description + boolean deprecated +} + +Attribute ||--}o Attribute : "has attribute" +Attribute ||--|| OntologyClass : "has attribute type" +Attribute ||--}o QuantityValue : "has quantitative value" +Attribute ||--|o NamedThing : "has qualitative value" +Entity ||--}o Attribute : "has attribute" +NamedThing ||--}o Attribute : "has attribute" +OrganismTaxon ||--}o Attribute : "has attribute" +OrganismTaxon ||--|o TaxonomicRank : "has taxonomic rank" +InformationContentEntity ||--}o Attribute : "has attribute" +Dataset ||--}o Attribute : "has attribute" +PhysicalEntity ||--}o Attribute : "has attribute" +Activity ||--}o Attribute : "has attribute" +Procedure ||--}o Attribute : "has attribute" +MaterialSample ||--}o Attribute : "has attribute" +ThingWithTaxon ||--}o OrganismTaxon : "in taxon" +BiologicalEntity ||--}o Attribute : "has attribute" +BiologicalEntity ||--}o OrganismTaxon : "in taxon" +Gene ||--}o Attribute : "has attribute" +Gene ||--}o OrganismTaxon : "in taxon" +Genome ||--}o Attribute : "has attribute" +Genome ||--}o OrganismTaxon : "in taxon" +Checksum ||--}o Attribute : "has attribute" + +``` + diff --git a/erdiagram-autogen/bican_prov.md b/erdiagram-autogen/bican_prov.md new file mode 100644 index 00000000..16e4035e --- /dev/null +++ b/erdiagram-autogen/bican_prov.md @@ -0,0 +1,15 @@ +```mermaid +erDiagram +ProvActivity { + +} +ProvEntity { + +} + +ProvActivity ||--|o ProvEntity : "used" +ProvEntity ||--|o ProvEntity : "was_derived_from" +ProvEntity ||--|o ProvActivity : "was_generated_by" + +``` + diff --git a/erdiagram-autogen/genome_annotation.md b/erdiagram-autogen/genome_annotation.md index f94fbb91..eccb1c22 100644 --- a/erdiagram-autogen/genome_annotation.md +++ b/erdiagram-autogen/genome_annotation.md @@ -58,17 +58,6 @@ GeneAnnotation { uriorcurieList xref biological_sequence has_biological_sequence } -Checksum { - DigestType checksum_algorithm - string value - string id - iri_type iri - uriorcurieList category - stringList type - label_type name - narrative_text description - boolean deprecated -} AnnotationCollection ||--}o GeneAnnotation : "annotations" AnnotationCollection ||--}o GenomeAnnotation : "genome_annotations" @@ -79,7 +68,6 @@ GenomeAnnotation ||--}o Attribute : "has attribute" GenomeAnnotation ||--}o OrganismTaxon : "in taxon" GeneAnnotation ||--}o Attribute : "has attribute" GeneAnnotation ||--}o OrganismTaxon : "in taxon" -Checksum ||--}o Attribute : "has attribute" ``` diff --git a/erdiagram-autogen/library_generation.md b/erdiagram-autogen/library_generation.md index 82406026..c0803fcc 100644 --- a/erdiagram-autogen/library_generation.md +++ b/erdiagram-autogen/library_generation.md @@ -1,10 +1,30 @@ ```mermaid erDiagram -ProvEntity { - +DigitalAsset { + stringList digest + string content_url + string data_type + string id + iri_type iri + uriorcurieList category + stringList type + label_type name + narrative_text description + boolean deprecated + stringList provided_by + uriorcurieList xref + label_type full_name + label_typeList synonym + string license + string rights + string format + date creation_date } ProvActivity { +} +ProvEntity { + } DissectionRoiPolygon { label_type name @@ -301,9 +321,12 @@ Donor { label_typeList synonym } +DigitalAsset ||--|o LibraryPool : "was_derived_from" +DigitalAsset ||--|o ProvActivity : "was_generated_by" +DigitalAsset ||--}o Attribute : "has attribute" +ProvActivity ||--|o ProvEntity : "used" ProvEntity ||--|o ProvEntity : "was_derived_from" ProvEntity ||--|o ProvActivity : "was_generated_by" -ProvActivity ||--|o ProvEntity : "used" DissectionRoiPolygon ||--|o DissectionRoiDelineation : "was_generated_by" DissectionRoiPolygon ||--|o BrainSlab : "annotates" DissectionRoiPolygon ||--|o ProvEntity : "was_derived_from" @@ -352,7 +375,7 @@ TissueSample ||--|o Donor : "was_derived_from" TissueSample ||--|o TissueDissection : "was_generated_by" TissueSample ||--|o DissectionRoiPolygon : "dissection_was_guided_by" TissueSample ||--}o Attribute : "has attribute" -BrainSlab ||--|o Donor : "was_derived_from" +BrainSlab ||--|o ProvEntity : "was_derived_from" BrainSlab ||--|o ProvActivity : "was_generated_by" BrainSlab ||--}o Attribute : "has attribute" Donor ||--}o OrganismTaxon : "in taxon" diff --git a/json-schema-autogen/anatomical_structure.json b/json-schema-autogen/anatomical_structure.json index b00e2985..77fc0912 100644 --- a/json-schema-autogen/anatomical_structure.json +++ b/json-schema-autogen/anatomical_structure.json @@ -23,7 +23,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "description": { "type": "string" @@ -53,6 +56,9 @@ }, { "type": "string" + }, + { + "type": "null" } ], "type": "string" @@ -82,7 +88,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "description": { "type": "string" @@ -112,6 +121,9 @@ }, { "type": "string" + }, + { + "type": "null" } ], "type": "string" @@ -151,7 +163,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "description": { "type": "string" @@ -169,6 +184,9 @@ }, { "type": "string" + }, + { + "type": "null" } ], "type": "string" @@ -186,12 +204,18 @@ }, "x_resolution": { "description": "The resolution (length / pixel) in along the x axis (numerical value part).", - "type": "number" + "type": [ + "number", + "null" + ] }, "x_size": { "description": "The number of pixels/voxels (size) along the x axis.", "minimum": 1, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "y_direction": { "$ref": "#/$defs/ANATOMICALDIRECTION", @@ -199,12 +223,18 @@ }, "y_resolution": { "description": "The resolution (length / pixel) in along the y axis (numerical value part).", - "type": "number" + "type": [ + "number", + "null" + ] }, "y_size": { "description": "The number of pixels/voxels (size) along the y axis.", "minimum": 1, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "z_direction": { "$ref": "#/$defs/ANATOMICALDIRECTION", @@ -212,12 +242,18 @@ }, "z_resolution": { "description": "The resolution (length / pixel) in along the z axis (numerical value part).", - "type": "number" + "type": [ + "number", + "null" + ] }, "z_size": { "description": "The number of pixels/voxels (size) along the y axis.", "minimum": 1, - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "required": [ @@ -251,7 +287,10 @@ "voxel_count": { "description": "The number of voxels (3D pixels) spanned by the parcellation annotation (optional).", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] } }, "required": [ @@ -308,7 +347,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "description": { "type": "string" @@ -362,6 +404,9 @@ }, { "type": "string" + }, + { + "type": "null" } ], "type": "string" @@ -373,6 +418,9 @@ }, { "type": "string" + }, + { + "type": "null" } ], "description": "Reference to the general (non versioned) parcellation atlas for which the parcellation atlas is a specific version release of.", @@ -400,7 +448,10 @@ "properties": { "color": { "description": "A string representing to hex triplet code of a color", - "type": "string" + "type": [ + "string", + "null" + ] }, "part_of_parcellation_color_scheme": { "anyOf": [ @@ -445,7 +496,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "description": { "type": "string" @@ -463,6 +517,9 @@ }, { "type": "string" + }, + { + "type": "null" } ], "type": "string" @@ -504,7 +561,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "description": { "type": "string" @@ -516,6 +576,9 @@ }, { "type": "string" + }, + { + "type": "null" } ], "description": "Reference to the parent parcellation term for which the parcellation term is a child ( spatially part) of", @@ -530,7 +593,10 @@ "ordinal": { "description": "Ordinal of the parcellation term among other terms within the context of the associated parcellation terminology.", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "part_of_parcellation_term_set": { "anyOf": [ @@ -546,7 +612,10 @@ }, "symbol": { "description": "Symbol representing a parcellation term.", - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ @@ -569,7 +638,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "description": { "type": "string" @@ -581,6 +653,9 @@ }, { "type": "string" + }, + { + "type": "null" } ], "description": "Reference to the parent parcellation term set for which the parcellation term set is a child (lower taxonomic rank) of.", @@ -595,7 +670,10 @@ "ordinal": { "description": "Ordinal of the parcellation term set among other term sets within the context of the associated parcellation terminology.", "minimum": 0, - "type": "integer" + "type": [ + "integer", + "null" + ] }, "part_of_parcellation_terminology": { "anyOf": [ @@ -630,7 +708,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "description": { "type": "string" @@ -648,6 +729,9 @@ }, { "type": "string" + }, + { + "type": "null" } ], "type": "string" diff --git a/json-schema-autogen/bican_core.json b/json-schema-autogen/bican_core.json new file mode 100644 index 00000000..4482e782 --- /dev/null +++ b/json-schema-autogen/bican_core.json @@ -0,0 +1,1373 @@ +{ + "$defs": { + "Activity": { + "additionalProperties": false, + "description": "An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities.", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "biolink:Activity" + ], + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "full_name": { + "description": "a long-form human readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "A human-readable name for an attribute or entity.", + "type": [ + "string", + "null" + ] + }, + "provided_by": { + "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "xref": { + "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "required": [ + "id" + ], + "title": "Activity", + "type": "object" + }, + "Attribute": { + "additionalProperties": false, + "description": "A property or characteristic of an entity. For example, an apple may have properties such as color, shape, age, crispiness. An environmental sample may have attributes such as depth, lat, long, material.", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "biolink:Attribute" + ], + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "full_name": { + "description": "a long-form human readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "has_attribute_type": { + "description": "connects an attribute to a class that describes it", + "type": "string" + }, + "has_qualitative_value": { + "description": "connects an attribute to a value", + "type": [ + "string", + "null" + ] + }, + "has_quantitative_value": { + "description": "connects an attribute to a value", + "items": { + "$ref": "#/$defs/QuantityValue" + }, + "type": [ + "array", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.", + "type": [ + "string", + "null" + ] + }, + "provided_by": { + "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "xref": { + "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "required": [ + "id", + "has_attribute_type" + ], + "title": "Attribute", + "type": "object" + }, + "Checksum": { + "additionalProperties": false, + "description": "Checksum values associated with digital entities.", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "bican:Checksum" + ], + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "checksum_algorithm": { + "$ref": "#/$defs/DigestType", + "description": "The type of cryptographic hash function used to calculate the checksum value." + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "A human-readable name for an attribute or entity.", + "type": [ + "string", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "value": { + "description": "The checksum value obtained from a specific cryotographic hash function.", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id" + ], + "title": "Checksum", + "type": "object" + }, + "Dataset": { + "additionalProperties": false, + "description": "an item that refers to a collection of data from a data source.", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "biolink:Dataset" + ], + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "creation_date": { + "description": "date on which an entity was created. This can be applied to nodes or edges", + "format": "date", + "type": [ + "string", + "null" + ] + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "format": { + "type": [ + "string", + "null" + ] + }, + "full_name": { + "description": "a long-form human readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "A human-readable name for an attribute or entity.", + "type": [ + "string", + "null" + ] + }, + "provided_by": { + "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "rights": { + "type": [ + "string", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "xref": { + "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "required": [ + "id" + ], + "title": "Dataset", + "type": "object" + }, + "DigestType": { + "description": "", + "enum": [ + "spdx:checksumAlgorithm_sha1", + "spdx:checksumAlgorithm_md5", + "spdx:checksumAlgorithm_sha256" + ], + "title": "DigestType", + "type": "string" + }, + "Gene": { + "additionalProperties": false, + "description": "A region (or regions) that includes all of the sequence elements necessary to encode a functional transcript. A gene locus may include regulatory regions, transcribed regions and/or other functional sequence regions.", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "biolink:Gene" + ], + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "full_name": { + "description": "a long-form human readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "has_biological_sequence": { + "description": "connects a genomic feature to its sequence", + "type": [ + "string", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "in_taxon": { + "description": "connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "in_taxon_label": { + "description": "The human readable scientific name for the taxon of the entity.", + "type": [ + "string", + "null" + ] + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "A human-readable name for an attribute or entity.", + "type": [ + "string", + "null" + ] + }, + "provided_by": { + "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "symbol": { + "description": "Symbol for a particular thing", + "type": [ + "string", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "xref": { + "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "required": [ + "id" + ], + "title": "Gene", + "type": "object" + }, + "Genome": { + "additionalProperties": false, + "description": "A genome is the sum of genetic material within a cell or virion.", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "biolink:Genome" + ], + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "full_name": { + "description": "a long-form human readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "has_biological_sequence": { + "description": "connects a genomic feature to its sequence", + "type": [ + "string", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "in_taxon": { + "description": "connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "in_taxon_label": { + "description": "The human readable scientific name for the taxon of the entity.", + "type": [ + "string", + "null" + ] + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "A human-readable name for an attribute or entity.", + "type": [ + "string", + "null" + ] + }, + "provided_by": { + "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "xref": { + "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "required": [ + "id" + ], + "title": "Genome", + "type": "object" + }, + "MaterialSample": { + "additionalProperties": false, + "description": "A sample is a limited quantity of something (e.g. an individual or set of individuals from a population, or a portion of a substance) to be used for testing, analysis, inspection, investigation, demonstration, or trial use. [SIO]", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "biolink:MaterialSample" + ], + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "full_name": { + "description": "a long-form human readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "A human-readable name for an attribute or entity.", + "type": [ + "string", + "null" + ] + }, + "provided_by": { + "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "xref": { + "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "required": [ + "id" + ], + "title": "MaterialSample", + "type": "object" + }, + "NamedThing": { + "additionalProperties": false, + "description": "a databased entity or concept/class", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "biolink:NamedThing" + ], + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "full_name": { + "description": "a long-form human readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "A human-readable name for an attribute or entity.", + "type": [ + "string", + "null" + ] + }, + "provided_by": { + "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "xref": { + "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "required": [ + "id" + ], + "title": "NamedThing", + "type": "object" + }, + "OrganismTaxon": { + "additionalProperties": false, + "description": "A classification of a set of organisms. Example instances: NCBITaxon:9606 (Homo sapiens), NCBITaxon:2 (Bacteria). Can also be used to represent strains or subspecies.", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "biolink:OrganismTaxon" + ], + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "full_name": { + "description": "a long-form human readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "has_taxonomic_rank": { + "type": [ + "string", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "A human-readable name for an attribute or entity.", + "type": [ + "string", + "null" + ] + }, + "provided_by": { + "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "xref": { + "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "required": [ + "id" + ], + "title": "OrganismTaxon", + "type": "object" + }, + "PhysicalEntity": { + "additionalProperties": false, + "description": "An entity that has material reality (a.k.a. physical essence).", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "biolink:PhysicalEntity" + ], + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "full_name": { + "description": "a long-form human readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "A human-readable name for an attribute or entity.", + "type": [ + "string", + "null" + ] + }, + "provided_by": { + "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "xref": { + "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "required": [ + "id" + ], + "title": "PhysicalEntity", + "type": "object" + }, + "Procedure": { + "additionalProperties": false, + "description": "A series of actions conducted in a certain order or manner", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "biolink:Procedure" + ], + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "full_name": { + "description": "a long-form human readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "A human-readable name for an attribute or entity.", + "type": [ + "string", + "null" + ] + }, + "provided_by": { + "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "xref": { + "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "required": [ + "id" + ], + "title": "Procedure", + "type": "object" + }, + "QuantityValue": { + "additionalProperties": false, + "description": "A value of an attribute that is quantitative and measurable, expressed as a combination of a unit and a numeric value", + "properties": { + "has_numeric_value": { + "description": "connects a quantity value to a number", + "type": [ + "number", + "null" + ] + }, + "has_unit": { + "description": "connects a quantity value to a unit", + "type": [ + "string", + "null" + ] + } + }, + "title": "QuantityValue", + "type": "object" + }, + "TaxonomicRank": { + "additionalProperties": false, + "description": "A descriptor for the rank within a taxonomic classification. Example instance: TAXRANK:0000017 (kingdom)", + "properties": { + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + } + }, + "required": [ + "id" + ], + "title": "TaxonomicRank", + "type": "object" + } + }, + "$id": "https://identifiers.org/brain-bican/bican-core-schema", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "additionalProperties": true, + "metamodel_version": "1.7.0", + "title": "bican-core-schema", + "type": "object", + "version": null +} diff --git a/json-schema-autogen/bican_prov.json b/json-schema-autogen/bican_prov.json new file mode 100644 index 00000000..58d1b272 --- /dev/null +++ b/json-schema-autogen/bican_prov.json @@ -0,0 +1,9 @@ +{ + "$id": "https://identifiers.org/brain-bican/genome-prov-schema", + "$schema": "https://json-schema.org/draft/2019-09/schema", + "additionalProperties": true, + "metamodel_version": "1.7.0", + "title": "bican-prov-schema", + "type": "object", + "version": null +} diff --git a/json-schema-autogen/ccn2.json b/json-schema-autogen/ccn2.json index 138dbab4..8bcc0d37 100644 --- a/json-schema-autogen/ccn2.json +++ b/json-schema-autogen/ccn2.json @@ -49,13 +49,19 @@ }, "provenance": { "description": "ORCID of the person doing the mapping using the syntax ORCID:0123-4567-890. Optionally include supporting publications using DOIs of the form doi:10.1126/journal.abj6641.", - "type": "string" + "type": [ + "string", + "null" + ] }, "similarity_score": { "description": "A score recording the similarity between mapped nodes.", "maximum": 1, "minimum": 0, - "type": "number" + "type": [ + "number", + "null" + ] } }, "required": [ @@ -82,7 +88,10 @@ }, "evidence_comment": { "description": "A comment describing the evidence for this location mapping", - "type": "string" + "type": [ + "string", + "null" + ] }, "location_ontology_term_id": { "description": "The ID of an ontology term that refers to a brain region that this cell type is located in. Ideally this should be the ID of a term defined as a region in a standard atlas.", @@ -98,7 +107,10 @@ }, "supporting_data": { "description": "A link to data supporting this location mapping.", - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ @@ -131,11 +143,17 @@ }, "cell_type_name": { "description": "The primary name/symbol to be used for the (provisional) cell type defined by this cell set. This is left optional, but is strongly encouraged for every node that is linked.", - "type": "string" + "type": [ + "string", + "null" + ] }, "classification_comment": { "description": "A free text comment describing the evidence for this classification.", - "type": "string" + "type": [ + "string", + "null" + ] }, "classification_provenance": { "description": "Either the DOI(s) of a supporting publication (in the form the form doi:10.1126/journal.abj6641) or the editor's ORCID (in the form: ORCID:01243-234-678). Multiple entries should be separated by a '|'.", @@ -143,7 +161,10 @@ }, "classifying_ontology_term_id": { "description": "The ID of an ontology term that classifies the cell type defined by this node.", - "type": "string" + "type": [ + "string", + "null" + ] }, "classifying_ontology_term_name": { "description": "The name of the ontology term in the classification_id column", @@ -151,7 +172,10 @@ }, "description": { "description": "Optional free text description of the cluster. This could be particularly useful for describing the properties of cells clustered from techniques that provide data on morphology, function and connectivity, e.g. patch-seq & epi-retro-seq.", - "type": "string" + "type": [ + "string", + "null" + ] }, "parent_cell_set_accession": { "description": "The cell set accession of the parent cell set in the taxonomy. This field should be programmatically assigned, not edited.", @@ -163,11 +187,17 @@ }, "synonym_provenance": { "description": "Each entry in the synonyms field should have a corresponding entry here, either the DOI of a supporting publication (in the form the form doi:10.1126/journal.abj6641) or the editor's ORCID (in the form: ORCID:01243-234-678). Multiple entries should be separated by a '|'.", - "type": "string" + "type": [ + "string", + "null" + ] }, "synonyms": { "description": "A list of alternative names for this cell type. Separate entries with a '|'. Do not use terms with a scope that is much narrower or broader than the cell type being described.", - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ diff --git a/json-schema-autogen/figure1.json b/json-schema-autogen/figure1.json index c9f12a64..190fedba 100644 --- a/json-schema-autogen/figure1.json +++ b/json-schema-autogen/figure1.json @@ -25,13 +25,19 @@ "items": { "$ref": "#/$defs/GroupRelationship" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "type": "string" }, "label": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ @@ -62,13 +68,19 @@ "items": { "$ref": "#/$defs/HierarchicalRelationship" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "type": "string" }, "label": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ @@ -89,13 +101,19 @@ "items": { "$ref": "#/$defs/HierarchicalRelationship" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "type": "string" }, "label": { - "type": "string" + "type": [ + "string", + "null" + ] }, "nt_type": { "$ref": "#/$defs/NTType" @@ -115,19 +133,28 @@ "items": { "$ref": "#/$defs/GroupRelationship" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "has_hierarchical_relationships": { "items": { "$ref": "#/$defs/HierarchicalRelationship" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "type": "string" }, "label": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ @@ -144,25 +171,37 @@ "items": { "$ref": "#/$defs/Cell" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "classes": { "items": { "$ref": "#/$defs/CellClass" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "clusters": { "items": { "$ref": "#/$defs/Cluster" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "subclasses": { "items": { "$ref": "#/$defs/CellSubclass" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "title": "Container", @@ -256,10 +295,16 @@ "description": "", "properties": { "id": { - "type": "string" + "type": [ + "string", + "null" + ] }, "label": { - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ @@ -279,25 +324,37 @@ "items": { "$ref": "#/$defs/Cell" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "classes": { "items": { "$ref": "#/$defs/CellClass" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "clusters": { "items": { "$ref": "#/$defs/Cluster" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "subclasses": { "items": { "$ref": "#/$defs/CellSubclass" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "title": "figure1", diff --git a/json-schema-autogen/genome_annotation.json b/json-schema-autogen/genome_annotation.json index 1a3e79cb..c205cf53 100644 --- a/json-schema-autogen/genome_annotation.json +++ b/json-schema-autogen/genome_annotation.json @@ -12,26 +12,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -39,38 +54,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -87,19 +120,28 @@ "items": { "$ref": "#/$defs/GeneAnnotation" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "genome_annotations": { "items": { "$ref": "#/$defs/GenomeAnnotation" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "genome_assemblies": { "items": { "$ref": "#/$defs/GenomeAssembly" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "title": "AnnotationCollection", @@ -117,26 +159,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "has_attribute_type": { "description": "connects an attribute to a class that describes it", @@ -144,14 +201,20 @@ }, "has_qualitative_value": { "description": "connects an attribute to a value", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_quantitative_value": { "description": "connects an attribute to a value", "items": { "$ref": "#/$defs/QuantityValue" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -159,38 +222,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -230,7 +311,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "checksum_algorithm": { "$ref": "#/$defs/DigestType", @@ -238,18 +322,27 @@ }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -257,21 +350,33 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "value": { "description": "The checksum value obtained from a specific cryotographic hash function.", - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ @@ -292,34 +397,55 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "creation_date": { "description": "date on which an entity was created. This can be applied to nodes or edges", "format": "date", - "type": "string" + "type": [ + "string", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "format": { - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -327,44 +453,68 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "license": { - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "rights": { - "type": "string" + "type": [ + "string", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -395,30 +545,48 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "has_biological_sequence": { "description": "connects a genomic feature to its sequence", - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -429,50 +597,77 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "in_taxon_label": { "description": "The human readable scientific name for the taxon of the entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "symbol": { "description": "Symbol for a particular thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -493,30 +688,48 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "has_biological_sequence": { "description": "connects a genomic feature to its sequence", - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -527,15 +740,24 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "in_taxon_label": { "description": "The human readable scientific name for the taxon of the entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "molecular_type": { "anyOf": [ @@ -544,20 +766,29 @@ }, { "type": "string" + }, + { + "type": "null" } ], "type": "string" }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "referenced_in": { "anyOf": [ @@ -573,31 +804,46 @@ }, "source_id": { "description": "The authority specific identifier.", - "type": "string" + "type": [ + "string", + "null" + ] }, "symbol": { "description": "Symbol for a particular thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -619,30 +865,48 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "has_biological_sequence": { "description": "connects a genomic feature to its sequence", - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -653,46 +917,70 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "in_taxon_label": { "description": "The human readable scientific name for the taxon of the entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -717,21 +1005,33 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "content_url": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "digest": { "description": "Stores checksum information.", @@ -746,22 +1046,34 @@ ], "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "has_biological_sequence": { "description": "connects a genomic feature to its sequence", - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -772,26 +1084,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "in_taxon_label": { "description": "The human readable scientific name for the taxon of the entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "reference_assembly": { "anyOf": [ @@ -810,23 +1137,35 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -848,26 +1187,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -878,53 +1232,83 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "in_taxon_label": { "description": "The human readable scientific name for the taxon of the entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "strain": { "description": "The genetic variant or subtype of a species or organism.", - "type": "string" + "type": [ + "string", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "version": { - "type": "string" + "type": [ + "string", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -945,26 +1329,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -972,38 +1371,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1024,26 +1441,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1051,38 +1483,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1103,29 +1553,47 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "has_taxonomic_rank": { - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1133,38 +1601,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1185,26 +1671,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1212,38 +1713,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1264,26 +1783,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1291,38 +1825,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1337,11 +1889,17 @@ "properties": { "has_numeric_value": { "description": "connects a quantity value to a number", - "type": "number" + "type": [ + "number", + "null" + ] }, "has_unit": { "description": "connects a quantity value to a unit", - "type": "string" + "type": [ + "string", + "null" + ] } }, "title": "QuantityValue", @@ -1373,19 +1931,28 @@ "items": { "$ref": "#/$defs/GeneAnnotation" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "genome_annotations": { "items": { "$ref": "#/$defs/GenomeAnnotation" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "genome_assemblies": { "items": { "$ref": "#/$defs/GenomeAssembly" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "title": "genome-annotation-schema", diff --git a/json-schema-autogen/library_generation.json b/json-schema-autogen/library_generation.json index 1acbc44d..8bede52f 100644 --- a/json-schema-autogen/library_generation.json +++ b/json-schema-autogen/library_generation.json @@ -12,26 +12,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -39,38 +54,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -108,11 +141,17 @@ }, "amplified_cDNA_amplified_quantity_ng": { "description": "Amount of cDNA produced after cDNA amplification measured in nanograms.", - "type": "number" + "type": [ + "number", + "null" + ] }, "amplified_cDNA_percent_cDNA_longer_than_400bp": { "description": "QC metric to measure mRNA degradation of cDNA. Higher % is higher quality starting material. Over 400bp is used as a universal cutoff for intact (full length) vs degraded cDNA and is a common output from Bioanalyzer and Fragment Analyzer elecropheragrams.", - "type": "number" + "type": [ + "number", + "null" + ] }, "category": { "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", @@ -123,26 +162,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -150,46 +204,70 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "Name of a collection of cDNA molecules derived and amplified from an input barcoded_cell_sample. These cDNA molecules represent the gene expression of each cell, with all cDNA molecules from a given cell retaining that cell's unique barcode from the cell barcoding step. This is a necessary step for GEX methods but is not used for ATAC methods.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_derived_from": { "description": "The input barcoded cell sample from which amplified cDNA was derived from.", - "type": "string" + "type": [ + "string", + "null" + ] }, "was_generated_by": { "description": "The cDNA amplification process from which the amplified cDNA was generated by.", - "type": "string" + "type": [ + "string", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -221,26 +299,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "has_attribute_type": { "description": "connects an attribute to a class that describes it", @@ -248,14 +341,20 @@ }, "has_qualitative_value": { "description": "connects an attribute to a value", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_quantitative_value": { "description": "connects an attribute to a value", "items": { "$ref": "#/$defs/QuantityValue" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -263,38 +362,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -317,30 +434,48 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "expected_cell_capture": { "description": "Expected number of cells/nuclei of a barcoded_cell_sample that will be barcoded and available for sequencing. This is a derived number from 'Barcoded cell input quantity count' that is dependent on the \"capture rate\" of the barcoding method. It is usually a calculated fraction of the 'Barcoded cell input quantity count' going into the barcoding method.", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -348,31 +483,46 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "Name of a collection of barcoded cells. Input will be either dissociated_cell_sample or enriched_cell_sample. Cell barcodes are only guaranteed to be unique within this one collection. One dissociated_cell_sample or enriched_cell_sample can lead to multiple barcoded_cell_samples.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_derived_from": { "description": "The input dissociated or enriched cell sample(s) from which the barcoded cell sample was derived from.", @@ -387,18 +537,27 @@ } ] }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_generated_by": { "description": "The barcoding process from which the barcoded cell sample is generated from.", - "type": "string" + "type": [ + "string", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -431,26 +590,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -458,46 +632,70 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "Name of a thick flat piece of brain tissue obtained by slicing a whole brain, brain hemisphere or subdivision with a blade at regular interval. When multiple brain slabs are obtained from the slicing process, an ordinal is assigned to provide information about the relative positioning of the slabs.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_derived_from": { - "description": "The donor from which the brain slab was derived from.", - "oneOf": [ + "anyOf": [ { "type": "string" }, { "type": "string" + }, + { + "type": "null" } ], - "type": "string" + "description": "The donor from which the brain slab was derived from." }, "was_generated_by": { - "$ref": "#/$defs/ProvActivity", + "anyOf": [ + { + "$ref": "#/$defs/ProvActivity" + }, + { + "type": "null" + } + ], "description": "Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation." }, "xref": { @@ -505,7 +703,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -520,16 +721,25 @@ "properties": { "amplified_cDNA_PCR_cycles": { "description": "Number of PCR cycles used during cDNA amplification for this cDNA.", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "cDNA_amplification_process_date": { "description": "Date of cDNA amplification.", "format": "date", - "type": "string" + "type": [ + "string", + "null" + ] }, "cDNA_amplification_set": { "description": "cDNA amplification set, containing multiple amplified_cDNA_names that were processed at the same time.", - "type": "string" + "type": [ + "string", + "null" + ] }, "category": { "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", @@ -540,26 +750,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -567,42 +792,63 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "used": { "description": "The input barcoded cell sample from which amplified cDNA was derived from.", - "type": "string" + "type": [ + "string", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -617,11 +863,17 @@ "properties": { "barcoded_cell_input_quantity_count": { "description": "Number of enriched or dissociated cells/nuclei going into the barcoding process.", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "barcoded_cell_sample_port_well": { "description": "Specific position of the loaded port of the 10x chip. An Enriched or Dissociated Cell Sample is loaded into a port on a chip (creating a Barcoded Cell Sample). Can be left null for non-10x methods.", - "type": "string" + "type": [ + "string", + "null" + ] }, "category": { "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", @@ -632,26 +884,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -659,7 +926,10 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "method": { "$ref": "#/$defs/BarcodedCellSampleTechnique", @@ -667,31 +937,46 @@ }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "process_date": { "description": "Date of cell barcoding process.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "used": { "description": "The input dissociated or enriched cell sample(s) from which the barcoded cell sample was derived from.", @@ -706,14 +991,20 @@ } ] }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -735,26 +1026,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -762,49 +1068,73 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "process_date": { "description": "Date of cell dissociation process.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "used": { "description": "The input tissue sample(s) from which the dissociated cell sample was derived from.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -826,26 +1156,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -853,49 +1198,73 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "process_date": { "description": "Date of cell enrichment process.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "used": { "description": "The input dissociated cell sample(s) from which the enriched cell sample was derived from.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -904,46 +1273,50 @@ "title": "CellEnrichment", "type": "object" }, - "Dataset": { + "Checksum": { "additionalProperties": false, - "description": "an item that refers to a collection of data from a data source.", + "description": "Checksum values associated with digital entities.", "properties": { "category": { "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", "enum": [ - "biolink:Dataset" + "bican:Checksum" ], "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, - "creation_date": { - "description": "date on which an entity was created. This can be applied to nodes or edges", - "format": "date", - "type": "string" + "checksum_algorithm": { + "$ref": "#/$defs/DigestType", + "description": "The type of cryptographic hash function used to calculate the checksum value." }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" - }, - "format": { - "type": "string" - }, - "full_name": { - "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -951,85 +1324,102 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" - }, - "license": { - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" - }, - "provided_by": { - "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", - "items": { - "type": "string" - }, - "type": "array" - }, - "rights": { - "type": "string" - }, - "synonym": { - "description": "Alternate human-readable names for a thing", - "items": { - "type": "string" - }, - "type": "array" + "type": [ + "string", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, - "xref": { - "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", - "items": { - "type": "string" - }, - "type": "array" + "value": { + "description": "The checksum value obtained from a specific cryotographic hash function.", + "type": [ + "string", + "null" + ] } }, "required": [ "id" ], - "title": "Dataset", + "title": "Checksum", "type": "object" }, - "DissectionRoiDelineation": { + "Dataset": { "additionalProperties": false, - "description": "The process of outlining a region of interest on a brain slab image to guide the dissection and generation of a tissue sample.", + "description": "an item that refers to a collection of data from a data source.", "properties": { "category": { "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", "enum": [ - "bican:DissectionRoiDelineation" + "biolink:Dataset" ], "items": { - "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] + }, + "creation_date": { + "description": "date on which an entity was created. This can be applied to nodes or edges", + "format": "date", + "type": [ + "string", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] + }, + "format": { + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1037,42 +1427,386 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] + }, + "license": { + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, - "synonym": { - "description": "Alternate human-readable names for a thing", + "rights": { + "type": [ + "string", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] + }, + "xref": { + "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "required": [ + "id" + ], + "title": "Dataset", + "type": "object" + }, + "DigestType": { + "description": "", + "enum": [ + "spdx:checksumAlgorithm_sha1", + "spdx:checksumAlgorithm_md5", + "spdx:checksumAlgorithm_sha256" + ], + "title": "DigestType", + "type": "string" + }, + "DigitalAsset": { + "additionalProperties": false, + "description": "", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "bican:DigitalAsset" + ], + "items": { + "pattern": "^bican:[A-Z][A-Za-z]+$", + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "content_url": { + "type": [ + "string", + "null" + ] + }, + "creation_date": { + "description": "date on which an entity was created. This can be applied to nodes or edges", + "format": "date", + "type": [ + "string", + "null" + ] + }, + "data_type": { + "description": "The type of data in the file", + "type": [ + "string", + "null" + ] + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "digest": { + "description": "Stores checksum information.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string" + } + ], + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "format": { + "type": [ + "string", + "null" + ] + }, + "full_name": { + "description": "a long-form human readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "license": { + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "A human-readable name for an attribute or entity.", + "type": [ + "string", + "null" + ] + }, + "provided_by": { + "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "rights": { + "type": [ + "string", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "was_derived_from": { + "description": "A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.", + "type": [ + "string", + "null" + ] + }, + "was_generated_by": { + "anyOf": [ + { + "$ref": "#/$defs/ProvActivity" + }, + { + "type": "null" + } + ], + "description": "Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation." + }, + "xref": { + "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + } + }, + "required": [ + "id" + ], + "title": "DigitalAsset", + "type": "object" + }, + "DissectionRoiDelineation": { + "additionalProperties": false, + "description": "The process of outlining a region of interest on a brain slab image to guide the dissection and generation of a tissue sample.", + "properties": { + "category": { + "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", + "enum": [ + "bican:DissectionRoiDelineation" + ], + "items": { + "pattern": "^bican:[A-Z][A-Za-z]+$", + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "deprecated": { + "description": "A boolean flag indicating that an entity is no longer considered current or valid.", + "type": [ + "boolean", + "null" + ] + }, + "description": { + "description": "a human-readable description of an entity", + "type": [ + "string", + "null" + ] + }, + "full_name": { + "description": "a long-form human readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "has_attribute": { + "description": "connects any entity to an attribute", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "id": { + "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", + "type": "string" + }, + "iri": { + "description": "An IRI for an entity. This is determined by the id using expansion rules.", + "type": [ + "string", + "null" + ] + }, + "name": { + "description": "A human-readable name for an attribute or entity.", + "type": [ + "string", + "null" + ] + }, + "provided_by": { + "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "synonym": { + "description": "Alternate human-readable names for a thing", + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] + }, + "type": { + "items": { + "type": "string" + }, + "type": [ + "array", + "null" + ] }, "used": { "description": "The brain slab that was annotated by the delineation process.", - "type": "string" + "type": [ + "string", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1087,7 +1821,10 @@ "properties": { "annotates": { "description": "The brain slab that was annotated by the delineation process.", - "type": "string" + "type": [ + "string", + "null" + ] }, "category": { "description": "Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}", @@ -1098,22 +1835,34 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1121,25 +1870,44 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "Name of a polygon annotated on a brain slab image delineating a region of interest (ROI) for a tissue sample dissectioning.", - "type": "string" + "type": [ + "string", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_derived_from": { - "$ref": "#/$defs/ProvEntity", + "anyOf": [ + { + "$ref": "#/$defs/ProvEntity" + }, + { + "type": "null" + } + ], "description": "A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity." }, "was_generated_by": { "description": "The delineation process from which the dissection ROI polygon was generated by.", - "type": "string" + "type": [ + "string", + "null" + ] } }, "required": [ @@ -1161,15 +1929,24 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "dissociated_cell_oligo_tag_name": { "$ref": "#/$defs/DissociatedCellSampleCellLabelBarcode", @@ -1181,14 +1958,20 @@ }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1196,49 +1979,73 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "Name of a collection of dissociated cells or nuclei derived from dissociation of a tissue sample.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_derived_from": { "description": "The input tissue sample(s) from which dissociated cell sample was derived from.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_generated_by": { "description": "The cell dissociation process from which the dissociated cell sample was generated by.", - "type": "string" + "type": [ + "string", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1291,7 +2098,10 @@ "properties": { "age_at_death_description": { "description": "Text description of the age of death following typical scientific convention for the species or developmental stage. For example: P56, E11.5", - "type": "string" + "type": [ + "string", + "null" + ] }, "age_at_death_reference_point": { "$ref": "#/$defs/AgeAtDeathReferencePoint", @@ -1303,7 +2113,10 @@ }, "age_at_death_value": { "description": "The value representing the donor age from the reference point.", - "type": "number" + "type": [ + "number", + "null" + ] }, "biological_sex": { "$ref": "#/$defs/Sex", @@ -1318,30 +2131,48 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "donor_species": { "description": "Species of donor.", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1352,46 +2183,81 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "in_taxon_label": { "description": "The human readable scientific name for the taxon of the entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "Name of person or organism that is the source of a biological sample for scientific study. Many biological samples are generated from a single donor.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_derived_from": { - "$ref": "#/$defs/ProvEntity", + "anyOf": [ + { + "$ref": "#/$defs/ProvEntity" + }, + { + "type": "null" + } + ], "description": "A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity." }, "was_generated_by": { - "$ref": "#/$defs/ProvActivity", + "anyOf": [ + { + "$ref": "#/$defs/ProvActivity" + }, + { + "type": "null" + } + ], "description": "Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation." }, "xref": { @@ -1399,7 +2265,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1421,38 +2290,62 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "cell_source_oligo_name": { "description": "Name of cell source oligo used in cell plexing. The oligo molecularly tags all the cells in the enriched cell sample and allows separate enriched cell samples to be combined downstream in the barcoded cell sample. The oligo name is associated with a sequence in a lookup table. This sequence will be needed during alignment to associate reads with the parent source enriched cell sample.", - "type": "string" + "type": [ + "string", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "enrichment_population": { "description": "Actual percentage of cells as a result of using set of fluorescent marker label(s) to enrich dissociated_cell_sample with desired mix of cell populations. This plan can also be used to describe 'No FACS' where no enrichment was performed. This is a property of enriched_cell_prep_container.", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "histone_modification_marker": { "description": "Histone modification marker antibodies (eg H3K27ac, H3K27me3, H3K9me3) used in conjunction with an Enriched Cell Source Barcode in order to combine multiple Enriched Cell Populations before Barcoded Cell Sample step for 10xMultiome method. Each of the Histone antibodies captures an essential part of the epigenome.", - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1460,31 +2353,46 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "Name of collection of enriched cells or nuclei after enrichment process (usually via FACS using the Enrichment Plan) applied to dissociated_cell_sample.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_derived_from": { "description": "The dissociated or enriched cell sample(s) from which the enriched cell sample was derived from.", @@ -1499,26 +2407,34 @@ } ] }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_generated_by": { - "$ref": "#/$defs/ProvActivity", - "description": "The cell enrichment or sample splitting process from which the enriched cell sample was generated by.", - "oneOf": [ + "anyOf": [ { "type": "string" }, { "type": "string" + }, + { + "type": "null" } - ] + ], + "description": "The cell enrichment or sample splitting process from which the enriched cell sample was generated by." }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1540,26 +2456,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1567,42 +2498,63 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "used": { "description": "The enrichment cell sample splitting process from which the enriched cell sample was generated by.", - "type": "string" + "type": [ + "string", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1623,30 +2575,48 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "has_biological_sequence": { "description": "connects a genomic feature to its sequence", - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1657,50 +2627,77 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "in_taxon_label": { "description": "The human readable scientific name for the taxon of the entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "symbol": { "description": "Symbol for a particular thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1721,30 +2718,48 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "has_biological_sequence": { "description": "connects a genomic feature to its sequence", - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1755,46 +2770,70 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "in_taxon_label": { "description": "The human readable scientific name for the taxon of the entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1820,26 +2859,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1847,15 +2901,24 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "library_avg_size_bp": { "description": "Average size of the library in terms of base pairs. This is used to calculate the molarity before pooling and sequencing.", - "type": "integer" + "type": [ + "integer", + "null" + ] }, "library_concentration_nm": { "description": "Concentration of library in terms of nM (nMol/L). Number of molecules is needed for accurate pooling of the libraries and for generating the number of target reads/cell in sequencing.", - "type": "number" + "type": [ + "number", + "null" + ] }, "library_prep_pass_fail": { "$ref": "#/$defs/LibraryPrepPassFail", @@ -1863,58 +2926,84 @@ }, "library_quantification_fmol": { "description": "Amount of library generated in terms of femtomoles", - "type": "number" + "type": [ + "number", + "null" + ] }, "library_quantification_ng": { "description": "Amount of library generated in terms of nanograms", - "type": "number" + "type": [ + "number", + "null" + ] }, "name": { "description": "Name of a library, which is a collection of fragmented and barcode-indexed DNA molecules for sequencing. An index or barcode is typically introduced to enable identification of library origin to allow libraries to be pooled together for sequencing.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_derived_from": { - "$ref": "#/$defs/ProvEntity", - "description": "The input barcoded cell sample or amplified cDNA from which the library was derived from.", - "oneOf": [ + "anyOf": [ { "type": "string" }, { "type": "string" + }, + { + "type": "null" } - ] + ], + "description": "The input barcoded cell sample or amplified cDNA from which the library was derived from." }, "was_generated_by": { "description": "The library construction process from which the library was generated by.", - "type": "string" + "type": [ + "string", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -1936,26 +3025,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -1963,38 +3067,63 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "One library in the library pool. Each Library_aliquot_name in a library pool will have a unique R1/R2 index to allow for sequencing together then separating the sequencing output by originating library aliquot through the process of demultiplexing. The resulting demultiplexed fastq files will include the library_aliquot_name.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_derived_from": { "description": "The input library from which the library aliquot was derived from.", - "type": "string" + "type": [ + "string", + "null" + ] }, "was_generated_by": { - "$ref": "#/$defs/ProvActivity", + "anyOf": [ + { + "$ref": "#/$defs/ProvActivity" + }, + { + "type": "null" + } + ], "description": "Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation." }, "xref": { @@ -2002,7 +3131,10 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -2024,26 +3156,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -2051,16 +3198,25 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "library_creation_date": { "description": "Date of library construction.", "format": "date", - "type": "string" + "type": [ + "string", + "null" + ] }, "library_input_ng": { "description": "Amount of cDNA going into library construction in nanograms.", - "type": "number" + "type": [ + "number", + "null" + ] }, "library_method": { "$ref": "#/$defs/LibraryTechnique", @@ -2068,50 +3224,70 @@ }, "library_prep_set": { "description": "Library set, containing multiple library_names that were processed at the same time.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "used": { - "$ref": "#/$defs/ProvEntity", - "description": "The input barcoded cell sample or amplified cDNA from which the library was derived from.", - "oneOf": [ + "anyOf": [ { "type": "string" }, { "type": "string" + }, + { + "type": "null" } - ] + ], + "description": "The input barcoded cell sample or amplified cDNA from which the library was derived from." }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -2133,26 +3309,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -2160,53 +3351,80 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "library_pool_tube_internal_label": { "description": "Library Pool Tube local name. Label of the tube containing the library pool, which is made up of multiple library_aliquots. This is a Library Lab local tube name, before the pool is aliquoted to the Seq Core provided tube 'Library Pool Tube Name'.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "Library lab's library pool name. For some labs this may be the same as \"Libray pool tube local name\". Other labs distinguish between the local tube label of the library pool and the library pool name provided to SeqCore for tracking. Local Pool Name is used to communicate sequencing status between SeqCore and Library Labs.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_derived_from": { "description": "The input aliquot(s) from which the library pool was derived from.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_generated_by": { "description": "The pooling process from which the library pool was generated by.", - "type": "string" + "type": [ + "string", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -2228,26 +3446,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -2255,49 +3488,73 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "process_date": { "description": "Date of library pooling process.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "used": { "description": "The input aliquot(s) from which the library pool was derived from.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -2869,26 +4126,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -2896,38 +4168,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -2948,26 +4238,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -2975,38 +4280,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -3027,29 +4350,47 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "has_taxonomic_rank": { - "type": "string" + "type": [ + "string", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -3057,38 +4398,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -3109,26 +4468,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -3136,38 +4510,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -3188,26 +4580,41 @@ "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -3215,38 +4622,56 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -3261,11 +4686,17 @@ "properties": { "has_numeric_value": { "description": "connects a quantity value to a number", - "type": "number" + "type": [ + "number", + "null" + ] }, "has_unit": { "description": "connects a quantity value to a unit", - "type": "string" + "type": [ + "string", + "null" + ] } }, "title": "QuantityValue", @@ -3311,26 +4742,41 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -3338,46 +4784,70 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "A human-readable name for an attribute or entity.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "used": { "description": "The brain slab from which the tissue sample was dissected from.", - "type": "string" + "type": [ + "string", + "null" + ] }, "was_guided_by": { "description": "The dissection ROI polygon which was used to guide the tissue dissection.", - "type": "string" + "type": [ + "string", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ @@ -3399,30 +4869,48 @@ "pattern": "^bican:[A-Z][A-Za-z]+$", "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "deprecated": { "description": "A boolean flag indicating that an entity is no longer considered current or valid.", - "type": "boolean" + "type": [ + "boolean", + "null" + ] }, "description": { "description": "a human-readable description of an entity", - "type": "string" + "type": [ + "string", + "null" + ] }, "dissection_was_guided_by": { "description": "The dissection ROI polygon that was used to guide the dissection.", - "type": "string" + "type": [ + "string", + "null" + ] }, "full_name": { "description": "a long-form human readable name for a thing", - "type": "string" + "type": [ + "string", + "null" + ] }, "has_attribute": { "description": "connects any entity to an attribute", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "id": { "description": "A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI", @@ -3430,53 +4918,80 @@ }, "iri": { "description": "An IRI for an entity. This is determined by the id using expansion rules.", - "type": "string" + "type": [ + "string", + "null" + ] }, "name": { "description": "Identifier name for final intact piece of tissue before cell or nuclei prep. This piece of tissue will be used in dissociation and has an ROI associated with it.", - "type": "string" + "type": [ + "string", + "null" + ] }, "provided_by": { "description": "The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "synonym": { "description": "Alternate human-readable names for a thing", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "tissue_sample_structure": { "description": "Strucure of tissue sample.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "type": { "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] }, "was_derived_from": { "description": "The donor or brain slab from which the tissue sample was derived from.", - "type": "string" + "type": [ + "string", + "null" + ] }, "was_generated_by": { "description": "The dissection process from which the tissue sample was generated by.", - "type": "string" + "type": [ + "string", + "null" + ] }, "xref": { "description": "A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.", "items": { "type": "string" }, - "type": "array" + "type": [ + "array", + "null" + ] } }, "required": [ diff --git a/jsonld-context-autogen/anatomical_structure.context.jsonld b/jsonld-context-autogen/anatomical_structure.context.jsonld index 0e7dc546..23da6b9f 100644 --- a/jsonld-context-autogen/anatomical_structure.context.jsonld +++ b/jsonld-context-autogen/anatomical_structure.context.jsonld @@ -4,6 +4,7 @@ "source": "anatomical_structure.yaml" }, "@context": { + "xsd": "http://www.w3.org/2001/XMLSchema#", "AnS": "https://w3id.org/my-org/anatomical-structure-schema/", "PATO": { "@id": "http://purl.obolibrary.org/obo/PATO_", @@ -23,7 +24,7 @@ "@id": "measures" }, "category": { - "@type": "@id", + "@type": "xsd:anyURI", "@id": "category" }, "description": { @@ -32,7 +33,6 @@ "id": "@id", "unit": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -41,7 +41,6 @@ }, "x_direction": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -58,7 +57,6 @@ }, "y_direction": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -75,7 +73,6 @@ }, "z_direction": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" diff --git a/jsonld-context-autogen/anatomical_structure_core.context.jsonld b/jsonld-context-autogen/anatomical_structure_core.context.jsonld index da9a98bb..3b9cd1d7 100644 --- a/jsonld-context-autogen/anatomical_structure_core.context.jsonld +++ b/jsonld-context-autogen/anatomical_structure_core.context.jsonld @@ -4,6 +4,7 @@ "source": "anatomical_structure_core.yaml" }, "@context": { + "xsd": "http://www.w3.org/2001/XMLSchema#", "AnS": "https://w3id.org/my-org/anatomical-structure-schema/", "PATO": { "@id": "http://purl.obolibrary.org/obo/PATO_", @@ -14,7 +15,7 @@ "schema": "http://schema.org/", "@vocab": "https://w3id.org/my-org/anatomical-structure-schema/", "category": { - "@type": "@id", + "@type": "xsd:anyURI", "@id": "category" }, "description": { diff --git a/jsonld-context-autogen/bican_core.context.jsonld b/jsonld-context-autogen/bican_core.context.jsonld new file mode 100644 index 00000000..3a68d005 --- /dev/null +++ b/jsonld-context-autogen/bican_core.context.jsonld @@ -0,0 +1,397 @@ +{ + "comments": { + "description": "Auto generated by LinkML jsonld context generator", + "source": "bican_core.yaml" + }, + "@context": { + "xsd": "http://www.w3.org/2001/XMLSchema#", + "AGRKB": "https://www.alliancegenome.org/", + "AspGD": { + "@id": "http://www.aspergillusgenome.org/cgi-bin/locus.pl?dbid=", + "@prefix": true + }, + "BFO": { + "@id": "http://purl.obolibrary.org/obo/BFO_", + "@prefix": true + }, + "BIOGRID": "http://identifiers.org/biogrid/", + "BIOSAMPLE": "http://identifiers.org/biosample/", + "BTO": { + "@id": "http://purl.obolibrary.org/obo/BTO_", + "@prefix": true + }, + "CHEBI": { + "@id": "http://purl.obolibrary.org/obo/CHEBI_", + "@prefix": true + }, + "CHEMBL.TARGET": "http://identifiers.org/chembl.target/", + "CPT": "https://www.ama-assn.org/practice-management/cpt/", + "DRUGBANK": "http://identifiers.org/drugbank/", + "EDAM-DATA": { + "@id": "http://edamontology.org/data_", + "@prefix": true + }, + "EDAM-FORMAT": { + "@id": "http://edamontology.org/format_", + "@prefix": true + }, + "EDAM-OPERATION": { + "@id": "http://edamontology.org/operation_", + "@prefix": true + }, + "EDAM-TOPIC": { + "@id": "http://edamontology.org/topic_", + "@prefix": true + }, + "EFO": { + "@id": "http://www.ebi.ac.uk/efo/EFO_", + "@prefix": true + }, + "ENSEMBL": "http://identifiers.org/ensembl/", + "FB": "http://identifiers.org/fb/", + "FMA": { + "@id": "http://purl.obolibrary.org/obo/FMA_", + "@prefix": true + }, + "GENO": { + "@id": "http://purl.obolibrary.org/obo/GENO_", + "@prefix": true + }, + "GOLD.META": "http://identifiers.org/gold.meta/", + "GOREL": { + "@id": "http://purl.obolibrary.org/obo/GOREL_", + "@prefix": true + }, + "HANCESTRO": { + "@id": "http://www.ebi.ac.uk/ancestro/ancestro_", + "@prefix": true + }, + "HCPCS": "http://purl.bioontology.org/ontology/HCPCS/", + "HGNC": "http://identifiers.org/hgnc/", + "HMDB": "http://identifiers.org/hmdb/", + "IAO": { + "@id": "http://purl.obolibrary.org/obo/IAO_", + "@prefix": true + }, + "INO": { + "@id": "http://purl.obolibrary.org/obo/INO_", + "@prefix": true + }, + "IUPHAR.FAMILY": "http://identifiers.org/iuphar.family/", + "KEGG.BRITE": "https://bioregistry.io/kegg.brite:", + "KEGG.GENES": "https://bioregistry.io/kegg.genes:bsu:", + "LOINC": "http://loinc.org/rdf/", + "MESH": "http://id.nlm.nih.gov/mesh/", + "MGI": "http://identifiers.org/mgi/", + "MONDO": { + "@id": "http://purl.obolibrary.org/obo/MONDO_", + "@prefix": true + }, + "NBO-PROPERTY": "http://purl.obolibrary.org/obo/nbo#", + "NCBIGene": "http://identifiers.org/ncbigene/", + "NCBITaxon": { + "@id": "http://purl.obolibrary.org/obo/NCBITaxon_", + "@prefix": true + }, + "NCIT": { + "@id": "http://purl.obolibrary.org/obo/NCIT_", + "@prefix": true + }, + "OBAN": "http://purl.org/oban/", + "OBI": { + "@id": "http://purl.obolibrary.org/obo/OBI_", + "@prefix": true + }, + "OMIM": { + "@id": "http://purl.obolibrary.org/obo/OMIM_", + "@prefix": true + }, + "PATO": { + "@id": "http://purl.obolibrary.org/obo/PATO_", + "@prefix": true + }, + "PHARMGKB.GENE": "https://www.pharmgkb.org/gene/", + "PomBase": "https://www.pombase.org/gene/", + "RGD": "http://identifiers.org/rgd/", + "RO": { + "@id": "http://purl.obolibrary.org/obo/RO_", + "@prefix": true + }, + "RXNORM": "http://purl.bioontology.org/ontology/RXNORM/", + "SEMMEDDB": { + "@id": "https://skr3.nlm.nih.gov/SemMedDB", + "@prefix": true + }, + "SGD": "http://identifiers.org/sgd/", + "SIO": { + "@id": "http://semanticscience.org/resource/SIO_", + "@prefix": true + }, + "SNOMED": { + "@id": "http://purl.obolibrary.org/obo/SNOMED_", + "@prefix": true + }, + "SO": { + "@id": "http://purl.obolibrary.org/obo/SO_", + "@prefix": true + }, + "STY": "http://purl.bioontology.org/ontology/STY/", + "TAXRANK": { + "@id": "http://purl.obolibrary.org/obo/TAXRANK_", + "@prefix": true + }, + "UBERON": { + "@id": "http://purl.obolibrary.org/obo/UBERON_", + "@prefix": true + }, + "UBERON_CORE": "http://purl.obolibrary.org/obo/uberon/core#", + "UBERON_NONAMESPACE": "http://purl.obolibrary.org/obo/core#", + "UMLS": "http://identifiers.org/umls/", + "UMLSSG": { + "@id": "https://lhncbc.nlm.nih.gov/semanticnetwork/download/sg_archive/SemGroups-v04.txt", + "@prefix": true + }, + "UO-PROPERTY": "http://purl.obolibrary.org/obo/uo#", + "WB": "http://identifiers.org/wb/", + "WIKIDATA": "https://www.wikidata.org/entity/", + "WIKIDATA_PROPERTY": "https://www.wikidata.org/prop/", + "WormBase": { + "@id": "https://www.wormbase.org/get?name=", + "@prefix": true + }, + "Xenbase": { + "@id": "http://www.xenbase.org/gene/showgene.do?method=display&geneId=", + "@prefix": true + }, + "ZFIN": "http://identifiers.org/zfin/", + "bican": "https://identifiers.org/brain-bican/vocab/", + "biolink": "https://w3id.org/biolink/vocab/", + "bioschemas": "https://bioschemas.org/", + "dcid": "https://datacommons.org/browser/", + "dct": "http://purl.org/dc/terms/", + "dctypes": "http://purl.org/dc/dcmitype/", + "dictyBase": "http://dictybase.org/gene/", + "doi": "https://doi.org/", + "gff3": "https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md#", + "gpi": "https://github.com/geneontology/go-annotation/blob/master/specs/gpad-gpi-2-0.md#", + "linkml": "https://w3id.org/linkml/", + "oboInOwl": "http://www.geneontology.org/formats/oboInOwl#", + "orphanet": { + "@id": "http://www.orpha.net/ORDO/Orphanet_", + "@prefix": true + }, + "owl": "http://www.w3.org/2002/07/owl#", + "pav": "http://purl.org/pav/", + "prov": "http://www.w3.org/ns/prov#", + "qud": "http://qudt.org/1.1/schema/qudt#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "schema": "http://schema.org/", + "skos": "http://www.w3.org/2004/02/skos/core#", + "spdx": "http://spdx.org/rdf/terms#", + "@vocab": "https://identifiers.org/brain-bican/vocab/", + "category": { + "@type": "xsd:anyURI", + "@id": "biolink:category" + }, + "checksum_algorithm": { + "@context": { + "text": "skos:notation", + "description": "skos:prefLabel", + "meaning": "@id" + }, + "@id": "checksum_algorithm" + }, + "value": { + "@id": "value" + }, + "creation_date": { + "@type": "xsd:date", + "@id": "biolink:creation_date" + }, + "deprecated": { + "@type": "xsd:boolean", + "@id": "biolink:deprecated" + }, + "description": { + "@id": "dct:description" + }, + "digest": { + "@type": "@id", + "@id": "digest" + }, + "format": { + "@id": "biolink:format" + }, + "full_name": { + "@id": "biolink:full_name" + }, + "has_attribute": { + "@type": "@id", + "@id": "biolink:has_attribute" + }, + "has_attribute_type": { + "@type": "@id", + "@id": "biolink:has_attribute_type" + }, + "has_biological_sequence": { + "@id": "biolink:has_biological_sequence" + }, + "has_numeric_value": { + "@type": "xsd:double", + "@id": "biolink:has_numeric_value" + }, + "has_qualitative_value": { + "@type": "@id", + "@id": "biolink:has_qualitative_value" + }, + "has_quantitative_value": { + "@type": "@id", + "@id": "biolink:has_quantitative_value" + }, + "has_taxonomic_rank": { + "@type": "@id", + "@id": "biolink:has_taxonomic_rank" + }, + "has_unit": { + "@type": "UO:0000000", + "@id": "biolink:has_unit" + }, + "id": "@id", + "in_taxon": { + "@type": "@id", + "@id": "biolink:in_taxon" + }, + "in_taxon_label": { + "@id": "biolink:in_taxon_label" + }, + "iri": { + "@type": "xsd:anyURI", + "@id": "biolink:iri" + }, + "license": { + "@id": "biolink:license" + }, + "name": { + "@id": "rdfs:label" + }, + "node_property": { + "@id": "biolink:node_property" + }, + "provided_by": { + "@id": "biolink:provided_by" + }, + "related_to": { + "@type": "@id", + "@id": "biolink:related_to" + }, + "related_to_at_instance_level": { + "@type": "@id", + "@id": "biolink:related_to_at_instance_level" + }, + "rights": { + "@id": "biolink:rights" + }, + "symbol": { + "@id": "biolink:symbol" + }, + "synonym": { + "@id": "biolink:synonym" + }, + "type": { + "@id": "rdf:type" + }, + "version": { + "@id": "biolink:version" + }, + "xref": { + "@type": "xsd:anyURI", + "@id": "biolink:xref" + }, + "Activity": { + "@id": "biolink:Activity" + }, + "ActivityAndBehavior": { + "@id": "biolink:ActivityAndBehavior" + }, + "Annotation": { + "@id": "biolink:Annotation" + }, + "Attribute": { + "@id": "biolink:Attribute" + }, + "BiologicalEntity": { + "@id": "biolink:BiologicalEntity" + }, + "Checksum": { + "@id": "Checksum" + }, + "ChemicalEntityOrGeneOrGeneProduct": { + "@id": "biolink:ChemicalEntityOrGeneOrGeneProduct" + }, + "Dataset": { + "@id": "biolink:Dataset" + }, + "Entity": { + "@id": "biolink:Entity" + }, + "Gene": { + "@id": "biolink:Gene" + }, + "GeneOrGeneProduct": { + "@id": "biolink:GeneOrGeneProduct" + }, + "Genome": { + "@id": "biolink:Genome" + }, + "GenomicEntity": { + "@id": "biolink:GenomicEntity" + }, + "InformationContentEntity": { + "@id": "biolink:InformationContentEntity" + }, + "MacromolecularMachineMixin": { + "@id": "biolink:MacromolecularMachineMixin" + }, + "MaterialSample": { + "@id": "biolink:MaterialSample" + }, + "NamedThing": { + "@id": "biolink:NamedThing" + }, + "Occurrent": { + "@id": "biolink:Occurrent" + }, + "OntologyClass": { + "@id": "biolink:OntologyClass" + }, + "OrganismTaxon": { + "@id": "biolink:OrganismTaxon" + }, + "PhysicalEntity": { + "@id": "biolink:PhysicalEntity" + }, + "PhysicalEssence": { + "@id": "biolink:PhysicalEssence" + }, + "PhysicalEssenceOrOccurrent": { + "@id": "biolink:PhysicalEssenceOrOccurrent" + }, + "Procedure": { + "@id": "biolink:Procedure" + }, + "QuantityValue": { + "@id": "biolink:QuantityValue" + }, + "SubjectOfInvestigation": { + "@id": "biolink:SubjectOfInvestigation" + }, + "TaxonomicRank": { + "@id": "biolink:TaxonomicRank" + }, + "ThingWithTaxon": { + "@id": "biolink:ThingWithTaxon" + } + } +} + diff --git a/jsonld-context-autogen/bican_prov.context.jsonld b/jsonld-context-autogen/bican_prov.context.jsonld new file mode 100644 index 00000000..44e0090a --- /dev/null +++ b/jsonld-context-autogen/bican_prov.context.jsonld @@ -0,0 +1,33 @@ +{ + "comments": { + "description": "Auto generated by LinkML jsonld context generator", + "source": "bican_prov.yaml" + }, + "@context": { + "xsd": "http://www.w3.org/2001/XMLSchema#", + "bican": "https://identifiers.org/brain-bican/vocab/", + "linkml": "https://w3id.org/linkml/", + "prov": "http://www.w3.org/ns/prov#", + "schema": "http://schema.org/", + "@vocab": "https://identifiers.org/brain-bican/vocab/", + "used": { + "@type": "@id", + "@id": "prov:used" + }, + "was_derived_from": { + "@type": "@id", + "@id": "prov:wasDerivedFrom" + }, + "was_generated_by": { + "@type": "@id", + "@id": "prov:wasGeneratedBy" + }, + "ProvActivity": { + "@id": "prov:Activity" + }, + "ProvEntity": { + "@id": "prov:Entity" + } + } +} + diff --git a/jsonld-context-autogen/ccn2.context.jsonld b/jsonld-context-autogen/ccn2.context.jsonld index d6dc525e..e60bed43 100644 --- a/jsonld-context-autogen/ccn2.context.jsonld +++ b/jsonld-context-autogen/ccn2.context.jsonld @@ -4,6 +4,7 @@ "source": "ccn2.yaml" }, "@context": { + "xsd": "http://www.w3.org/2001/XMLSchema#", "ccn2": { "@id": "https://github.com/brain-bican/CCN2", "@prefix": true @@ -58,7 +59,6 @@ }, "rank": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" diff --git a/jsonld-context-autogen/figure1.context.jsonld b/jsonld-context-autogen/figure1.context.jsonld index 44c60377..cd69609e 100644 --- a/jsonld-context-autogen/figure1.context.jsonld +++ b/jsonld-context-autogen/figure1.context.jsonld @@ -4,13 +4,13 @@ "source": "figure1.yaml" }, "@context": { + "xsd": "http://www.w3.org/2001/XMLSchema#", "figure1": "https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1/", "linkml": "https://w3id.org/linkml/", "skos": "http://www.w3.org/2004/02/skos/core#", "@vocab": "https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1/", "broad_region": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -23,7 +23,6 @@ }, "category": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -36,7 +35,6 @@ }, "division": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -45,7 +43,6 @@ }, "nt_type": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -70,7 +67,6 @@ }, "relationship_type": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" diff --git a/jsonld-context-autogen/genome_annotation.context.jsonld b/jsonld-context-autogen/genome_annotation.context.jsonld index 2ce81166..96e1fc94 100644 --- a/jsonld-context-autogen/genome_annotation.context.jsonld +++ b/jsonld-context-autogen/genome_annotation.context.jsonld @@ -4,6 +4,7 @@ "source": "genome_annotation.yaml" }, "@context": { + "xsd": "http://www.w3.org/2001/XMLSchema#", "AGRKB": "https://www.alliancegenome.org/", "AspGD": { "@id": "http://www.aspergillusgenome.org/cgi-bin/locus.pl?dbid=", @@ -192,8 +193,6 @@ "rdfs": "http://www.w3.org/2000/01/rdf-schema#", "schema": "http://schema.org/", "skos": "http://www.w3.org/2004/02/skos/core#", - "spdx": "http://spdx.org/rdf/terms#", - "xsd": "http://www.w3.org/2001/XMLSchema#", "@vocab": "https://identifiers.org/brain-bican/vocab/", "annotations": { "@type": "@id", @@ -209,7 +208,6 @@ }, "authority": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -217,12 +215,11 @@ "@id": "authority" }, "category": { - "@type": "@id", + "@type": "xsd:anyURI", "@id": "biolink:category" }, "checksum_algorithm": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -304,7 +301,7 @@ "@id": "biolink:in_taxon_label" }, "iri": { - "@type": "@id", + "@type": "xsd:anyURI", "@id": "biolink:iri" }, "license": { @@ -352,7 +349,7 @@ "@id": "biolink:version" }, "xref": { - "@type": "@id", + "@type": "xsd:anyURI", "@id": "biolink:xref" }, "Activity": { diff --git a/jsonld-context-autogen/library_generation.context.jsonld b/jsonld-context-autogen/library_generation.context.jsonld index 1aa528f2..f17e3c9c 100644 --- a/jsonld-context-autogen/library_generation.context.jsonld +++ b/jsonld-context-autogen/library_generation.context.jsonld @@ -4,6 +4,7 @@ "source": "library_generation.yaml" }, "@context": { + "xsd": "http://www.w3.org/2001/XMLSchema#", "AGRKB": "https://www.alliancegenome.org/", "AspGD": { "@id": "http://www.aspergillusgenome.org/cgi-bin/locus.pl?dbid=", @@ -193,11 +194,9 @@ "schema": "http://schema.org/", "skos": "http://www.w3.org/2004/02/skos/core#", "spdx": "http://spdx.org/rdf/terms#", - "xsd": "http://www.w3.org/2001/XMLSchema#", "@vocab": "https://identifiers.org/brain-bican/vocab/", "amplified_cDNA_RNA_amplification_pass_fail": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -217,7 +216,7 @@ "@id": "f10e928d-5a2b-4943-af18-d8fe5d05528d" }, "category": { - "@type": "@id", + "@type": "xsd:anyURI", "@id": "biolink:category" }, "amplified_cDNA_PCR_cycles": { @@ -237,7 +236,6 @@ }, "method": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -250,6 +248,20 @@ "process_date": { "@id": "process_date" }, + "checksum_algorithm": { + "@context": { + "text": "skos:notation", + "description": "skos:prefLabel", + "meaning": "@id" + }, + "@id": "checksum_algorithm" + }, + "value": { + "@id": "value" + }, + "content_url": { + "@id": "content_url" + }, "creation_date": { "@type": "xsd:date", "@id": "biolink:creation_date" @@ -261,13 +273,19 @@ "description": { "@id": "dct:description" }, + "digest": { + "@type": "@id", + "@id": "digest" + }, + "data_type": { + "@id": "data_type" + }, "annotates": { "@type": "@id", "@id": "annotates" }, "dissociated_cell_sample_cell_prep_type": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -276,7 +294,6 @@ }, "dissociated_cell_oligo_tag_name": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -288,7 +305,6 @@ }, "age_at_death_reference_point": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -297,7 +313,6 @@ }, "age_at_death_unit": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -310,7 +325,6 @@ }, "biological_sex": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -375,7 +389,7 @@ "@id": "biolink:in_taxon_label" }, "iri": { - "@type": "@id", + "@type": "xsd:anyURI", "@id": "biolink:iri" }, "library_avg_size_bp": { @@ -388,7 +402,6 @@ }, "library_prep_pass_fail": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -405,7 +418,6 @@ }, "R1/R2_index_name": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -418,7 +430,6 @@ }, "library_method": { "@context": { - "@vocab": "@null", "text": "skos:notation", "description": "skos:prefLabel", "meaning": "@id" @@ -494,7 +505,7 @@ "@id": "prov:wasGeneratedBy" }, "xref": { - "@type": "@id", + "@type": "xsd:anyURI", "@id": "biolink:xref" }, "Activity": { @@ -533,12 +544,18 @@ "CellEnrichment": { "@id": "CellEnrichment" }, + "Checksum": { + "@id": "Checksum" + }, "ChemicalEntityOrGeneOrGeneProduct": { "@id": "biolink:ChemicalEntityOrGeneOrGeneProduct" }, "Dataset": { "@id": "biolink:Dataset" }, + "DigitalAsset": { + "@id": "DigitalAsset" + }, "DissectionRoiDelineation": { "@id": "DissectionRoiDelineation" }, diff --git a/models_py-autogen/anatomical_structure.py b/models_py-autogen/anatomical_structure.py index c814c0e5..5f13db66 100644 --- a/models_py-autogen/anatomical_structure.py +++ b/models_py-autogen/anatomical_structure.py @@ -1,34 +1,32 @@ from __future__ import annotations + +import re +import sys from datetime import ( + date, datetime, - date + time ) from decimal import Decimal from enum import Enum -import re -import sys from typing import ( Any, + ClassVar, + Dict, List, Literal, - Dict, Optional, Union ) -from pydantic.version import VERSION as PYDANTIC_VERSION -if int(PYDANTIC_VERSION[0])>=2: - from pydantic import ( - BaseModel, - ConfigDict, - Field, - field_validator - ) -else: - from pydantic import ( - BaseModel, - Field, - validator - ) + +from pydantic import ( + BaseModel, + ConfigDict, + Field, + RootModel, + field_validator +) + metamodel_version = "None" version = "None" @@ -46,6 +44,50 @@ class ConfiguredBaseModel(BaseModel): pass + + +class LinkMLMeta(RootModel): + root: Dict[str, Any] = {} + model_config = ConfigDict(frozen=True) + + def __getattr__(self, key:str): + return getattr(self.root, key) + + def __getitem__(self, key:str): + return self.root[key] + + def __setitem__(self, key:str, value): + self.root[key] = value + + def __contains__(self, key:str) -> bool: + return key in self.root + + +linkml_meta = LinkMLMeta({'default_prefix': 'AnS', + 'default_range': 'string', + 'description': 'The Anatomical Structure schema is designed to represent ' + 'types and relationships of anatomical brain structures. ', + 'id': 'https://w3id.org/my-org/anatomical-structure-schema', + 'imports': ['linkml:types', 'anatomical_structure_core'], + 'license': 'MIT', + 'name': 'anatomical-structure-schema', + 'prefixes': {'AnS': {'prefix_prefix': 'AnS', + 'prefix_reference': 'https://w3id.org/my-org/anatomical-structure-schema/'}, + 'PATO': {'prefix_prefix': 'PATO', + 'prefix_reference': 'http://purl.obolibrary.org/obo/PATO_'}, + 'biolink': {'prefix_prefix': 'biolink', + 'prefix_reference': 'https://w3id.org/biolink/'}, + 'linkml': {'prefix_prefix': 'linkml', + 'prefix_reference': 'https://w3id.org/linkml/'}, + 'schema': {'prefix_prefix': 'schema', + 'prefix_reference': 'http://schema.org/'}}, + 'settings': {'ColorHexTriplet': {'setting_key': 'ColorHexTriplet', + 'setting_value': '#[0-9a-fA-F]{6}'}, + 'PositiveFloat': {'setting_key': 'PositiveFloat', + 'setting_value': '^[+]?\\d*\\.?\\d+$'}}, + 'source_file': 'anatomical_structure.yaml', + 'title': 'Anatomical Structure Schema'} ) + class ANATOMICALDIRECTION(str, Enum): """ A controlled vocabulary term defining axis direction in terms of anatomical direction. @@ -63,168 +105,297 @@ class DISTANCEUNIT(str, Enum): meter = "m" + class NamedThing(ConfiguredBaseModel): """ Core base entity for Anatomical Structure schema representing an entity with an identifier name and description. """ - id: str = Field(...) - name: str = Field(...) - description: str = Field(...) - category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/NamedThing","AnS:NamedThing"]] = Field(["AnS:NamedThing"]) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'from_schema': 'https://w3id.org/my-org/anatomical-structure-core-schema'}) + + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + name: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'name', 'domain_of': ['NamedThing']} }) + description: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['NamedThing']} }) + category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/NamedThing","AnS:NamedThing"]] = Field(["AnS:NamedThing"], json_schema_extra = { "linkml_meta": {'alias': 'category', + 'designates_type': True, + 'domain_of': ['NamedThing'], + 'is_class_field': True} }) class VersionedNamedThing(NamedThing): """ Core base entity for Anatomical Structure schema representing an versioned named thing. """ - version: str = Field(...) - revision_of: Optional[str] = Field(None) - id: str = Field(...) - name: str = Field(...) - description: str = Field(...) - category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/VersionedNamedThing","AnS:VersionedNamedThing"]] = Field(["AnS:VersionedNamedThing"]) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'from_schema': 'https://w3id.org/my-org/anatomical-structure-core-schema'}) + + version: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'version', 'domain_of': ['VersionedNamedThing']} }) + revision_of: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'revision_of', 'domain_of': ['VersionedNamedThing']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + name: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'name', 'domain_of': ['NamedThing']} }) + description: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['NamedThing']} }) + category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/VersionedNamedThing","AnS:VersionedNamedThing"]] = Field(["AnS:VersionedNamedThing"], json_schema_extra = { "linkml_meta": {'alias': 'category', + 'designates_type': True, + 'domain_of': ['NamedThing'], + 'is_class_field': True} }) class ImageDataset(VersionedNamedThing): """ An image dataset is versioned release of a multidimensional regular grid of measurements and metadata required for a morphological representation of an entity such as an anatomical structure (ref: OBI_0003327, RRID:SCR_006266) """ - x_direction: Optional[ANATOMICALDIRECTION] = Field(None, description="""A controlled vocabulary attribute defining the x axis direction in terms of anatomical direction.""") - y_direction: Optional[ANATOMICALDIRECTION] = Field(None, description="""A controlled vocabulary attribute defining the y axis direction in terms of anatomical direction.""") - z_direction: Optional[ANATOMICALDIRECTION] = Field(None, description="""A controlled vocabulary attribute defining the z axis direction in terms of anatomical direction.""") - x_size: Optional[int] = Field(None, description="""The number of pixels/voxels (size) along the x axis.""", ge=1) - y_size: Optional[int] = Field(None, description="""The number of pixels/voxels (size) along the y axis.""", ge=1) - z_size: Optional[int] = Field(None, description="""The number of pixels/voxels (size) along the y axis.""", ge=1) - x_resolution: Optional[float] = Field(None, description="""The resolution (length / pixel) in along the x axis (numerical value part).""") - y_resolution: Optional[float] = Field(None, description="""The resolution (length / pixel) in along the y axis (numerical value part).""") - z_resolution: Optional[float] = Field(None, description="""The resolution (length / pixel) in along the z axis (numerical value part).""") - unit: Optional[DISTANCEUNIT] = Field(None, description="""A controlled vocabulary attribute defining the length unit of the x, y, and z resolution values.""") - version: str = Field(...) - revision_of: Optional[str] = Field(None) - id: str = Field(...) - name: str = Field(...) - description: str = Field(...) - category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/ImageDataset","AnS:ImageDataset"]] = Field(["AnS:ImageDataset"]) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/my-org/anatomical-structure-schema', + 'slot_usage': {'revision_of': {'any_of': [{'range': 'ImageDataset'}, + {'range': 'string'}], + 'name': 'revision_of'}}}) + + x_direction: Optional[ANATOMICALDIRECTION] = Field(None, description="""A controlled vocabulary attribute defining the x axis direction in terms of anatomical direction.""", json_schema_extra = { "linkml_meta": {'alias': 'x_direction', 'domain_of': ['ImageDataset']} }) + y_direction: Optional[ANATOMICALDIRECTION] = Field(None, description="""A controlled vocabulary attribute defining the y axis direction in terms of anatomical direction.""", json_schema_extra = { "linkml_meta": {'alias': 'y_direction', 'domain_of': ['ImageDataset']} }) + z_direction: Optional[ANATOMICALDIRECTION] = Field(None, description="""A controlled vocabulary attribute defining the z axis direction in terms of anatomical direction.""", json_schema_extra = { "linkml_meta": {'alias': 'z_direction', 'domain_of': ['ImageDataset']} }) + x_size: Optional[int] = Field(None, description="""The number of pixels/voxels (size) along the x axis.""", ge=1, json_schema_extra = { "linkml_meta": {'alias': 'x_size', 'domain_of': ['ImageDataset']} }) + y_size: Optional[int] = Field(None, description="""The number of pixels/voxels (size) along the y axis.""", ge=1, json_schema_extra = { "linkml_meta": {'alias': 'y_size', 'domain_of': ['ImageDataset']} }) + z_size: Optional[int] = Field(None, description="""The number of pixels/voxels (size) along the y axis.""", ge=1, json_schema_extra = { "linkml_meta": {'alias': 'z_size', 'domain_of': ['ImageDataset']} }) + x_resolution: Optional[float] = Field(None, description="""The resolution (length / pixel) in along the x axis (numerical value part).""", json_schema_extra = { "linkml_meta": {'alias': 'x_resolution', + 'domain_of': ['ImageDataset'], + 'structured_pattern': {'syntax': '{PositiveFloat}'}} }) + y_resolution: Optional[float] = Field(None, description="""The resolution (length / pixel) in along the y axis (numerical value part).""", json_schema_extra = { "linkml_meta": {'alias': 'y_resolution', + 'domain_of': ['ImageDataset'], + 'structured_pattern': {'syntax': '{PositiveFloat}'}} }) + z_resolution: Optional[float] = Field(None, description="""The resolution (length / pixel) in along the z axis (numerical value part).""", json_schema_extra = { "linkml_meta": {'alias': 'z_resolution', + 'domain_of': ['ImageDataset'], + 'structured_pattern': {'syntax': '{PositiveFloat}'}} }) + unit: Optional[DISTANCEUNIT] = Field(None, description="""A controlled vocabulary attribute defining the length unit of the x, y, and z resolution values.""", json_schema_extra = { "linkml_meta": {'alias': 'unit', 'domain_of': ['ImageDataset']} }) + version: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'version', 'domain_of': ['VersionedNamedThing']} }) + revision_of: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'revision_of', + 'any_of': [{'range': 'ImageDataset'}, {'range': 'string'}], + 'domain_of': ['VersionedNamedThing']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + name: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'name', 'domain_of': ['NamedThing']} }) + description: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['NamedThing']} }) + category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/ImageDataset","AnS:ImageDataset"]] = Field(["AnS:ImageDataset"], json_schema_extra = { "linkml_meta": {'alias': 'category', + 'designates_type': True, + 'domain_of': ['NamedThing'], + 'is_class_field': True} }) class AnatomicalSpace(VersionedNamedThing): """ An anatomical space is versioned release of a mathematical space with a defined mapping between the anatomical axes and the mathematical axes. An anatomical space may be defined by a reference image chosen as the biological reference for an anatomical structure of interest derived from a single or multiple specimens (ref: ILX:0777106, RRID:SCR_023499) """ - measures: str = Field(..., description="""Reference to the specific image dataset used to define the anatomical space.""") - version: str = Field(...) - revision_of: Optional[str] = Field(None) - id: str = Field(...) - name: str = Field(...) - description: str = Field(...) - category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/AnatomicalSpace","AnS:AnatomicalSpace"]] = Field(["AnS:AnatomicalSpace"]) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/my-org/anatomical-structure-schema', + 'slot_usage': {'revision_of': {'any_of': [{'range': 'AnatomicalSpace'}, + {'range': 'string'}], + 'name': 'revision_of'}}}) + + measures: str = Field(..., description="""Reference to the specific image dataset used to define the anatomical space.""", json_schema_extra = { "linkml_meta": {'alias': 'measures', + 'any_of': [{'range': 'ImageDataset'}, {'range': 'string'}], + 'domain_of': ['AnatomicalSpace']} }) + version: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'version', 'domain_of': ['VersionedNamedThing']} }) + revision_of: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'revision_of', + 'any_of': [{'range': 'AnatomicalSpace'}, {'range': 'string'}], + 'domain_of': ['VersionedNamedThing']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + name: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'name', 'domain_of': ['NamedThing']} }) + description: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['NamedThing']} }) + category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/AnatomicalSpace","AnS:AnatomicalSpace"]] = Field(["AnS:AnatomicalSpace"], json_schema_extra = { "linkml_meta": {'alias': 'category', + 'designates_type': True, + 'domain_of': ['NamedThing'], + 'is_class_field': True} }) class ParcellationTerminology(VersionedNamedThing): """ A parcellation terminology is a versioned release set of terms that can be used to label annotations in an atlas, providing human readability and context and allowing communication about brain locations and structural properties. Typically, a terminology is a set of descriptive anatomical terms following a specific naming convention and/or approach to organization scheme. The terminology may be a flat list of controlled vocabulary, a taxonomy and partonomy, or an ontology (ref: ILX:0777107, RRID:SCR_023499) """ - version: str = Field(...) - revision_of: Optional[str] = Field(None) - id: str = Field(...) - name: str = Field(...) - description: str = Field(...) - category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/ParcellationTerminology","AnS:ParcellationTerminology"]] = Field(["AnS:ParcellationTerminology"]) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/my-org/anatomical-structure-schema', + 'slot_usage': {'revision_of': {'any_of': [{'range': 'ParcellationTerminology'}, + {'range': 'string'}], + 'name': 'revision_of'}}}) + + version: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'version', 'domain_of': ['VersionedNamedThing']} }) + revision_of: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'revision_of', + 'any_of': [{'range': 'ParcellationTerminology'}, {'range': 'string'}], + 'domain_of': ['VersionedNamedThing']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + name: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'name', 'domain_of': ['NamedThing']} }) + description: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['NamedThing']} }) + category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/ParcellationTerminology","AnS:ParcellationTerminology"]] = Field(["AnS:ParcellationTerminology"], json_schema_extra = { "linkml_meta": {'alias': 'category', + 'designates_type': True, + 'domain_of': ['NamedThing'], + 'is_class_field': True} }) class ParcellationTermSet(NamedThing): """ A parcellation term set is the set of parcellation terms within a specific parcellation terminology. A parcellation term set belongs to one and only one parcellation terminology and each parcellation term in a parcellation terminology belongs to one and only one term set. If the parcellation terminology is a taxonomy, parcellation term sets can be used to represent taxonomic ranks. For consistency, if the terminology does not have the notion of taxonomic ranks, all terms are grouped into a single parcellation term set. """ - part_of_parcellation_terminology: str = Field(..., description="""Reference to the parcellation terminology for which the parcellation term set partitions.""") - ordinal: Optional[int] = Field(None, description="""Ordinal of the parcellation term set among other term sets within the context of the associated parcellation terminology.""", ge=0) - has_parent_parcellation_term_set: Optional[str] = Field(None, description="""Reference to the parent parcellation term set for which the parcellation term set is a child (lower taxonomic rank) of.""") - id: str = Field(...) - name: str = Field(...) - description: str = Field(...) - category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/ParcellationTermSet","AnS:ParcellationTermSet"]] = Field(["AnS:ParcellationTermSet"]) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/my-org/anatomical-structure-schema'}) + + part_of_parcellation_terminology: str = Field(..., description="""Reference to the parcellation terminology for which the parcellation term set partitions.""", json_schema_extra = { "linkml_meta": {'alias': 'part_of_parcellation_terminology', + 'any_of': [{'range': 'ParcellationTerminology'}, {'range': 'string'}], + 'domain_of': ['ParcellationTermSet']} }) + ordinal: Optional[int] = Field(None, description="""Ordinal of the parcellation term set among other term sets within the context of the associated parcellation terminology.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'ordinal', 'domain_of': ['ParcellationTermSet', 'ParcellationTerm']} }) + has_parent_parcellation_term_set: Optional[str] = Field(None, description="""Reference to the parent parcellation term set for which the parcellation term set is a child (lower taxonomic rank) of.""", json_schema_extra = { "linkml_meta": {'alias': 'has_parent_parcellation_term_set', + 'any_of': [{'range': 'ParcellationTermSet'}, {'range': 'string'}], + 'domain_of': ['ParcellationTermSet']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + name: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'name', 'domain_of': ['NamedThing']} }) + description: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['NamedThing']} }) + category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/ParcellationTermSet","AnS:ParcellationTermSet"]] = Field(["AnS:ParcellationTermSet"], json_schema_extra = { "linkml_meta": {'alias': 'category', + 'designates_type': True, + 'domain_of': ['NamedThing'], + 'is_class_field': True} }) class ParcellationTerm(NamedThing): """ A parcellation term is an individual term within a specific parcellation terminology describing a single anatomical entity by a persistent identifier, name, symbol and description. A parcellation term is a unique and exclusive member of a versioned release parcellation terminology. Although term identifiers must be unique within the context of one versioned release of a parcellation terminology, they can be reused in different parcellation terminology versions enabling the representation of terminology updates and modifications over time. """ - symbol: Optional[str] = Field(None, description="""Symbol representing a parcellation term.""") - part_of_parcellation_term_set: str = Field(..., description="""Reference to the parcellation term set for which the parcellation term is part of.""") - ordinal: Optional[int] = Field(None, description="""Ordinal of the parcellation term among other terms within the context of the associated parcellation terminology.""", ge=0) - has_parent_parcellation_term: Optional[str] = Field(None, description="""Reference to the parent parcellation term for which the parcellation term is a child ( spatially part) of""") - id: str = Field(...) - name: str = Field(...) - description: str = Field(...) - category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/ParcellationTerm","AnS:ParcellationTerm"]] = Field(["AnS:ParcellationTerm"]) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/my-org/anatomical-structure-schema'}) + + symbol: Optional[str] = Field(None, description="""Symbol representing a parcellation term.""", json_schema_extra = { "linkml_meta": {'alias': 'symbol', 'domain_of': ['ParcellationTerm']} }) + part_of_parcellation_term_set: str = Field(..., description="""Reference to the parcellation term set for which the parcellation term is part of.""", json_schema_extra = { "linkml_meta": {'alias': 'part_of_parcellation_term_set', + 'any_of': [{'range': 'ParcellationTermSet'}, {'range': 'string'}], + 'domain_of': ['ParcellationTerm']} }) + ordinal: Optional[int] = Field(None, description="""Ordinal of the parcellation term among other terms within the context of the associated parcellation terminology.""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'ordinal', 'domain_of': ['ParcellationTermSet', 'ParcellationTerm']} }) + has_parent_parcellation_term: Optional[str] = Field(None, description="""Reference to the parent parcellation term for which the parcellation term is a child ( spatially part) of""", json_schema_extra = { "linkml_meta": {'alias': 'has_parent_parcellation_term', + 'any_of': [{'range': 'ParcellationTerm'}, {'range': 'string'}], + 'domain_of': ['ParcellationTerm']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + name: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'name', 'domain_of': ['NamedThing']} }) + description: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['NamedThing']} }) + category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/ParcellationTerm","AnS:ParcellationTerm"]] = Field(["AnS:ParcellationTerm"], json_schema_extra = { "linkml_meta": {'alias': 'category', + 'designates_type': True, + 'domain_of': ['NamedThing'], + 'is_class_field': True} }) class ParcellationColorScheme(VersionedNamedThing): """ A parcellation color scheme is a versioned release color palette that can be used to visualize a parcellation terminology or its related parcellation annotation. A parcellation terminology may have zero or more parcellation color schemes and each color scheme is in context of a specific parcellation terminology, where each parcellation term is assigned a hex color value. A parcellation color scheme is defined as a part of one and only one parcellation terminology. """ - subject_parcellation_terminology: str = Field(..., description="""Reference to the parcellation terminology for which the parcellation color scheme is in context of.""") - version: str = Field(...) - revision_of: Optional[str] = Field(None) - id: str = Field(...) - name: str = Field(...) - description: str = Field(...) - category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/ParcellationColorScheme","AnS:ParcellationColorScheme"]] = Field(["AnS:ParcellationColorScheme"]) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/my-org/anatomical-structure-schema', + 'slot_usage': {'revision_of': {'any_of': [{'range': 'ParcellationColorScheme'}, + {'range': 'string'}], + 'name': 'revision_of'}}}) + + subject_parcellation_terminology: str = Field(..., description="""Reference to the parcellation terminology for which the parcellation color scheme is in context of.""", json_schema_extra = { "linkml_meta": {'alias': 'subject_parcellation_terminology', + 'any_of': [{'range': 'ParcellationTerminology'}, {'range': 'string'}], + 'domain_of': ['ParcellationColorScheme']} }) + version: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'version', 'domain_of': ['VersionedNamedThing']} }) + revision_of: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'revision_of', + 'any_of': [{'range': 'ParcellationColorScheme'}, {'range': 'string'}], + 'domain_of': ['VersionedNamedThing']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + name: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'name', 'domain_of': ['NamedThing']} }) + description: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['NamedThing']} }) + category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/ParcellationColorScheme","AnS:ParcellationColorScheme"]] = Field(["AnS:ParcellationColorScheme"], json_schema_extra = { "linkml_meta": {'alias': 'category', + 'designates_type': True, + 'domain_of': ['NamedThing'], + 'is_class_field': True} }) class ParcellationColorAssignment(ConfiguredBaseModel): """ The parcellation color assignment associates hex color value to a parcellation term within a versioned release of a color scheme. A parcellation term is uniquely denoted by a parcellation term identifier and the parcellation terminology it belongs to. """ - part_of_parcellation_color_scheme: str = Field(..., description="""Reference to the parcellation color scheme for which the color assignment is part of.""") - subject_parcellation_term: str = Field(..., description="""Reference to the parcellation term identifier for which the color assignment is about.""") - color: Optional[str] = Field(None, description="""A string representing to hex triplet code of a color""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/my-org/anatomical-structure-schema'}) + + part_of_parcellation_color_scheme: str = Field(..., description="""Reference to the parcellation color scheme for which the color assignment is part of.""", json_schema_extra = { "linkml_meta": {'alias': 'part_of_parcellation_color_scheme', + 'any_of': [{'range': 'ParcellationColorScheme'}, {'range': 'string'}], + 'domain_of': ['ParcellationColorAssignment']} }) + subject_parcellation_term: str = Field(..., description="""Reference to the parcellation term identifier for which the color assignment is about.""", json_schema_extra = { "linkml_meta": {'alias': 'subject_parcellation_term', + 'any_of': [{'range': 'ParcellationTerm'}, {'range': 'string'}], + 'domain_of': ['ParcellationColorAssignment', 'ParcellationAnnotationTermMap']} }) + color: Optional[str] = Field(None, description="""A string representing to hex triplet code of a color""", json_schema_extra = { "linkml_meta": {'alias': 'color', + 'domain_of': ['ParcellationColorAssignment'], + 'structured_pattern': {'syntax': '{ColorHexTriplet}'}} }) class AnatomicalAnnotationSet(VersionedNamedThing): """ An anatomical annotation set is a versioned release of a set of anatomical annotations anchored in the same anatomical space that divides the space into distinct segments following some annotation criteria or parcellation scheme. For example, the anatomical annotation set of 3D image based reference atlases (e.g. Allen Mouse CCF) can be expressed as a set of label indices of single multi-valued image annotations or as a set of segmentation masks (ref: ILX:0777108, RRID:SCR_023499) """ - parameterizes: str = Field(..., description="""Reference to the anatomical space for which the anatomical annotation set is anchored""") - version: str = Field(...) - revision_of: Optional[str] = Field(None) - id: str = Field(...) - name: str = Field(...) - description: str = Field(...) - category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/AnatomicalAnnotationSet","AnS:AnatomicalAnnotationSet"]] = Field(["AnS:AnatomicalAnnotationSet"]) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/my-org/anatomical-structure-schema', + 'slot_usage': {'revision_of': {'any_of': [{'range': 'AnatomicalAnnotationSet'}, + {'range': 'string'}], + 'name': 'revision_of'}}}) + + parameterizes: str = Field(..., description="""Reference to the anatomical space for which the anatomical annotation set is anchored""", json_schema_extra = { "linkml_meta": {'alias': 'parameterizes', + 'any_of': [{'range': 'AnatomicalSpace'}, {'range': 'string'}], + 'domain_of': ['AnatomicalAnnotationSet']} }) + version: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'version', 'domain_of': ['VersionedNamedThing']} }) + revision_of: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'revision_of', + 'any_of': [{'range': 'AnatomicalAnnotationSet'}, {'range': 'string'}], + 'domain_of': ['VersionedNamedThing']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + name: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'name', 'domain_of': ['NamedThing']} }) + description: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['NamedThing']} }) + category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/AnatomicalAnnotationSet","AnS:AnatomicalAnnotationSet"]] = Field(["AnS:AnatomicalAnnotationSet"], json_schema_extra = { "linkml_meta": {'alias': 'category', + 'designates_type': True, + 'domain_of': ['NamedThing'], + 'is_class_field': True} }) class ParcellationAnnotation(ConfiguredBaseModel): """ A parcellation annotation defines a specific segment of an anatomical space denoted by an internal identifier and is a unique and exclusive member of a versioned release anatomical annotation set. For example, in the case where the anatomical annotation set is a single multi-value image mask (e.g. Allen Mouse CCF), a specific annotation corresponds to a specific label index (internal identifier) in the mask. """ - part_of_anatomical_annotation_set: str = Field(...) - internal_identifier: str = Field(..., description="""An identifier that uniquely denotes a specific parcellation annotation within the context of an anatomical annotation set""") - voxel_count: Optional[int] = Field(None, description="""The number of voxels (3D pixels) spanned by the parcellation annotation (optional).""", ge=0) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/my-org/anatomical-structure-schema'}) + + part_of_anatomical_annotation_set: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'part_of_anatomical_annotation_set', + 'any_of': [{'range': 'AnatomicalAnnotationSet'}, {'range': 'string'}], + 'domain_of': ['ParcellationAnnotation']} }) + internal_identifier: str = Field(..., description="""An identifier that uniquely denotes a specific parcellation annotation within the context of an anatomical annotation set""", json_schema_extra = { "linkml_meta": {'alias': 'internal_identifier', 'domain_of': ['ParcellationAnnotation']} }) + voxel_count: Optional[int] = Field(None, description="""The number of voxels (3D pixels) spanned by the parcellation annotation (optional).""", ge=0, json_schema_extra = { "linkml_meta": {'alias': 'voxel_count', 'domain_of': ['ParcellationAnnotation']} }) class ParcellationAnnotationTermMap(ConfiguredBaseModel): """ The parcellation annotation term map table defines the relationship between parcellation annotations and parcellation terms. A parcellation term is uniquely denoted by a parcellation term identifier and the parcellation terminology it belongs to. A parcellation term can be spatially parameterized by the union of one or more parcellation annotations within a versioned release of an anatomical annotation set. For example, annotations defining individual cortical layers in cortical region R (R1, R2/3, R4, etc) can be combined to define the parent region R. """ - subject_parcellation_annotation: Union[ParcellationAnnotation, str] = Field(..., description="""Reference to the parcellation annotation that is the subject of the association.""") - subject_parcellation_term: str = Field(..., description="""Reference to the parcellation term that is the subject of the association.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/my-org/anatomical-structure-schema'}) + + subject_parcellation_annotation: Union[ParcellationAnnotation, str] = Field(..., description="""Reference to the parcellation annotation that is the subject of the association.""", json_schema_extra = { "linkml_meta": {'alias': 'subject_parcellation_annotation', + 'any_of': [{'range': 'ParcellationAnnotation'}, {'range': 'string'}], + 'domain_of': ['ParcellationAnnotationTermMap']} }) + subject_parcellation_term: str = Field(..., description="""Reference to the parcellation term that is the subject of the association.""", json_schema_extra = { "linkml_meta": {'alias': 'subject_parcellation_term', + 'any_of': [{'range': 'ParcellationTerm'}, {'range': 'string'}], + 'domain_of': ['ParcellationColorAssignment', 'ParcellationAnnotationTermMap']} }) class ParcellationAtlas(VersionedNamedThing): """ A parcellation atlas is a versioned release reference used to guide experiments or deal with the spatial relationship between objects or the location of objects within the context of some anatomical structure. An atlas is minimally defined by a notion of space (either implicit or explicit) and an annotation set. Reference atlases usually have additional parts that make them more useful in certain situations, such as a well defined coordinate system, delineations indicating the boundaries of various regions or cell populations, landmarks, and labels and names to make it easier to communicate about well known and useful locations (ref: ILX:0777109, RRID:SCR_023499). """ - has_anatomical_space: str = Field(..., description="""Reference to the anatomical space component of the parcellation atlas""") - has_anatomical_annotation_set: str = Field(..., description="""Reference to the anatomical annotation set component of the parcellation atlas""") - has_parcellation_terminology: str = Field(..., description="""Reference to the parcellation terminology component of the parcellation atlas""") - specialization_of: Optional[str] = Field(None, description="""Reference to the general (non versioned) parcellation atlas for which the parcellation atlas is a specific version release of.""") - version: str = Field(...) - revision_of: Optional[str] = Field(None) - id: str = Field(...) - name: str = Field(...) - description: str = Field(...) - category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/ParcellationAtlas","AnS:ParcellationAtlas"]] = Field(["AnS:ParcellationAtlas"]) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/my-org/anatomical-structure-schema', + 'slot_usage': {'revision_of': {'any_of': [{'range': 'ParcellationAtlas'}, + {'range': 'string'}], + 'name': 'revision_of'}}}) + + has_anatomical_space: str = Field(..., description="""Reference to the anatomical space component of the parcellation atlas""", json_schema_extra = { "linkml_meta": {'alias': 'has_anatomical_space', + 'any_of': [{'range': 'AnatomicalSpace'}, {'range': 'string'}], + 'domain_of': ['ParcellationAtlas']} }) + has_anatomical_annotation_set: str = Field(..., description="""Reference to the anatomical annotation set component of the parcellation atlas""", json_schema_extra = { "linkml_meta": {'alias': 'has_anatomical_annotation_set', + 'any_of': [{'range': 'AnatomicalAnnotationSet'}, {'range': 'string'}], + 'domain_of': ['ParcellationAtlas']} }) + has_parcellation_terminology: str = Field(..., description="""Reference to the parcellation terminology component of the parcellation atlas""", json_schema_extra = { "linkml_meta": {'alias': 'has_parcellation_terminology', + 'any_of': [{'range': 'ParcellationTerminology'}, {'range': 'string'}], + 'domain_of': ['ParcellationAtlas']} }) + specialization_of: Optional[str] = Field(None, description="""Reference to the general (non versioned) parcellation atlas for which the parcellation atlas is a specific version release of.""", json_schema_extra = { "linkml_meta": {'alias': 'specialization_of', + 'any_of': [{'range': 'ParcellationAtlas'}, {'range': 'string'}], + 'domain_of': ['ParcellationAtlas']} }) + version: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'version', 'domain_of': ['VersionedNamedThing']} }) + revision_of: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'revision_of', + 'any_of': [{'range': 'ParcellationAtlas'}, {'range': 'string'}], + 'domain_of': ['VersionedNamedThing']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + name: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'name', 'domain_of': ['NamedThing']} }) + description: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['NamedThing']} }) + category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/ParcellationAtlas","AnS:ParcellationAtlas"]] = Field(["AnS:ParcellationAtlas"], json_schema_extra = { "linkml_meta": {'alias': 'category', + 'designates_type': True, + 'domain_of': ['NamedThing'], + 'is_class_field': True} }) # Model rebuild diff --git a/models_py-autogen/anatomical_structure_core.py b/models_py-autogen/anatomical_structure_core.py index 6a6d7718..7837d8ef 100644 --- a/models_py-autogen/anatomical_structure_core.py +++ b/models_py-autogen/anatomical_structure_core.py @@ -1,34 +1,32 @@ from __future__ import annotations + +import re +import sys from datetime import ( + date, datetime, - date + time ) from decimal import Decimal from enum import Enum -import re -import sys from typing import ( Any, + ClassVar, + Dict, List, Literal, - Dict, Optional, Union ) -from pydantic.version import VERSION as PYDANTIC_VERSION -if int(PYDANTIC_VERSION[0])>=2: - from pydantic import ( - BaseModel, - ConfigDict, - Field, - field_validator - ) -else: - from pydantic import ( - BaseModel, - Field, - validator - ) + +from pydantic import ( + BaseModel, + ConfigDict, + Field, + RootModel, + field_validator +) + metamodel_version = "None" version = "None" @@ -46,26 +44,77 @@ class ConfiguredBaseModel(BaseModel): pass + + +class LinkMLMeta(RootModel): + root: Dict[str, Any] = {} + model_config = ConfigDict(frozen=True) + + def __getattr__(self, key:str): + return getattr(self.root, key) + + def __getitem__(self, key:str): + return self.root[key] + + def __setitem__(self, key:str, value): + self.root[key] = value + + def __contains__(self, key:str) -> bool: + return key in self.root + + +linkml_meta = LinkMLMeta({'default_prefix': 'AnS', + 'default_range': 'string', + 'description': 'Contains the core types for the Anatomical Structure Schema.', + 'id': 'https://w3id.org/my-org/anatomical-structure-core-schema', + 'imports': ['linkml:types'], + 'name': 'anatomical-structure-core-schema', + 'prefixes': {'AnS': {'prefix_prefix': 'AnS', + 'prefix_reference': 'https://w3id.org/my-org/anatomical-structure-schema/'}, + 'PATO': {'prefix_prefix': 'PATO', + 'prefix_reference': 'http://purl.obolibrary.org/obo/PATO_'}, + 'biolink': {'prefix_prefix': 'biolink', + 'prefix_reference': 'https://w3id.org/biolink/'}, + 'linkml': {'prefix_prefix': 'linkml', + 'prefix_reference': 'https://w3id.org/linkml/'}, + 'schema': {'prefix_prefix': 'schema', + 'prefix_reference': 'http://schema.org/'}}, + 'source_file': 'anatomical_structure_core.yaml', + 'title': 'Anatomical Structure Core Schema'} ) + + class NamedThing(ConfiguredBaseModel): """ Core base entity for Anatomical Structure schema representing an entity with an identifier name and description. """ - id: str = Field(...) - name: str = Field(...) - description: str = Field(...) - category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/NamedThing","AnS:NamedThing"]] = Field(["AnS:NamedThing"]) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'from_schema': 'https://w3id.org/my-org/anatomical-structure-core-schema'}) + + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + name: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'name', 'domain_of': ['NamedThing']} }) + description: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['NamedThing']} }) + category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/NamedThing","AnS:NamedThing"]] = Field(["AnS:NamedThing"], json_schema_extra = { "linkml_meta": {'alias': 'category', + 'designates_type': True, + 'domain_of': ['NamedThing'], + 'is_class_field': True} }) class VersionedNamedThing(NamedThing): """ Core base entity for Anatomical Structure schema representing an versioned named thing. """ - version: str = Field(...) - revision_of: Optional[str] = Field(None) - id: str = Field(...) - name: str = Field(...) - description: str = Field(...) - category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/VersionedNamedThing","AnS:VersionedNamedThing"]] = Field(["AnS:VersionedNamedThing"]) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'from_schema': 'https://w3id.org/my-org/anatomical-structure-core-schema'}) + + version: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'version', 'domain_of': ['VersionedNamedThing']} }) + revision_of: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'revision_of', 'domain_of': ['VersionedNamedThing']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + name: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'name', 'domain_of': ['NamedThing']} }) + description: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['NamedThing']} }) + category: List[Literal["https://w3id.org/my-org/anatomical-structure-schema/VersionedNamedThing","AnS:VersionedNamedThing"]] = Field(["AnS:VersionedNamedThing"], json_schema_extra = { "linkml_meta": {'alias': 'category', + 'designates_type': True, + 'domain_of': ['NamedThing'], + 'is_class_field': True} }) # Model rebuild diff --git a/models_py-autogen/bican_core.py b/models_py-autogen/bican_core.py new file mode 100644 index 00000000..cbbda0be --- /dev/null +++ b/models_py-autogen/bican_core.py @@ -0,0 +1,5105 @@ +from __future__ import annotations + +import re +import sys +from datetime import ( + date, + datetime, + time +) +from decimal import Decimal +from enum import Enum +from typing import ( + Any, + ClassVar, + Dict, + List, + Literal, + Optional, + Union +) + +from pydantic import ( + BaseModel, + ConfigDict, + Field, + RootModel, + field_validator +) + + +metamodel_version = "None" +version = "None" + + +class ConfiguredBaseModel(BaseModel): + model_config = ConfigDict( + validate_assignment = True, + validate_default = True, + extra = "forbid", + arbitrary_types_allowed = True, + use_enum_values = True, + strict = False, + ) + pass + + + + +class LinkMLMeta(RootModel): + root: Dict[str, Any] = {} + model_config = ConfigDict(frozen=True) + + def __getattr__(self, key:str): + return getattr(self.root, key) + + def __getitem__(self, key:str): + return self.root[key] + + def __setitem__(self, key:str, value): + self.root[key] = value + + def __contains__(self, key:str) -> bool: + return key in self.root + + +linkml_meta = LinkMLMeta({'default_prefix': 'bican', + 'default_range': 'string', + 'description': 'The BICAN Core schema is designed to represent classes, ' + 'slots, and enums that are frequently used in BICAN schemas.', + 'id': 'https://identifiers.org/brain-bican/bican-core-schema', + 'imports': ['linkml:types', 'bican_biolink'], + 'name': 'bican-core-schema', + 'prefixes': {'bican': {'prefix_prefix': 'bican', + 'prefix_reference': 'https://identifiers.org/brain-bican/vocab/'}, + 'linkml': {'prefix_prefix': 'linkml', + 'prefix_reference': 'https://w3id.org/linkml/'}, + 'spdx': {'prefix_prefix': 'spdx', + 'prefix_reference': 'http://spdx.org/rdf/terms#'}}, + 'source_file': 'bican_core.yaml', + 'title': 'BICAN Core Schema'} ) + +class DigestType(str, Enum): + SHA1 = "spdx:checksumAlgorithm_sha1" + MD5 = "spdx:checksumAlgorithm_md5" + SHA256 = "spdx:checksumAlgorithm_sha256" + + + +class OntologyClass(ConfiguredBaseModel): + """ + a concept or class in an ontology, vocabulary or thesaurus. Note that nodes in a biolink compatible KG can be considered both instances of biolink classes, and OWL classes in their own right. In general you should not need to use this class directly. Instead, use the appropriate biolink class. For example, for the GO concept of endocytosis (GO:0006897), use bl:BiologicalProcess as the type. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:OntologyClass', + 'comments': ["This is modeled as a mixin. 'ontology class' should not be the " + 'primary type of a node in the KG. Instead you should use an ' + 'informative bioloink category, such as AnatomicalEntity (for ' + 'Uberon classes), ChemicalSubstance (for CHEBI or CHEMBL), etc', + 'Note that formally this is a metaclass. Instances of this class ' + "are instances in the graph, but can be the object of 'type' " + 'edges. For example, if we had a node in the graph representing ' + 'a specific brain of a specific patient (e.g brain001), this ' + 'could have a category of bl:Sample, and by typed more ' + 'specifically with an ontology class UBERON:nnn, which has as ' + 'category bl:AnatomicalEntity'], + 'definition_uri': 'https://w3id.org/biolink/vocab/OntologyClass', + 'exact_mappings': ['owl:Class', 'schema:Class'], + 'examples': [{'description': "the class 'brain' from the Uberon anatomy " + 'ontology', + 'value': 'UBERON:0000955'}], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['MESH', 'UMLS', 'KEGG.BRITE'], + 'mixin': True, + 'see_also': ['https://github.com/biolink/biolink-model/issues/486']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + + +class Annotation(ConfiguredBaseModel): + """ + Biolink Model root class for entity annotations. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'class_uri': 'biolink:Annotation', + 'definition_uri': 'https://w3id.org/biolink/vocab/Annotation', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + pass + + +class QuantityValue(Annotation): + """ + A value of an attribute that is quantitative and measurable, expressed as a combination of a unit and a numeric value + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:QuantityValue', + 'definition_uri': 'https://w3id.org/biolink/vocab/QuantityValue', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + has_unit: Optional[str] = Field(None, description="""connects a quantity value to a unit""", json_schema_extra = { "linkml_meta": {'alias': 'has_unit', + 'close_mappings': ['EFO:0001697', 'UO-PROPERTY:is_unit_of'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_unit', + 'domain': 'quantity value', + 'domain_of': ['quantity value'], + 'exact_mappings': ['qud:unit', 'IAO:0000039'], + 'in_subset': ['samples'], + 'narrow_mappings': ['SNOMED:has_concentration_strength_denominator_unit', + 'SNOMED:has_concentration_strength_numerator_unit', + 'SNOMED:has_presentation_strength_denominator_unit', + 'SNOMED:has_presentation_strength_numerator_unit', + 'SNOMED:has_unit_of_presentation'], + 'slot_uri': 'biolink:has_unit'} }) + has_numeric_value: Optional[float] = Field(None, description="""connects a quantity value to a number""", json_schema_extra = { "linkml_meta": {'alias': 'has_numeric_value', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_numeric_value', + 'domain': 'quantity value', + 'domain_of': ['quantity value'], + 'exact_mappings': ['qud:quantityValue'], + 'in_subset': ['samples'], + 'slot_uri': 'biolink:has_numeric_value'} }) + + +class Entity(ConfiguredBaseModel): + """ + Root Biolink Model class for all things and informational relationships, real or imagined. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'class_uri': 'biolink:Entity', + 'definition_uri': 'https://w3id.org/biolink/vocab/Entity', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Entity","biolink:Entity"]] = Field(["biolink:Entity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + + +class NamedThing(Entity): + """ + a databased entity or concept/class + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:NamedThing', + 'definition_uri': 'https://w3id.org/biolink/vocab/NamedThing', + 'exact_mappings': ['BFO:0000001', + 'WIKIDATA:Q35120', + 'UMLSSG:OBJC', + 'STY:T071', + 'dcid:Thing'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/NamedThing","biolink:NamedThing"]] = Field(["biolink:NamedThing"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + + +class Attribute(NamedThing, OntologyClass): + """ + A property or characteristic of an entity. For example, an apple may have properties such as color, shape, age, crispiness. An environmental sample may have attributes such as depth, lat, long, material. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Attribute', + 'definition_uri': 'https://w3id.org/biolink/vocab/Attribute', + 'exact_mappings': ['SIO:000614'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['EDAM-DATA', 'EDAM-FORMAT', 'EDAM-OPERATION', 'EDAM-TOPIC'], + 'in_subset': ['samples'], + 'mixins': ['ontology class'], + 'slot_usage': {'name': {'description': "The human-readable 'attribute name' " + 'can be set to a string which reflects ' + 'its context of interpretation, e.g. ' + 'SEPIO evidence/provenance/confidence ' + 'annotation or it can default to the ' + "name associated with the 'has " + "attribute type' slot ontology term.", + 'name': 'name'}}}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Attribute","biolink:Attribute"]] = Field(["biolink:Attribute"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + name: Optional[str] = Field(None, description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute_type', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute_type', + 'domain': 'attribute', + 'domain_of': ['attribute'], + 'in_subset': ['samples'], + 'narrow_mappings': ['LOINC:has_modality_type', 'LOINC:has_view_type'], + 'slot_uri': 'biolink:has_attribute_type'} }) + has_quantitative_value: Optional[List[QuantityValue]] = Field(None, description="""connects an attribute to a value""", json_schema_extra = { "linkml_meta": {'alias': 'has_quantitative_value', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_quantitative_value', + 'domain': 'attribute', + 'domain_of': ['attribute'], + 'exact_mappings': ['qud:quantityValue'], + 'in_subset': ['samples'], + 'narrow_mappings': ['SNOMED:has_concentration_strength_numerator_value', + 'SNOMED:has_presentation_strength_denominator_value', + 'SNOMED:has_presentation_strength_numerator_value'], + 'slot_uri': 'biolink:has_quantitative_value'} }) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""", json_schema_extra = { "linkml_meta": {'alias': 'has_qualitative_value', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_qualitative_value', + 'domain': 'attribute', + 'domain_of': ['attribute'], + 'in_subset': ['samples'], + 'slot_uri': 'biolink:has_qualitative_value'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + + +class TaxonomicRank(OntologyClass): + """ + A descriptor for the rank within a taxonomic classification. Example instance: TAXRANK:0000017 (kingdom) + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:TaxonomicRank', + 'definition_uri': 'https://w3id.org/biolink/vocab/TaxonomicRank', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['TAXRANK'], + 'mappings': ['WIKIDATA:Q427626']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + + +class OrganismTaxon(NamedThing): + """ + A classification of a set of organisms. Example instances: NCBITaxon:9606 (Homo sapiens), NCBITaxon:2 (Bacteria). Can also be used to represent strains or subspecies. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['taxon', 'taxonomic classification'], + 'class_uri': 'biolink:OrganismTaxon', + 'definition_uri': 'https://w3id.org/biolink/vocab/OrganismTaxon', + 'exact_mappings': ['WIKIDATA:Q16521', 'STY:T001', 'bioschemas:Taxon'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['NCBITaxon', 'MESH', 'UMLS'], + 'in_subset': ['model_organism_database'], + 'narrow_mappings': ['dcid:BiologicalSpecies'], + 'values_from': ['NCBITaxon']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/OrganismTaxon","biolink:OrganismTaxon"]] = Field(["biolink:OrganismTaxon"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + has_taxonomic_rank: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'has_taxonomic_rank', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_taxonomic_rank', + 'domain': 'named thing', + 'domain_of': ['organism taxon'], + 'is_a': 'node property', + 'mappings': ['WIKIDATA:P105'], + 'slot_uri': 'biolink:has_taxonomic_rank'} }) + + +class InformationContentEntity(NamedThing): + """ + a piece of information that typically describes some topic of discourse or is used as support. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'aliases': ['information', 'information artefact', 'information entity'], + 'class_uri': 'biolink:InformationContentEntity', + 'definition_uri': 'https://w3id.org/biolink/vocab/InformationContentEntity', + 'exact_mappings': ['IAO:0000030'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['doi'], + 'narrow_mappings': ['UMLSSG:CONC', + 'STY:T077', + 'STY:T078', + 'STY:T079', + 'STY:T080', + 'STY:T081', + 'STY:T082', + 'STY:T089', + 'STY:T102', + 'STY:T169', + 'STY:T171', + 'STY:T185']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/InformationContentEntity","biolink:InformationContentEntity"]] = Field(["biolink:InformationContentEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + license: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'license', + 'definition_uri': 'https://w3id.org/biolink/vocab/license', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:license'], + 'is_a': 'node property', + 'narrow_mappings': ['WIKIDATA_PROPERTY:P275'], + 'slot_uri': 'biolink:license'} }) + rights: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'rights', + 'definition_uri': 'https://w3id.org/biolink/vocab/rights', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:rights'], + 'is_a': 'node property', + 'slot_uri': 'biolink:rights'} }) + format: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'format', + 'definition_uri': 'https://w3id.org/biolink/vocab/format', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:format', 'WIKIDATA_PROPERTY:P2701'], + 'is_a': 'node property', + 'slot_uri': 'biolink:format'} }) + creation_date: Optional[date] = Field(None, description="""date on which an entity was created. This can be applied to nodes or edges""", json_schema_extra = { "linkml_meta": {'alias': 'creation_date', + 'aliases': ['publication date'], + 'definition_uri': 'https://w3id.org/biolink/vocab/creation_date', + 'domain': 'named thing', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:createdOn', 'WIKIDATA_PROPERTY:P577'], + 'is_a': 'node property', + 'slot_uri': 'biolink:creation_date'} }) + + +class Dataset(InformationContentEntity): + """ + an item that refers to a collection of data from a data source. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Dataset', + 'definition_uri': 'https://w3id.org/biolink/vocab/Dataset', + 'exact_mappings': ['IAO:0000100', + 'dctypes:Dataset', + 'schema:dataset', + 'dcid:Dataset'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Dataset","biolink:Dataset"]] = Field(["biolink:Dataset"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + license: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'license', + 'definition_uri': 'https://w3id.org/biolink/vocab/license', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:license'], + 'is_a': 'node property', + 'narrow_mappings': ['WIKIDATA_PROPERTY:P275'], + 'slot_uri': 'biolink:license'} }) + rights: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'rights', + 'definition_uri': 'https://w3id.org/biolink/vocab/rights', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:rights'], + 'is_a': 'node property', + 'slot_uri': 'biolink:rights'} }) + format: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'format', + 'definition_uri': 'https://w3id.org/biolink/vocab/format', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:format', 'WIKIDATA_PROPERTY:P2701'], + 'is_a': 'node property', + 'slot_uri': 'biolink:format'} }) + creation_date: Optional[date] = Field(None, description="""date on which an entity was created. This can be applied to nodes or edges""", json_schema_extra = { "linkml_meta": {'alias': 'creation_date', + 'aliases': ['publication date'], + 'definition_uri': 'https://w3id.org/biolink/vocab/creation_date', + 'domain': 'named thing', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:createdOn', 'WIKIDATA_PROPERTY:P577'], + 'is_a': 'node property', + 'slot_uri': 'biolink:creation_date'} }) + + +class PhysicalEssenceOrOccurrent(ConfiguredBaseModel): + """ + Either a physical or processual entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:PhysicalEssenceOrOccurrent', + 'definition_uri': 'https://w3id.org/biolink/vocab/PhysicalEssenceOrOccurrent', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + + pass + + +class PhysicalEssence(PhysicalEssenceOrOccurrent): + """ + Semantic mixin concept. Pertains to entities that have physical properties such as mass, volume, or charge. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:PhysicalEssence', + 'definition_uri': 'https://w3id.org/biolink/vocab/PhysicalEssence', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + + pass + + +class PhysicalEntity(PhysicalEssence, NamedThing): + """ + An entity that has material reality (a.k.a. physical essence). + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:PhysicalEntity', + 'definition_uri': 'https://w3id.org/biolink/vocab/PhysicalEntity', + 'exact_mappings': ['STY:T072'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixins': ['physical essence'], + 'narrow_mappings': ['STY:T073']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/PhysicalEntity","biolink:PhysicalEntity"]] = Field(["biolink:PhysicalEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + + +class Occurrent(PhysicalEssenceOrOccurrent): + """ + A processual entity. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Occurrent', + 'definition_uri': 'https://w3id.org/biolink/vocab/Occurrent', + 'exact_mappings': ['BFO:0000003'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + + pass + + +class ActivityAndBehavior(Occurrent): + """ + Activity or behavior of any independent integral living, organization or mechanical actor in the world + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:ActivityAndBehavior', + 'definition_uri': 'https://w3id.org/biolink/vocab/ActivityAndBehavior', + 'exact_mappings': ['UMLSSG:ACTI'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + + pass + + +class Activity(ActivityAndBehavior, NamedThing): + """ + An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Activity', + 'definition_uri': 'https://w3id.org/biolink/vocab/Activity', + 'exact_mappings': ['prov:Activity', 'NCIT:C43431', 'STY:T052'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixins': ['activity and behavior'], + 'narrow_mappings': ['STY:T056', + 'STY:T057', + 'STY:T064', + 'STY:T066', + 'STY:T062', + 'STY:T065', + 'STY:T058']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Activity","biolink:Activity"]] = Field(["biolink:Activity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + + +class Procedure(ActivityAndBehavior, NamedThing): + """ + A series of actions conducted in a certain order or manner + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Procedure', + 'definition_uri': 'https://w3id.org/biolink/vocab/Procedure', + 'exact_mappings': ['UMLSSG:PROC', 'dcid:MedicalProcedure'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['CPT'], + 'mixins': ['activity and behavior'], + 'narrow_mappings': ['STY:T059', 'STY:T060', 'STY:T061', 'STY:T063']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Procedure","biolink:Procedure"]] = Field(["biolink:Procedure"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + + +class SubjectOfInvestigation(ConfiguredBaseModel): + """ + An entity that has the role of being studied in an investigation, study, or experiment + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:SubjectOfInvestigation', + 'definition_uri': 'https://w3id.org/biolink/vocab/SubjectOfInvestigation', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + + pass + + +class MaterialSample(SubjectOfInvestigation, PhysicalEntity): + """ + A sample is a limited quantity of something (e.g. an individual or set of individuals from a population, or a portion of a substance) to be used for testing, analysis, inspection, investigation, demonstration, or trial use. [SIO] + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['biospecimen', 'sample', 'biosample', 'physical sample'], + 'class_uri': 'biolink:MaterialSample', + 'definition_uri': 'https://w3id.org/biolink/vocab/MaterialSample', + 'exact_mappings': ['OBI:0000747', 'SIO:001050'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['BIOSAMPLE', 'GOLD.META'], + 'mixins': ['subject of investigation']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/MaterialSample","biolink:MaterialSample"]] = Field(["biolink:MaterialSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + + +class ThingWithTaxon(ConfiguredBaseModel): + """ + A mixin that can be used on any entity that can be taxonomically classified. This includes individual organisms; genes, their products and other molecular entities; body parts; biological processes + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:ThingWithTaxon', + 'definition_uri': 'https://w3id.org/biolink/vocab/ThingWithTaxon', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) + + +class BiologicalEntity(ThingWithTaxon, NamedThing): + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'aliases': ['bioentity'], + 'class_uri': 'biolink:BiologicalEntity', + 'definition_uri': 'https://w3id.org/biolink/vocab/BiologicalEntity', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixins': ['thing with taxon'], + 'narrow_mappings': ['WIKIDATA:Q28845870', + 'STY:T050', + 'SIO:010046', + 'STY:T129']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/BiologicalEntity","biolink:BiologicalEntity"]] = Field(["biolink:BiologicalEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) + + +class GenomicEntity(ConfiguredBaseModel): + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:GenomicEntity', + 'definition_uri': 'https://w3id.org/biolink/vocab/GenomicEntity', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'in_subset': ['translator_minimal'], + 'mixin': True, + 'narrow_mappings': ['STY:T028', 'GENO:0000897']}) + + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""", json_schema_extra = { "linkml_meta": {'alias': 'has_biological_sequence', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_biological_sequence', + 'domain': 'named thing', + 'domain_of': ['genomic entity', 'gene', 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:has_biological_sequence'} }) + + +class ChemicalEntityOrGeneOrGeneProduct(ConfiguredBaseModel): + """ + A union of chemical entities and children, and gene or gene product. This mixin is helpful to use when searching across chemical entities that must include genes and their children as chemical entities. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:ChemicalEntityOrGeneOrGeneProduct', + 'definition_uri': 'https://w3id.org/biolink/vocab/ChemicalEntityOrGeneOrGeneProduct', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + + pass + + +class MacromolecularMachineMixin(ConfiguredBaseModel): + """ + A union of gene locus, gene product, and macromolecular complex. These are the basic units of function in a cell. They either carry out individual biological activities, or they encode molecules which do this. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:MacromolecularMachineMixin', + 'definition_uri': 'https://w3id.org/biolink/vocab/MacromolecularMachineMixin', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + + +class GeneOrGeneProduct(MacromolecularMachineMixin): + """ + A union of gene loci or gene products. Frequently an identifier for one will be used as proxy for another + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:GeneOrGeneProduct', + 'definition_uri': 'https://w3id.org/biolink/vocab/GeneOrGeneProduct', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['CHEMBL.TARGET', 'IUPHAR.FAMILY'], + 'mixin': True}) + + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + + +class Gene(GeneOrGeneProduct, ChemicalEntityOrGeneOrGeneProduct, GenomicEntity, BiologicalEntity, PhysicalEssence, OntologyClass): + """ + A region (or regions) that includes all of the sequence elements necessary to encode a functional transcript. A gene locus may include regulatory regions, transcribed regions and/or other functional sequence regions. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'broad_mappings': ['NCIT:C45822'], + 'class_uri': 'biolink:Gene', + 'definition_uri': 'https://w3id.org/biolink/vocab/Gene', + 'exact_mappings': ['SO:0000704', 'SIO:010035', 'WIKIDATA:Q7187', 'dcid:Gene'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['NCBIGene', + 'ENSEMBL', + 'HGNC', + 'MGI', + 'ZFIN', + 'dictyBase', + 'WB', + 'WormBase', + 'FB', + 'RGD', + 'SGD', + 'PomBase', + 'OMIM', + 'KEGG.GENES', + 'UMLS', + 'Xenbase', + 'AspGD', + 'PHARMGKB.GENE'], + 'in_subset': ['translator_minimal', 'model_organism_database'], + 'mixins': ['gene or gene product', + 'genomic entity', + 'chemical entity or gene or gene product', + 'physical essence', + 'ontology class'], + 'narrow_mappings': ['bioschemas:gene']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Gene","biolink:Gene"]] = Field(["biolink:Gene"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) + symbol: Optional[str] = Field(None, description="""Symbol for a particular thing""", json_schema_extra = { "linkml_meta": {'alias': 'symbol', + 'definition_uri': 'https://w3id.org/biolink/vocab/symbol', + 'domain': 'named thing', + 'domain_of': ['gene'], + 'exact_mappings': ['AGRKB:symbol', 'gpi:DB_Object_Symbol'], + 'is_a': 'node property', + 'slot_uri': 'biolink:symbol'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""", json_schema_extra = { "linkml_meta": {'alias': 'has_biological_sequence', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_biological_sequence', + 'domain': 'named thing', + 'domain_of': ['genomic entity', 'gene', 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:has_biological_sequence'} }) + + +class Genome(GenomicEntity, BiologicalEntity, PhysicalEssence, OntologyClass): + """ + A genome is the sum of genetic material within a cell or virion. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Genome', + 'close_mappings': ['dcid:GenomeAssemblyUnit'], + 'definition_uri': 'https://w3id.org/biolink/vocab/Genome', + 'exact_mappings': ['SO:0001026', 'SIO:000984', 'WIKIDATA:Q7020'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'in_subset': ['model_organism_database'], + 'mixins': ['genomic entity', 'physical essence', 'ontology class']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Genome","biolink:Genome"]] = Field(["biolink:Genome"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""", json_schema_extra = { "linkml_meta": {'alias': 'has_biological_sequence', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_biological_sequence', + 'domain': 'named thing', + 'domain_of': ['genomic entity', 'gene', 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:has_biological_sequence'} }) + + +class Checksum(Entity): + """ + Checksum values associated with digital entities. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/bican-core-schema'}) + + checksum_algorithm: Optional[DigestType] = Field(None, description="""The type of cryptographic hash function used to calculate the checksum value.""", json_schema_extra = { "linkml_meta": {'alias': 'checksum_algorithm', 'domain_of': ['checksum']} }) + value: Optional[str] = Field(None, description="""The checksum value obtained from a specific cryotographic hash function.""", json_schema_extra = { "linkml_meta": {'alias': 'value', 'domain_of': ['checksum']} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/Checksum","bican:Checksum"]] = Field(["bican:Checksum"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + + +# Model rebuild +# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model +OntologyClass.model_rebuild() +Annotation.model_rebuild() +QuantityValue.model_rebuild() +Entity.model_rebuild() +NamedThing.model_rebuild() +Attribute.model_rebuild() +TaxonomicRank.model_rebuild() +OrganismTaxon.model_rebuild() +InformationContentEntity.model_rebuild() +Dataset.model_rebuild() +PhysicalEssenceOrOccurrent.model_rebuild() +PhysicalEssence.model_rebuild() +PhysicalEntity.model_rebuild() +Occurrent.model_rebuild() +ActivityAndBehavior.model_rebuild() +Activity.model_rebuild() +Procedure.model_rebuild() +SubjectOfInvestigation.model_rebuild() +MaterialSample.model_rebuild() +ThingWithTaxon.model_rebuild() +BiologicalEntity.model_rebuild() +GenomicEntity.model_rebuild() +ChemicalEntityOrGeneOrGeneProduct.model_rebuild() +MacromolecularMachineMixin.model_rebuild() +GeneOrGeneProduct.model_rebuild() +Gene.model_rebuild() +Genome.model_rebuild() +Checksum.model_rebuild() + diff --git a/models_py-autogen/bican_prov.py b/models_py-autogen/bican_prov.py new file mode 100644 index 00000000..15316139 --- /dev/null +++ b/models_py-autogen/bican_prov.py @@ -0,0 +1,117 @@ +from __future__ import annotations + +import re +import sys +from datetime import ( + date, + datetime, + time +) +from decimal import Decimal +from enum import Enum +from typing import ( + Any, + ClassVar, + Dict, + List, + Literal, + Optional, + Union +) + +from pydantic import ( + BaseModel, + ConfigDict, + Field, + RootModel, + field_validator +) + + +metamodel_version = "None" +version = "None" + + +class ConfiguredBaseModel(BaseModel): + model_config = ConfigDict( + validate_assignment = True, + validate_default = True, + extra = "forbid", + arbitrary_types_allowed = True, + use_enum_values = True, + strict = False, + ) + pass + + + + +class LinkMLMeta(RootModel): + root: Dict[str, Any] = {} + model_config = ConfigDict(frozen=True) + + def __getattr__(self, key:str): + return getattr(self.root, key) + + def __getitem__(self, key:str): + return self.root[key] + + def __setitem__(self, key:str, value): + self.root[key] = value + + def __contains__(self, key:str) -> bool: + return key in self.root + + +linkml_meta = LinkMLMeta({'default_prefix': 'bican', + 'default_range': 'string', + 'description': 'The BICAN Prov schema contains a subset of classes from the ' + 'Prov Data Model (PROV-DM) that are frequently used in BICAN ' + 'schemas.', + 'id': 'https://identifiers.org/brain-bican/genome-prov-schema', + 'imports': ['linkml:types'], + 'name': 'bican-prov-schema', + 'prefixes': {'bican': {'prefix_prefix': 'bican', + 'prefix_reference': 'https://identifiers.org/brain-bican/vocab/'}, + 'linkml': {'prefix_prefix': 'linkml', + 'prefix_reference': 'https://w3id.org/linkml/'}, + 'prov': {'prefix_prefix': 'prov', + 'prefix_reference': 'http://www.w3.org/ns/prov#'}, + 'schema': {'prefix_prefix': 'schema', + 'prefix_reference': 'http://schema.org/'}}, + 'source_file': 'bican_prov.yaml', + 'title': 'BICAN Prov Schema'} ) + + +class ProvActivity(ConfiguredBaseModel): + """ + An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Activity', + 'from_schema': 'https://identifiers.org/brain-bican/genome-prov-schema', + 'mixin': True}) + + used: Optional[str] = Field(None, description="""Usage is the beginning of utilizing an entity by an activity. Before usage, the activity had not begun to utilize this entity and could not have been affected by the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'used', 'domain_of': ['ProvActivity'], 'slot_uri': 'prov:used'} }) + + +class ProvEntity(ConfiguredBaseModel): + """ + An entity is a physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Entity', + 'from_schema': 'https://identifiers.org/brain-bican/genome-prov-schema', + 'mixin': True}) + + was_derived_from: Optional[str] = Field(None, description="""A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'domain_of': ['ProvEntity'], + 'slot_uri': 'prov:wasDerivedFrom'} }) + was_generated_by: Optional[str] = Field(None, description="""Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + + +# Model rebuild +# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model +ProvActivity.model_rebuild() +ProvEntity.model_rebuild() + diff --git a/models_py-autogen/ccn2.py b/models_py-autogen/ccn2.py index cf329a91..ca98338e 100644 --- a/models_py-autogen/ccn2.py +++ b/models_py-autogen/ccn2.py @@ -1,34 +1,32 @@ from __future__ import annotations + +import re +import sys from datetime import ( + date, datetime, - date + time ) from decimal import Decimal from enum import Enum -import re -import sys from typing import ( Any, + ClassVar, + Dict, List, Literal, - Dict, Optional, Union ) -from pydantic.version import VERSION as PYDANTIC_VERSION -if int(PYDANTIC_VERSION[0])>=2: - from pydantic import ( - BaseModel, - ConfigDict, - Field, - field_validator - ) -else: - from pydantic import ( - BaseModel, - Field, - validator - ) + +from pydantic import ( + BaseModel, + ConfigDict, + Field, + RootModel, + field_validator +) + metamodel_version = "None" version = "None" @@ -46,49 +44,162 @@ class ConfiguredBaseModel(BaseModel): pass + + +class LinkMLMeta(RootModel): + root: Dict[str, Any] = {} + model_config = ConfigDict(frozen=True) + + def __getattr__(self, key:str): + return getattr(self.root, key) + + def __getitem__(self, key:str): + return self.root[key] + + def __setitem__(self, key:str, value): + self.root[key] = value + + def __contains__(self, key:str) -> bool: + return key in self.root + + +linkml_meta = LinkMLMeta({'default_prefix': 'ccn2', + 'default_range': 'string', + 'id': 'CCN2', + 'imports': ['linkml:types'], + 'name': 'CCN2', + 'prefixes': {'ccn2': {'prefix_prefix': 'ccn2', + 'prefix_reference': 'https://github.com/brain-bican/CCN2'}, + 'linkml': {'prefix_prefix': 'linkml', + 'prefix_reference': 'https://w3id.org/linkml/'}}, + 'source_file': 'ccn2.yaml'} ) + class Rank(str, Enum): leaf_node = "leaf_node" family = "family" gross = "gross" + class Taxonomy(ConfiguredBaseModel): - cell_set_accession: str = Field(..., description="""Primary identifier of the cell set. This field should be programmatically assigned, not edited.""") - cell_type_name: Optional[str] = Field(None, description="""The primary name/symbol to be used for the (provisional) cell type defined by this cell set. This is left optional, but is strongly encouraged for every node that is linked.""") - parent_cell_set_accession: str = Field(..., description="""The cell set accession of the parent cell set in the taxonomy. This field should be programmatically assigned, not edited.""") - synonyms: Optional[str] = Field(None, description="""A list of alternative names for this cell type. Separate entries with a '|'. Do not use terms with a scope that is much narrower or broader than the cell type being described.""") - synonym_provenance: Optional[str] = Field(None, description="""Each entry in the synonyms field should have a corresponding entry here, either the DOI of a supporting publication (in the form the form doi:10.1126/journal.abj6641) or the editor's ORCID (in the form: ORCID:01243-234-678). Multiple entries should be separated by a '|'.""") - description: Optional[str] = Field(None, description="""Optional free text description of the cluster. This could be particularly useful for describing the properties of cells clustered from techniques that provide data on morphology, function and connectivity, e.g. patch-seq & epi-retro-seq.""") - classifying_ontology_term_id: Optional[str] = Field(None, description="""The ID of an ontology term that classifies the cell type defined by this node.""") - classifying_ontology_term_name: str = Field(..., description="""The name of the ontology term in the classification_id column""") - classification_provenance: str = Field(..., description="""Either the DOI(s) of a supporting publication (in the form the form doi:10.1126/journal.abj6641) or the editor's ORCID (in the form: ORCID:01243-234-678). Multiple entries should be separated by a '|'.""") - classification_comment: Optional[str] = Field(None, description="""A free text comment describing the evidence for this classification.""") - rank: Optional[Rank] = Field(None, description="""Algorithmically generated hierarchical taxonomies can be complex, with many nodes between root and leaf and branches of variable depth. To simplify this for display and discussion it can be useful to assign nodes to a 3 level hierarchy, with leaf nodes at the bottom.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'CCN2', + 'slot_usage': {'cell set accession': {'description': 'Primary identifier of ' + 'the cell set. This ' + 'field should be ' + 'programmatically ' + 'assigned, not edited.', + 'name': 'cell set accession', + 'readonly': 'True', + 'required': True}, + 'cell type name': {'description': 'The primary name/symbol to ' + 'be used for the ' + '(provisional) cell type ' + 'defined by this cell set. ' + 'This is left optional, but ' + 'is strongly encouraged for ' + 'every node that is linked.', + 'name': 'cell type name'}, + 'classification provenance': {'name': 'classification ' + 'provenance', + 'required': True}, + 'classifying ontology term name': {'name': 'classifying ' + 'ontology term name', + 'required': True}, + 'parent cell set accession': {'name': 'parent cell set ' + 'accession', + 'required': True}}}) + + cell_set_accession: str = Field(..., description="""Primary identifier of the cell set. This field should be programmatically assigned, not edited.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_set_accession', + 'domain_of': ['taxonomy', 'cross taxonomy mapping', 'location mapping'], + 'readonly': 'True'} }) + cell_type_name: Optional[str] = Field(None, description="""The primary name/symbol to be used for the (provisional) cell type defined by this cell set. This is left optional, but is strongly encouraged for every node that is linked.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_type_name', + 'aliases': ['primary_cell_type_alias'], + 'domain_of': ['taxonomy', 'cross taxonomy mapping', 'location mapping']} }) + parent_cell_set_accession: str = Field(..., description="""The cell set accession of the parent cell set in the taxonomy. This field should be programmatically assigned, not edited.""", json_schema_extra = { "linkml_meta": {'alias': 'parent_cell_set_accession', 'domain_of': ['taxonomy']} }) + synonyms: Optional[str] = Field(None, description="""A list of alternative names for this cell type. Separate entries with a '|'. Do not use terms with a scope that is much narrower or broader than the cell type being described.""", json_schema_extra = { "linkml_meta": {'alias': 'synonyms', 'domain_of': ['taxonomy']} }) + synonym_provenance: Optional[str] = Field(None, description="""Each entry in the synonyms field should have a corresponding entry here, either the DOI of a supporting publication (in the form the form doi:10.1126/journal.abj6641) or the editor's ORCID (in the form: ORCID:01243-234-678). Multiple entries should be separated by a '|'.""", json_schema_extra = { "linkml_meta": {'alias': 'synonym_provenance', 'domain_of': ['taxonomy']} }) + description: Optional[str] = Field(None, description="""Optional free text description of the cluster. This could be particularly useful for describing the properties of cells clustered from techniques that provide data on morphology, function and connectivity, e.g. patch-seq & epi-retro-seq.""", json_schema_extra = { "linkml_meta": {'alias': 'description', 'domain_of': ['taxonomy']} }) + classifying_ontology_term_id: Optional[str] = Field(None, description="""The ID of an ontology term that classifies the cell type defined by this node.""", json_schema_extra = { "linkml_meta": {'alias': 'classifying_ontology_term_id', 'domain_of': ['taxonomy']} }) + classifying_ontology_term_name: str = Field(..., description="""The name of the ontology term in the classification_id column""", json_schema_extra = { "linkml_meta": {'alias': 'classifying_ontology_term_name', 'domain_of': ['taxonomy']} }) + classification_provenance: str = Field(..., description="""Either the DOI(s) of a supporting publication (in the form the form doi:10.1126/journal.abj6641) or the editor's ORCID (in the form: ORCID:01243-234-678). Multiple entries should be separated by a '|'.""", json_schema_extra = { "linkml_meta": {'alias': 'classification_provenance', 'domain_of': ['taxonomy']} }) + classification_comment: Optional[str] = Field(None, description="""A free text comment describing the evidence for this classification.""", json_schema_extra = { "linkml_meta": {'alias': 'classification_comment', 'domain_of': ['taxonomy']} }) + rank: Optional[Rank] = Field(None, description="""Algorithmically generated hierarchical taxonomies can be complex, with many nodes between root and leaf and branches of variable depth. To simplify this for display and discussion it can be useful to assign nodes to a 3 level hierarchy, with leaf nodes at the bottom.""", json_schema_extra = { "linkml_meta": {'alias': 'rank', 'domain_of': ['taxonomy']} }) class CrossTaxonomyMapping(ConfiguredBaseModel): - cell_set_accession: str = Field(..., description="""Primary identifier for cell set.""") - cell_type_name: str = Field(..., description="""The primary name/symbol to be used for the cell type defined by this cell set.""") - mapped_cell_set_accession: str = Field(..., description="""The accession (ID) of a cell set in a second taxonomy that this cell set maps to.""") - mapped_cell_type_name: str = Field(..., description="""The name of the cell type corresponding to the mapped_cell_set_accession.""") - evidence_comment: str = Field(..., description="""A free text description of the evidence supporting this mapping. If a similarity_score is include, please also include details of how this was calculated.""") - similarity_score: Optional[float] = Field(None, description="""A score recording the similarity between mapped nodes.""", ge=0, le=1) - provenance: Optional[str] = Field(None, description="""ORCID of the person doing the mapping using the syntax ORCID:0123-4567-890. Optionally include supporting publications using DOIs of the form doi:10.1126/journal.abj6641.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'CCN2', + 'slot_usage': {'cell set accession': {'name': 'cell set accession', + 'required': True}, + 'cell type name': {'name': 'cell type name', 'required': True}, + 'evidence comment': {'description': 'A free text description ' + 'of the evidence ' + 'supporting this mapping. ' + 'If a similarity_score is ' + 'include, please also ' + 'include details of how ' + 'this was calculated.', + 'name': 'evidence comment', + 'required': True}, + 'mapped cell set accession': {'name': 'mapped cell set ' + 'accession', + 'required': True}, + 'mapped cell type name': {'name': 'mapped cell type name', + 'required': True}}}) + + cell_set_accession: str = Field(..., description="""Primary identifier for cell set.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_set_accession', + 'domain_of': ['taxonomy', 'cross taxonomy mapping', 'location mapping']} }) + cell_type_name: str = Field(..., description="""The primary name/symbol to be used for the cell type defined by this cell set.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_type_name', + 'aliases': ['primary_cell_type_alias'], + 'domain_of': ['taxonomy', 'cross taxonomy mapping', 'location mapping']} }) + mapped_cell_set_accession: str = Field(..., description="""The accession (ID) of a cell set in a second taxonomy that this cell set maps to.""", json_schema_extra = { "linkml_meta": {'alias': 'mapped_cell_set_accession', 'domain_of': ['cross taxonomy mapping']} }) + mapped_cell_type_name: str = Field(..., description="""The name of the cell type corresponding to the mapped_cell_set_accession.""", json_schema_extra = { "linkml_meta": {'alias': 'mapped_cell_type_name', 'domain_of': ['cross taxonomy mapping']} }) + evidence_comment: str = Field(..., description="""A free text description of the evidence supporting this mapping. If a similarity_score is include, please also include details of how this was calculated.""", json_schema_extra = { "linkml_meta": {'alias': 'evidence_comment', + 'domain_of': ['cross taxonomy mapping', 'location mapping']} }) + similarity_score: Optional[float] = Field(None, description="""A score recording the similarity between mapped nodes.""", ge=0, le=1, json_schema_extra = { "linkml_meta": {'alias': 'similarity_score', 'domain_of': ['cross taxonomy mapping']} }) + provenance: Optional[str] = Field(None, description="""ORCID of the person doing the mapping using the syntax ORCID:0123-4567-890. Optionally include supporting publications using DOIs of the form doi:10.1126/journal.abj6641.""", json_schema_extra = { "linkml_meta": {'alias': 'provenance', + 'domain_of': ['cross taxonomy mapping', 'location mapping']} }) class LocationMapping(ConfiguredBaseModel): - cell_set_accession: str = Field(..., description="""Primary identifier for cell set.""") - cell_type_name: str = Field(..., description="""The primary name/symbol to be used for the cell type defined by this cell set.""") - location_ontology_term_id: str = Field(..., description="""The ID of an ontology term that refers to a brain region that this cell type is located in. Ideally this should be the ID of a term defined as a region in a standard atlas.""") - location_ontology_term_name: str = Field(..., description="""Name of the term whose ID is recorded in the ontology_term_id field.""") - evidence_comment: Optional[str] = Field(None, description="""A comment describing the evidence for this location mapping""") - supporting_data: Optional[str] = Field(None, description="""A link to data supporting this location mapping.""") - provenance: str = Field(..., description="""ORCID of the person doing the mapping using the syntax ORCID:0123-4567-890. Optionally include supporting publications using DOIs of the form doi:10.1126/journal.abj6641.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'CCN2', + 'slot_usage': {'cell set accession': {'name': 'cell set accession', + 'required': True}, + 'cell type name': {'name': 'cell type name', 'required': True}, + 'evidence comment': {'description': 'A comment describing the ' + 'evidence for this ' + 'location mapping', + 'name': 'evidence comment'}, + 'location ontology term id': {'name': 'location ontology term ' + 'id', + 'required': True}, + 'location ontology term name': {'name': 'location ontology ' + 'term name', + 'required': True}, + 'provenance': {'name': 'provenance', 'required': True}}}) + + cell_set_accession: str = Field(..., description="""Primary identifier for cell set.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_set_accession', + 'domain_of': ['taxonomy', 'cross taxonomy mapping', 'location mapping']} }) + cell_type_name: str = Field(..., description="""The primary name/symbol to be used for the cell type defined by this cell set.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_type_name', + 'aliases': ['primary_cell_type_alias'], + 'domain_of': ['taxonomy', 'cross taxonomy mapping', 'location mapping']} }) + location_ontology_term_id: str = Field(..., description="""The ID of an ontology term that refers to a brain region that this cell type is located in. Ideally this should be the ID of a term defined as a region in a standard atlas.""", json_schema_extra = { "linkml_meta": {'alias': 'location_ontology_term_id', 'domain_of': ['location mapping']} }) + location_ontology_term_name: str = Field(..., description="""Name of the term whose ID is recorded in the ontology_term_id field.""", json_schema_extra = { "linkml_meta": {'alias': 'location_ontology_term_name', 'domain_of': ['location mapping']} }) + evidence_comment: Optional[str] = Field(None, description="""A comment describing the evidence for this location mapping""", json_schema_extra = { "linkml_meta": {'alias': 'evidence_comment', + 'domain_of': ['cross taxonomy mapping', 'location mapping']} }) + supporting_data: Optional[str] = Field(None, description="""A link to data supporting this location mapping.""", json_schema_extra = { "linkml_meta": {'alias': 'supporting_data', 'domain_of': ['location mapping']} }) + provenance: str = Field(..., description="""ORCID of the person doing the mapping using the syntax ORCID:0123-4567-890. Optionally include supporting publications using DOIs of the form doi:10.1126/journal.abj6641.""", json_schema_extra = { "linkml_meta": {'alias': 'provenance', + 'domain_of': ['cross taxonomy mapping', 'location mapping']} }) class CellSetAccessionToCellMapping(ConfiguredBaseModel): - sample: str = Field(..., description="""Cell sample identifier.""") - cell_accessions: List[str] = Field(..., description="""List of cell set accession identifiers.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'CCN2', + 'slot_usage': {'cell accessions': {'name': 'cell accessions', + 'required': True}, + 'sample': {'name': 'sample', 'required': True}}}) + + sample: str = Field(..., description="""Cell sample identifier.""", json_schema_extra = { "linkml_meta": {'alias': 'sample', 'domain_of': ['cell set accession to cell mapping']} }) + cell_accessions: List[str] = Field(..., description="""List of cell set accession identifiers.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_accessions', + 'domain_of': ['cell set accession to cell mapping']} }) # Model rebuild diff --git a/models_py-autogen/figure1.py b/models_py-autogen/figure1.py index e3ca9dd0..de46b427 100644 --- a/models_py-autogen/figure1.py +++ b/models_py-autogen/figure1.py @@ -1,34 +1,32 @@ from __future__ import annotations + +import re +import sys from datetime import ( + date, datetime, - date + time ) from decimal import Decimal from enum import Enum -import re -import sys from typing import ( Any, + ClassVar, + Dict, List, Literal, - Dict, Optional, Union ) -from pydantic.version import VERSION as PYDANTIC_VERSION -if int(PYDANTIC_VERSION[0])>=2: - from pydantic import ( - BaseModel, - ConfigDict, - Field, - field_validator - ) -else: - from pydantic import ( - BaseModel, - Field, - validator - ) + +from pydantic import ( + BaseModel, + ConfigDict, + Field, + RootModel, + field_validator +) + metamodel_version = "None" version = "None" @@ -46,6 +44,34 @@ class ConfiguredBaseModel(BaseModel): pass + + +class LinkMLMeta(RootModel): + root: Dict[str, Any] = {} + model_config = ConfigDict(frozen=True) + + def __getattr__(self, key:str): + return getattr(self.root, key) + + def __getitem__(self, key:str): + return self.root[key] + + def __setitem__(self, key:str, value): + self.root[key] = value + + def __contains__(self, key:str) -> bool: + return key in self.root + + +linkml_meta = LinkMLMeta({'default_prefix': 'https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1/', + 'default_range': 'string', + 'id': 'https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1', + 'imports': ['linkml:types'], + 'name': 'figure1', + 'prefixes': {'linkml': {'prefix_prefix': 'linkml', + 'prefix_reference': 'https://w3id.org/linkml/'}}, + 'source_file': 'figure1.yaml'} ) + class CellCategory(str, Enum): NEURON = "NEURON" OTHER_IMN = "OTHER_IMN" @@ -96,71 +122,97 @@ class GroupRelationshipType(str, Enum): MEMBER_OF = "MEMBER_OF" + class NamedThing(ConfiguredBaseModel): - id: str = Field(...) - label: Optional[str] = Field(None) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1'}) + + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + label: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'label', 'domain_of': ['NamedThing']} }) class CellClass(NamedThing): """ Class division in Figure 1, also found in Supplementary Materials: Table 7 """ - category: CellCategory = Field(...) - has_hierarchical_relationships: Optional[List[HierarchicalRelationship]] = Field(default_factory=list) - id: str = Field(...) - label: Optional[str] = Field(None) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1'}) + + category: CellCategory = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'category', 'domain_of': ['CellClass']} }) + has_hierarchical_relationships: Optional[List[HierarchicalRelationship]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'has_hierarchical_relationships', + 'domain_of': ['CellClass', 'CellSubclass', 'Cluster']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + label: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'label', 'domain_of': ['NamedThing']} }) class CellSubclass(NamedThing): """ Subclass division in Figure 1 """ - has_hierarchical_relationships: Optional[List[HierarchicalRelationship]] = Field(default_factory=list) - division: Optional[Division] = Field(None) - nt_type: Optional[NTType] = Field(None) - id: str = Field(...) - label: Optional[str] = Field(None) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1'}) + + has_hierarchical_relationships: Optional[List[HierarchicalRelationship]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'has_hierarchical_relationships', + 'domain_of': ['CellClass', 'CellSubclass', 'Cluster']} }) + division: Optional[Division] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'division', 'domain_of': ['CellSubclass']} }) + nt_type: Optional[NTType] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'nt_type', 'domain_of': ['CellSubclass']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + label: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'label', 'domain_of': ['NamedThing']} }) class Cluster(NamedThing): """ Cluster in Supplementary Materials: Table 7 """ - has_hierarchical_relationships: Optional[List[HierarchicalRelationship]] = Field(default_factory=list) - has_group_relationships: Optional[List[GroupRelationship]] = Field(default_factory=list) - id: str = Field(...) - label: Optional[str] = Field(None) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1'}) + + has_hierarchical_relationships: Optional[List[HierarchicalRelationship]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'has_hierarchical_relationships', + 'domain_of': ['CellClass', 'CellSubclass', 'Cluster']} }) + has_group_relationships: Optional[List[GroupRelationship]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'has_group_relationships', 'domain_of': ['Cluster', 'Cell']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + label: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'label', 'domain_of': ['NamedThing']} }) class Cell(NamedThing): """ Cell, a member of a cluster """ - has_group_relationships: Optional[List[GroupRelationship]] = Field(default_factory=list) - broad_region: Optional[BroadRegion] = Field(None) - id: str = Field(...) - label: Optional[str] = Field(None) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1'}) + + has_group_relationships: Optional[List[GroupRelationship]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'has_group_relationships', 'domain_of': ['Cluster', 'Cell']} }) + broad_region: Optional[BroadRegion] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'broad_region', 'domain_of': ['Cell']} }) + id: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'id', 'domain_of': ['NamedThing']} }) + label: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'label', 'domain_of': ['NamedThing']} }) class Relationship(ConfiguredBaseModel): - related_to: str = Field(...) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'from_schema': 'https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1'}) + + related_to: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'related_to', 'domain_of': ['Relationship']} }) class HierarchicalRelationship(Relationship): - relationship_type: Optional[HierarchicalRelationshipType] = Field(None) - related_to: str = Field(...) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1'}) + + relationship_type: Optional[HierarchicalRelationshipType] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'relationship_type', + 'domain_of': ['HierarchicalRelationship', 'GroupRelationship']} }) + related_to: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'related_to', 'domain_of': ['Relationship']} }) class GroupRelationship(Relationship): - relationship_type: Optional[GroupRelationshipType] = Field(None) - related_to: str = Field(...) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1'}) + + relationship_type: Optional[GroupRelationshipType] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'relationship_type', + 'domain_of': ['HierarchicalRelationship', 'GroupRelationship']} }) + related_to: str = Field(..., json_schema_extra = { "linkml_meta": {'alias': 'related_to', 'domain_of': ['Relationship']} }) class Container(ConfiguredBaseModel): - subclasses: Optional[List[CellSubclass]] = Field(default_factory=list) - classes: Optional[List[CellClass]] = Field(default_factory=list) - cells: Optional[List[Cell]] = Field(default_factory=list) - clusters: Optional[List[Cluster]] = Field(default_factory=list) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://www.biorxiv.org/content/10.1101/2023.01.22.525049v1', + 'tree_root': True}) + + subclasses: Optional[List[CellSubclass]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'subclasses', 'domain_of': ['Container']} }) + classes: Optional[List[CellClass]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'classes', 'domain_of': ['Container']} }) + cells: Optional[List[Cell]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'cells', 'domain_of': ['Container']} }) + clusters: Optional[List[Cluster]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'clusters', 'domain_of': ['Container']} }) # Model rebuild diff --git a/models_py-autogen/genome_annotation.py b/models_py-autogen/genome_annotation.py index a10acbc4..ffa56b23 100644 --- a/models_py-autogen/genome_annotation.py +++ b/models_py-autogen/genome_annotation.py @@ -1,34 +1,32 @@ from __future__ import annotations + +import re +import sys from datetime import ( + date, datetime, - date + time ) from decimal import Decimal from enum import Enum -import re -import sys from typing import ( Any, + ClassVar, + Dict, List, Literal, - Dict, Optional, Union ) -from pydantic.version import VERSION as PYDANTIC_VERSION -if int(PYDANTIC_VERSION[0])>=2: - from pydantic import ( - BaseModel, - ConfigDict, - Field, - field_validator - ) -else: - from pydantic import ( - BaseModel, - Field, - validator - ) + +from pydantic import ( + BaseModel, + ConfigDict, + Field, + RootModel, + field_validator +) + metamodel_version = "None" version = "None" @@ -46,6 +44,45 @@ class ConfiguredBaseModel(BaseModel): pass + + +class LinkMLMeta(RootModel): + root: Dict[str, Any] = {} + model_config = ConfigDict(frozen=True) + + def __getattr__(self, key:str): + return getattr(self.root, key) + + def __getitem__(self, key:str): + return self.root[key] + + def __setitem__(self, key:str, value): + self.root[key] = value + + def __contains__(self, key:str) -> bool: + return key in self.root + + +linkml_meta = LinkMLMeta({'default_prefix': 'bican', + 'default_range': 'string', + 'description': 'The Genome Annotation schema is designed to represent types ' + "and relationships of an organism's annotated genome.", + 'id': 'https://identifiers.org/brain-bican/genome-annotation-schema', + 'imports': ['linkml:types', 'bican_biolink', 'bican_core'], + 'name': 'genome-annotation-schema', + 'prefixes': {'NCBIAssembly': {'prefix_prefix': 'NCBIAssembly', + 'prefix_reference': 'https://www.ncbi.nlm.nih.gov/assembly/'}, + 'bican': {'prefix_prefix': 'bican', + 'prefix_reference': 'https://identifiers.org/brain-bican/vocab/'}, + 'linkml': {'prefix_prefix': 'linkml', + 'prefix_reference': 'https://w3id.org/linkml/'}, + 'ncbi': {'prefix_prefix': 'ncbi', + 'prefix_reference': 'https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id='}, + 'schema': {'prefix_prefix': 'schema', + 'prefix_reference': 'http://schema.org/'}}, + 'source_file': 'genome_annotation.yaml', + 'title': 'Genome Annotation Schema'} ) + class DigestType(str, Enum): SHA1 = "spdx:checksumAlgorithm_sha1" MD5 = "spdx:checksumAlgorithm_md5" @@ -62,17 +99,65 @@ class AuthorityType(str, Enum): NCBI = "NCBI" + class OntologyClass(ConfiguredBaseModel): """ a concept or class in an ontology, vocabulary or thesaurus. Note that nodes in a biolink compatible KG can be considered both instances of biolink classes, and OWL classes in their own right. In general you should not need to use this class directly. Instead, use the appropriate biolink class. For example, for the GO concept of endocytosis (GO:0006897), use bl:BiologicalProcess as the type. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:OntologyClass', + 'comments': ["This is modeled as a mixin. 'ontology class' should not be the " + 'primary type of a node in the KG. Instead you should use an ' + 'informative bioloink category, such as AnatomicalEntity (for ' + 'Uberon classes), ChemicalSubstance (for CHEBI or CHEMBL), etc', + 'Note that formally this is a metaclass. Instances of this class ' + "are instances in the graph, but can be the object of 'type' " + 'edges. For example, if we had a node in the graph representing ' + 'a specific brain of a specific patient (e.g brain001), this ' + 'could have a category of bl:Sample, and by typed more ' + 'specifically with an ontology class UBERON:nnn, which has as ' + 'category bl:AnatomicalEntity'], + 'definition_uri': 'https://w3id.org/biolink/vocab/OntologyClass', + 'exact_mappings': ['owl:Class', 'schema:Class'], + 'examples': [{'description': "the class 'brain' from the Uberon anatomy " + 'ontology', + 'value': 'UBERON:0000955'}], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['MESH', 'UMLS', 'KEGG.BRITE'], + 'mixin': True, + 'see_also': ['https://github.com/biolink/biolink-model/issues/486']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) class Annotation(ConfiguredBaseModel): """ Biolink Model root class for entity annotations. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'class_uri': 'biolink:Annotation', + 'definition_uri': 'https://w3id.org/biolink/vocab/Annotation', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + pass @@ -80,138 +165,2073 @@ class QuantityValue(Annotation): """ A value of an attribute that is quantitative and measurable, expressed as a combination of a unit and a numeric value """ - has_unit: Optional[str] = Field(None, description="""connects a quantity value to a unit""") - has_numeric_value: Optional[float] = Field(None, description="""connects a quantity value to a number""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:QuantityValue', + 'definition_uri': 'https://w3id.org/biolink/vocab/QuantityValue', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + has_unit: Optional[str] = Field(None, description="""connects a quantity value to a unit""", json_schema_extra = { "linkml_meta": {'alias': 'has_unit', + 'close_mappings': ['EFO:0001697', 'UO-PROPERTY:is_unit_of'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_unit', + 'domain': 'quantity value', + 'domain_of': ['quantity value'], + 'exact_mappings': ['qud:unit', 'IAO:0000039'], + 'in_subset': ['samples'], + 'narrow_mappings': ['SNOMED:has_concentration_strength_denominator_unit', + 'SNOMED:has_concentration_strength_numerator_unit', + 'SNOMED:has_presentation_strength_denominator_unit', + 'SNOMED:has_presentation_strength_numerator_unit', + 'SNOMED:has_unit_of_presentation'], + 'slot_uri': 'biolink:has_unit'} }) + has_numeric_value: Optional[float] = Field(None, description="""connects a quantity value to a number""", json_schema_extra = { "linkml_meta": {'alias': 'has_numeric_value', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_numeric_value', + 'domain': 'quantity value', + 'domain_of': ['quantity value'], + 'exact_mappings': ['qud:quantityValue'], + 'in_subset': ['samples'], + 'slot_uri': 'biolink:has_numeric_value'} }) class Entity(ConfiguredBaseModel): """ Root Biolink Model class for all things and informational relationships, real or imagined. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/Entity","biolink:Entity"]] = Field(["biolink:Entity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'class_uri': 'biolink:Entity', + 'definition_uri': 'https://w3id.org/biolink/vocab/Entity', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Entity","biolink:Entity"]] = Field(["biolink:Entity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) class NamedThing(Entity): """ a databased entity or concept/class """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/NamedThing","biolink:NamedThing"]] = Field(["biolink:NamedThing"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:NamedThing', + 'definition_uri': 'https://w3id.org/biolink/vocab/NamedThing', + 'exact_mappings': ['BFO:0000001', + 'WIKIDATA:Q35120', + 'UMLSSG:OBJC', + 'STY:T071', + 'dcid:Thing'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/NamedThing","biolink:NamedThing"]] = Field(["biolink:NamedThing"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) class Attribute(NamedThing, OntologyClass): """ A property or characteristic of an entity. For example, an apple may have properties such as color, shape, age, crispiness. An environmental sample may have attributes such as depth, lat, long, material. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - category: List[Literal["https://w3id.org/biolink/vocab/Attribute","biolink:Attribute"]] = Field(["biolink:Attribute"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - attribute_name: Optional[str] = Field(None, description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""") - has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") - has_quantitative_value: Optional[List[QuantityValue]] = Field(None, description="""connects an attribute to a value""") - has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - name: Optional[str] = Field(None, description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Attribute', + 'definition_uri': 'https://w3id.org/biolink/vocab/Attribute', + 'exact_mappings': ['SIO:000614'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['EDAM-DATA', 'EDAM-FORMAT', 'EDAM-OPERATION', 'EDAM-TOPIC'], + 'in_subset': ['samples'], + 'mixins': ['ontology class'], + 'slot_usage': {'name': {'description': "The human-readable 'attribute name' " + 'can be set to a string which reflects ' + 'its context of interpretation, e.g. ' + 'SEPIO evidence/provenance/confidence ' + 'annotation or it can default to the ' + "name associated with the 'has " + "attribute type' slot ontology term.", + 'name': 'name'}}}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Attribute","biolink:Attribute"]] = Field(["biolink:Attribute"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + name: Optional[str] = Field(None, description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute_type', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute_type', + 'domain': 'attribute', + 'domain_of': ['attribute'], + 'in_subset': ['samples'], + 'narrow_mappings': ['LOINC:has_modality_type', 'LOINC:has_view_type'], + 'slot_uri': 'biolink:has_attribute_type'} }) + has_quantitative_value: Optional[List[QuantityValue]] = Field(None, description="""connects an attribute to a value""", json_schema_extra = { "linkml_meta": {'alias': 'has_quantitative_value', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_quantitative_value', + 'domain': 'attribute', + 'domain_of': ['attribute'], + 'exact_mappings': ['qud:quantityValue'], + 'in_subset': ['samples'], + 'narrow_mappings': ['SNOMED:has_concentration_strength_numerator_value', + 'SNOMED:has_presentation_strength_denominator_value', + 'SNOMED:has_presentation_strength_numerator_value'], + 'slot_uri': 'biolink:has_quantitative_value'} }) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""", json_schema_extra = { "linkml_meta": {'alias': 'has_qualitative_value', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_qualitative_value', + 'domain': 'attribute', + 'domain_of': ['attribute'], + 'in_subset': ['samples'], + 'slot_uri': 'biolink:has_qualitative_value'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) class TaxonomicRank(OntologyClass): """ A descriptor for the rank within a taxonomic classification. Example instance: TAXRANK:0000017 (kingdom) """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:TaxonomicRank', + 'definition_uri': 'https://w3id.org/biolink/vocab/TaxonomicRank', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['TAXRANK'], + 'mappings': ['WIKIDATA:Q427626']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) class OrganismTaxon(NamedThing): """ A classification of a set of organisms. Example instances: NCBITaxon:9606 (Homo sapiens), NCBITaxon:2 (Bacteria). Can also be used to represent strains or subspecies. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/OrganismTaxon","biolink:OrganismTaxon"]] = Field(["biolink:OrganismTaxon"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - has_taxonomic_rank: Optional[str] = Field(None) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['taxon', 'taxonomic classification'], + 'class_uri': 'biolink:OrganismTaxon', + 'definition_uri': 'https://w3id.org/biolink/vocab/OrganismTaxon', + 'exact_mappings': ['WIKIDATA:Q16521', 'STY:T001', 'bioschemas:Taxon'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['NCBITaxon', 'MESH', 'UMLS'], + 'in_subset': ['model_organism_database'], + 'narrow_mappings': ['dcid:BiologicalSpecies'], + 'values_from': ['NCBITaxon']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/OrganismTaxon","biolink:OrganismTaxon"]] = Field(["biolink:OrganismTaxon"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + has_taxonomic_rank: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'has_taxonomic_rank', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_taxonomic_rank', + 'domain': 'named thing', + 'domain_of': ['organism taxon'], + 'is_a': 'node property', + 'mappings': ['WIKIDATA:P105'], + 'slot_uri': 'biolink:has_taxonomic_rank'} }) class InformationContentEntity(NamedThing): """ a piece of information that typically describes some topic of discourse or is used as support. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/InformationContentEntity","biolink:InformationContentEntity"]] = Field(["biolink:InformationContentEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - license: Optional[str] = Field(None) - rights: Optional[str] = Field(None) - format: Optional[str] = Field(None) - creation_date: Optional[date] = Field(None, description="""date on which an entity was created. This can be applied to nodes or edges""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'aliases': ['information', 'information artefact', 'information entity'], + 'class_uri': 'biolink:InformationContentEntity', + 'definition_uri': 'https://w3id.org/biolink/vocab/InformationContentEntity', + 'exact_mappings': ['IAO:0000030'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['doi'], + 'narrow_mappings': ['UMLSSG:CONC', + 'STY:T077', + 'STY:T078', + 'STY:T079', + 'STY:T080', + 'STY:T081', + 'STY:T082', + 'STY:T089', + 'STY:T102', + 'STY:T169', + 'STY:T171', + 'STY:T185']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/InformationContentEntity","biolink:InformationContentEntity"]] = Field(["biolink:InformationContentEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + license: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'license', + 'definition_uri': 'https://w3id.org/biolink/vocab/license', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:license'], + 'is_a': 'node property', + 'narrow_mappings': ['WIKIDATA_PROPERTY:P275'], + 'slot_uri': 'biolink:license'} }) + rights: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'rights', + 'definition_uri': 'https://w3id.org/biolink/vocab/rights', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:rights'], + 'is_a': 'node property', + 'slot_uri': 'biolink:rights'} }) + format: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'format', + 'definition_uri': 'https://w3id.org/biolink/vocab/format', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:format', 'WIKIDATA_PROPERTY:P2701'], + 'is_a': 'node property', + 'slot_uri': 'biolink:format'} }) + creation_date: Optional[date] = Field(None, description="""date on which an entity was created. This can be applied to nodes or edges""", json_schema_extra = { "linkml_meta": {'alias': 'creation_date', + 'aliases': ['publication date'], + 'definition_uri': 'https://w3id.org/biolink/vocab/creation_date', + 'domain': 'named thing', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:createdOn', 'WIKIDATA_PROPERTY:P577'], + 'is_a': 'node property', + 'slot_uri': 'biolink:creation_date'} }) class Dataset(InformationContentEntity): """ an item that refers to a collection of data from a data source. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/Dataset","biolink:Dataset"]] = Field(["biolink:Dataset"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - license: Optional[str] = Field(None) - rights: Optional[str] = Field(None) - format: Optional[str] = Field(None) - creation_date: Optional[date] = Field(None, description="""date on which an entity was created. This can be applied to nodes or edges""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Dataset', + 'definition_uri': 'https://w3id.org/biolink/vocab/Dataset', + 'exact_mappings': ['IAO:0000100', + 'dctypes:Dataset', + 'schema:dataset', + 'dcid:Dataset'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Dataset","biolink:Dataset"]] = Field(["biolink:Dataset"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + license: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'license', + 'definition_uri': 'https://w3id.org/biolink/vocab/license', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:license'], + 'is_a': 'node property', + 'narrow_mappings': ['WIKIDATA_PROPERTY:P275'], + 'slot_uri': 'biolink:license'} }) + rights: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'rights', + 'definition_uri': 'https://w3id.org/biolink/vocab/rights', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:rights'], + 'is_a': 'node property', + 'slot_uri': 'biolink:rights'} }) + format: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'format', + 'definition_uri': 'https://w3id.org/biolink/vocab/format', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:format', 'WIKIDATA_PROPERTY:P2701'], + 'is_a': 'node property', + 'slot_uri': 'biolink:format'} }) + creation_date: Optional[date] = Field(None, description="""date on which an entity was created. This can be applied to nodes or edges""", json_schema_extra = { "linkml_meta": {'alias': 'creation_date', + 'aliases': ['publication date'], + 'definition_uri': 'https://w3id.org/biolink/vocab/creation_date', + 'domain': 'named thing', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:createdOn', 'WIKIDATA_PROPERTY:P577'], + 'is_a': 'node property', + 'slot_uri': 'biolink:creation_date'} }) class PhysicalEssenceOrOccurrent(ConfiguredBaseModel): """ Either a physical or processual entity. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:PhysicalEssenceOrOccurrent', + 'definition_uri': 'https://w3id.org/biolink/vocab/PhysicalEssenceOrOccurrent', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + pass @@ -219,6 +2239,11 @@ class PhysicalEssence(PhysicalEssenceOrOccurrent): """ Semantic mixin concept. Pertains to entities that have physical properties such as mass, volume, or charge. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:PhysicalEssence', + 'definition_uri': 'https://w3id.org/biolink/vocab/PhysicalEssence', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + pass @@ -226,24 +2251,339 @@ class PhysicalEntity(PhysicalEssence, NamedThing): """ An entity that has material reality (a.k.a. physical essence). """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/PhysicalEntity","biolink:PhysicalEntity"]] = Field(["biolink:PhysicalEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:PhysicalEntity', + 'definition_uri': 'https://w3id.org/biolink/vocab/PhysicalEntity', + 'exact_mappings': ['STY:T072'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixins': ['physical essence'], + 'narrow_mappings': ['STY:T073']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/PhysicalEntity","biolink:PhysicalEntity"]] = Field(["biolink:PhysicalEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) class Occurrent(PhysicalEssenceOrOccurrent): """ A processual entity. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Occurrent', + 'definition_uri': 'https://w3id.org/biolink/vocab/Occurrent', + 'exact_mappings': ['BFO:0000003'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + pass @@ -251,6 +2591,12 @@ class ActivityAndBehavior(Occurrent): """ Activity or behavior of any independent integral living, organization or mechanical actor in the world """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:ActivityAndBehavior', + 'definition_uri': 'https://w3id.org/biolink/vocab/ActivityAndBehavior', + 'exact_mappings': ['UMLSSG:ACTI'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + pass @@ -258,42 +2604,672 @@ class Activity(ActivityAndBehavior, NamedThing): """ An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/Activity","biolink:Activity"]] = Field(["biolink:Activity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Activity', + 'definition_uri': 'https://w3id.org/biolink/vocab/Activity', + 'exact_mappings': ['prov:Activity', 'NCIT:C43431', 'STY:T052'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixins': ['activity and behavior'], + 'narrow_mappings': ['STY:T056', + 'STY:T057', + 'STY:T064', + 'STY:T066', + 'STY:T062', + 'STY:T065', + 'STY:T058']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Activity","biolink:Activity"]] = Field(["biolink:Activity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) class Procedure(ActivityAndBehavior, NamedThing): """ A series of actions conducted in a certain order or manner """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/Procedure","biolink:Procedure"]] = Field(["biolink:Procedure"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Procedure', + 'definition_uri': 'https://w3id.org/biolink/vocab/Procedure', + 'exact_mappings': ['UMLSSG:PROC', 'dcid:MedicalProcedure'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['CPT'], + 'mixins': ['activity and behavior'], + 'narrow_mappings': ['STY:T059', 'STY:T060', 'STY:T061', 'STY:T063']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Procedure","biolink:Procedure"]] = Field(["biolink:Procedure"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) class SubjectOfInvestigation(ConfiguredBaseModel): """ An entity that has the role of being studied in an investigation, study, or experiment """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:SubjectOfInvestigation', + 'definition_uri': 'https://w3id.org/biolink/vocab/SubjectOfInvestigation', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + pass @@ -301,53 +3277,746 @@ class MaterialSample(SubjectOfInvestigation, PhysicalEntity): """ A sample is a limited quantity of something (e.g. an individual or set of individuals from a population, or a portion of a substance) to be used for testing, analysis, inspection, investigation, demonstration, or trial use. [SIO] """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/MaterialSample","biolink:MaterialSample"]] = Field(["biolink:MaterialSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['biospecimen', 'sample', 'biosample', 'physical sample'], + 'class_uri': 'biolink:MaterialSample', + 'definition_uri': 'https://w3id.org/biolink/vocab/MaterialSample', + 'exact_mappings': ['OBI:0000747', 'SIO:001050'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['BIOSAMPLE', 'GOLD.META'], + 'mixins': ['subject of investigation']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/MaterialSample","biolink:MaterialSample"]] = Field(["biolink:MaterialSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) class ThingWithTaxon(ConfiguredBaseModel): """ A mixin that can be used on any entity that can be taxonomically classified. This includes individual organisms; genes, their products and other molecular entities; body parts; biological processes """ - in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""") - in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:ThingWithTaxon', + 'definition_uri': 'https://w3id.org/biolink/vocab/ThingWithTaxon', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) class BiologicalEntity(ThingWithTaxon, NamedThing): - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/BiologicalEntity","biolink:BiologicalEntity"]] = Field(["biolink:BiologicalEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""") - in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'aliases': ['bioentity'], + 'class_uri': 'biolink:BiologicalEntity', + 'definition_uri': 'https://w3id.org/biolink/vocab/BiologicalEntity', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixins': ['thing with taxon'], + 'narrow_mappings': ['WIKIDATA:Q28845870', + 'STY:T050', + 'SIO:010046', + 'STY:T129']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/BiologicalEntity","biolink:BiologicalEntity"]] = Field(["biolink:BiologicalEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) class GenomicEntity(ConfiguredBaseModel): - has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:GenomicEntity', + 'definition_uri': 'https://w3id.org/biolink/vocab/GenomicEntity', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'in_subset': ['translator_minimal'], + 'mixin': True, + 'narrow_mappings': ['STY:T028', 'GENO:0000897']}) + + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""", json_schema_extra = { "linkml_meta": {'alias': 'has_biological_sequence', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_biological_sequence', + 'domain': 'named thing', + 'domain_of': ['genomic entity', 'gene', 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:has_biological_sequence'} }) class ChemicalEntityOrGeneOrGeneProduct(ConfiguredBaseModel): """ A union of chemical entities and children, and gene or gene product. This mixin is helpful to use when searching across chemical entities that must include genes and their children as chemical entities. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:ChemicalEntityOrGeneOrGeneProduct', + 'definition_uri': 'https://w3id.org/biolink/vocab/ChemicalEntityOrGeneOrGeneProduct', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + pass @@ -355,152 +4024,2174 @@ class MacromolecularMachineMixin(ConfiguredBaseModel): """ A union of gene locus, gene product, and macromolecular complex. These are the basic units of function in a cell. They either carry out individual biological activities, or they encode molecules which do this. """ - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:MacromolecularMachineMixin', + 'definition_uri': 'https://w3id.org/biolink/vocab/MacromolecularMachineMixin', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) class GeneOrGeneProduct(MacromolecularMachineMixin): """ A union of gene loci or gene products. Frequently an identifier for one will be used as proxy for another """ - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:GeneOrGeneProduct', + 'definition_uri': 'https://w3id.org/biolink/vocab/GeneOrGeneProduct', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['CHEMBL.TARGET', 'IUPHAR.FAMILY'], + 'mixin': True}) + + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) class Gene(GeneOrGeneProduct, ChemicalEntityOrGeneOrGeneProduct, GenomicEntity, BiologicalEntity, PhysicalEssence, OntologyClass): """ A region (or regions) that includes all of the sequence elements necessary to encode a functional transcript. A gene locus may include regulatory regions, transcribed regions and/or other functional sequence regions. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/Gene","biolink:Gene"]] = Field(["biolink:Gene"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""") - in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""") - symbol: Optional[str] = Field(None, description="""Symbol for a particular thing""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'broad_mappings': ['NCIT:C45822'], + 'class_uri': 'biolink:Gene', + 'definition_uri': 'https://w3id.org/biolink/vocab/Gene', + 'exact_mappings': ['SO:0000704', 'SIO:010035', 'WIKIDATA:Q7187', 'dcid:Gene'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['NCBIGene', + 'ENSEMBL', + 'HGNC', + 'MGI', + 'ZFIN', + 'dictyBase', + 'WB', + 'WormBase', + 'FB', + 'RGD', + 'SGD', + 'PomBase', + 'OMIM', + 'KEGG.GENES', + 'UMLS', + 'Xenbase', + 'AspGD', + 'PHARMGKB.GENE'], + 'in_subset': ['translator_minimal', 'model_organism_database'], + 'mixins': ['gene or gene product', + 'genomic entity', + 'chemical entity or gene or gene product', + 'physical essence', + 'ontology class'], + 'narrow_mappings': ['bioschemas:gene']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Gene","biolink:Gene"]] = Field(["biolink:Gene"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) + symbol: Optional[str] = Field(None, description="""Symbol for a particular thing""", json_schema_extra = { "linkml_meta": {'alias': 'symbol', + 'definition_uri': 'https://w3id.org/biolink/vocab/symbol', + 'domain': 'named thing', + 'domain_of': ['gene'], + 'exact_mappings': ['AGRKB:symbol', 'gpi:DB_Object_Symbol'], + 'is_a': 'node property', + 'slot_uri': 'biolink:symbol'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""", json_schema_extra = { "linkml_meta": {'alias': 'has_biological_sequence', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_biological_sequence', + 'domain': 'named thing', + 'domain_of': ['genomic entity', 'gene', 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:has_biological_sequence'} }) class Genome(GenomicEntity, BiologicalEntity, PhysicalEssence, OntologyClass): """ A genome is the sum of genetic material within a cell or virion. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/Genome","biolink:Genome"]] = Field(["biolink:Genome"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""") - in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""") - has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Genome', + 'close_mappings': ['dcid:GenomeAssemblyUnit'], + 'definition_uri': 'https://w3id.org/biolink/vocab/Genome', + 'exact_mappings': ['SO:0001026', 'SIO:000984', 'WIKIDATA:Q7020'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'in_subset': ['model_organism_database'], + 'mixins': ['genomic entity', 'physical essence', 'ontology class']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Genome","biolink:Genome"]] = Field(["biolink:Genome"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""", json_schema_extra = { "linkml_meta": {'alias': 'has_biological_sequence', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_biological_sequence', + 'domain': 'named thing', + 'domain_of': ['genomic entity', 'gene', 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:has_biological_sequence'} }) + + +class Checksum(Entity): + """ + Checksum values associated with digital entities. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/bican-core-schema'}) + + checksum_algorithm: Optional[DigestType] = Field(None, description="""The type of cryptographic hash function used to calculate the checksum value.""", json_schema_extra = { "linkml_meta": {'alias': 'checksum_algorithm', 'domain_of': ['checksum']} }) + value: Optional[str] = Field(None, description="""The checksum value obtained from a specific cryotographic hash function.""", json_schema_extra = { "linkml_meta": {'alias': 'value', 'domain_of': ['checksum']} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/Checksum","bican:Checksum"]] = Field(["bican:Checksum"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) class GeneAnnotation(Gene): """ An annotation describing the location, boundaries, and functions of individual genes within a genome annotation. """ - molecular_type: Optional[Union[BioType, str]] = Field(None) - source_id: Optional[str] = Field(None, description="""The authority specific identifier.""") - referenced_in: Union[GenomeAnnotation, str] = Field(..., description="""The genome annotation that this gene annotation was referenced from.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/GeneAnnotation","bican:GeneAnnotation"]] = Field(["bican:GeneAnnotation"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""") - in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""") - symbol: Optional[str] = Field(None, description="""Symbol for a particular thing""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/genome-annotation-schema', + 'id_prefixes': ['ENSEMBL', 'MGI', 'NCBIGene']}) + + molecular_type: Optional[Union[BioType, str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'molecular_type', + 'any_of': [{'range': 'BioType'}, {'range': 'string'}], + 'domain_of': ['gene annotation']} }) + source_id: Optional[str] = Field(None, description="""The authority specific identifier.""", json_schema_extra = { "linkml_meta": {'alias': 'source_id', + 'domain_of': ['gene annotation'], + 'slot_uri': 'schema:identifier'} }) + referenced_in: Union[GenomeAnnotation, str] = Field(..., description="""The genome annotation that this gene annotation was referenced from.""", json_schema_extra = { "linkml_meta": {'alias': 'referenced_in', + 'any_of': [{'range': 'genome annotation'}, {'range': 'string'}], + 'domain_of': ['gene annotation']} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/GeneAnnotation","bican:GeneAnnotation"]] = Field(["bican:GeneAnnotation"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) + symbol: Optional[str] = Field(None, description="""Symbol for a particular thing""", json_schema_extra = { "linkml_meta": {'alias': 'symbol', + 'definition_uri': 'https://w3id.org/biolink/vocab/symbol', + 'domain': 'named thing', + 'domain_of': ['gene'], + 'exact_mappings': ['AGRKB:symbol', 'gpi:DB_Object_Symbol'], + 'is_a': 'node property', + 'slot_uri': 'biolink:symbol'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""", json_schema_extra = { "linkml_meta": {'alias': 'has_biological_sequence', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_biological_sequence', + 'domain': 'named thing', + 'domain_of': ['genomic entity', 'gene', 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:has_biological_sequence'} }) class GenomeAnnotation(Genome): """ Location and nomenclature of genes and all of the coding regions in a genome assembly and the classification of genes and transcripts into types. """ - version: Optional[str] = Field(None) - digest: Optional[List[Union[Checksum, str]]] = Field(default_factory=list, description="""Stores checksum information.""") - content_url: Optional[List[str]] = Field(default_factory=list) - authority: Optional[AuthorityType] = Field(None, description="""The organization responsible for publishing the data.""") - reference_assembly: Union[GenomeAssembly, str] = Field(..., description="""The reference genome assembly that this genome annotation was created from.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/GenomeAnnotation","bican:GenomeAnnotation"]] = Field(["bican:GenomeAnnotation"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""") - in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""") - has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/genome-annotation-schema'}) + + version: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'version', + 'broad_mappings': ['pav:version', 'owl:versionInfo'], + 'definition_uri': 'https://w3id.org/biolink/vocab/version', + 'domain': 'dataset', + 'domain_of': ['genome annotation', 'genome assembly'], + 'is_a': 'node property', + 'slot_uri': 'biolink:version'} }) + digest: Optional[List[Union[Checksum, str]]] = Field(None, description="""Stores checksum information.""", json_schema_extra = { "linkml_meta": {'alias': 'digest', + 'any_of': [{'range': 'checksum'}, {'range': 'string'}], + 'domain_of': ['genome annotation']} }) + content_url: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'content_url', + 'domain_of': ['genome annotation'], + 'slot_uri': 'schema:url'} }) + authority: Optional[AuthorityType] = Field(None, description="""The organization responsible for publishing the data.""", json_schema_extra = { "linkml_meta": {'alias': 'authority', 'domain_of': ['genome annotation']} }) + reference_assembly: Union[GenomeAssembly, str] = Field(..., description="""The reference genome assembly that this genome annotation was created from.""", json_schema_extra = { "linkml_meta": {'alias': 'reference_assembly', + 'any_of': [{'range': 'genome assembly'}, {'range': 'string'}], + 'domain_of': ['genome annotation']} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/GenomeAnnotation","bican:GenomeAnnotation"]] = Field(["bican:GenomeAnnotation"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""", json_schema_extra = { "linkml_meta": {'alias': 'has_biological_sequence', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_biological_sequence', + 'domain': 'named thing', + 'domain_of': ['genomic entity', 'gene', 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:has_biological_sequence'} }) class GenomeAssembly(ThingWithTaxon, NamedThing): """ Genome assembly to contain version and label information """ - version: Optional[str] = Field(None) - strain: Optional[str] = Field(None, description="""The genetic variant or subtype of a species or organism.""") - in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""") - in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/GenomeAssembly","bican:GenomeAssembly"]] = Field(["bican:GenomeAssembly"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/genome-annotation-schema', + 'mixins': ['thing with taxon']}) - -class Checksum(Entity): - """ - Checksum values associated with digital entities. - """ - checksum_algorithm: Optional[DigestType] = Field(None, description="""The type of cryptographic hash function used to calculate the checksum value.""") - value: Optional[str] = Field(None, description="""The checksum value obtained from a specific cryotographic hash function.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/Checksum","bican:Checksum"]] = Field(["bican:Checksum"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") + version: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'version', + 'broad_mappings': ['pav:version', 'owl:versionInfo'], + 'definition_uri': 'https://w3id.org/biolink/vocab/version', + 'domain': 'dataset', + 'domain_of': ['genome annotation', 'genome assembly'], + 'is_a': 'node property', + 'slot_uri': 'biolink:version'} }) + strain: Optional[str] = Field(None, description="""The genetic variant or subtype of a species or organism.""", json_schema_extra = { "linkml_meta": {'alias': 'strain', 'domain_of': ['genome assembly']} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/GenomeAssembly","bican:GenomeAssembly"]] = Field(["bican:GenomeAssembly"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) class AnnotationCollection(ConfiguredBaseModel): - annotations: Optional[List[GeneAnnotation]] = Field(default_factory=list) - genome_annotations: Optional[List[GenomeAnnotation]] = Field(default_factory=list) - genome_assemblies: Optional[List[GenomeAssembly]] = Field(default_factory=list) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/genome-annotation-schema', + 'tree_root': True}) + + annotations: Optional[List[GeneAnnotation]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'annotations', 'domain_of': ['annotation collection']} }) + genome_annotations: Optional[List[GenomeAnnotation]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'genome_annotations', 'domain_of': ['annotation collection']} }) + genome_assemblies: Optional[List[GenomeAssembly]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'genome_assemblies', 'domain_of': ['annotation collection']} }) # Model rebuild @@ -532,9 +6223,9 @@ class AnnotationCollection(ConfiguredBaseModel): GeneOrGeneProduct.model_rebuild() Gene.model_rebuild() Genome.model_rebuild() +Checksum.model_rebuild() GeneAnnotation.model_rebuild() GenomeAnnotation.model_rebuild() GenomeAssembly.model_rebuild() -Checksum.model_rebuild() AnnotationCollection.model_rebuild() diff --git a/models_py-autogen/library_generation.py b/models_py-autogen/library_generation.py index d19570fb..9771a855 100644 --- a/models_py-autogen/library_generation.py +++ b/models_py-autogen/library_generation.py @@ -1,34 +1,32 @@ from __future__ import annotations + +import re +import sys from datetime import ( + date, datetime, - date + time ) from decimal import Decimal from enum import Enum -import re -import sys from typing import ( Any, + ClassVar, + Dict, List, Literal, - Dict, Optional, Union ) -from pydantic.version import VERSION as PYDANTIC_VERSION -if int(PYDANTIC_VERSION[0])>=2: - from pydantic import ( - BaseModel, - ConfigDict, - Field, - field_validator - ) -else: - from pydantic import ( - BaseModel, - Field, - validator - ) + +from pydantic import ( + BaseModel, + ConfigDict, + Field, + RootModel, + field_validator +) + metamodel_version = "None" version = "None" @@ -46,6 +44,91 @@ class ConfiguredBaseModel(BaseModel): pass + + +class LinkMLMeta(RootModel): + root: Dict[str, Any] = {} + model_config = ConfigDict(frozen=True) + + def __getattr__(self, key:str): + return getattr(self.root, key) + + def __getitem__(self, key:str): + return self.root[key] + + def __setitem__(self, key:str, value): + self.root[key] = value + + def __contains__(self, key:str) -> bool: + return key in self.root + + +linkml_meta = LinkMLMeta({'default_prefix': 'bican', + 'default_range': 'string', + 'description': 'The Library Generation schema is designed to represent types ' + 'and relationships of samples and digital data assets ' + 'generated during processes that generate multimodal genomic ' + 'data.', + 'id': 'https://identifiers.org/brain-bican/library-generation-schema', + 'imports': ['bican_biolink', 'bican_prov', 'bican_core', 'linkml:types'], + 'name': 'library-generation-schema', + 'prefixes': {'NIMP': {'prefix_prefix': 'NIMP', + 'prefix_reference': 'http://example.org/NIMP/'}, + 'bican': {'prefix_prefix': 'bican', + 'prefix_reference': 'https://identifiers.org/brain-bican/vocab/'}, + 'linkml': {'prefix_prefix': 'linkml', + 'prefix_reference': 'https://w3id.org/linkml/'}, + 'ncbi': {'prefix_prefix': 'ncbi', + 'prefix_reference': 'https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi'}, + 'schema': {'prefix_prefix': 'schema', + 'prefix_reference': 'http://schema.org/'}, + 'spdx': {'prefix_prefix': 'spdx', + 'prefix_reference': 'http://spdx.org/rdf/terms#'}}, + 'source_file': 'library_generation.yaml', + 'subsets': {'alignment': {'description': 'A subset of slots/attributes that ' + 'are required for alignment.', + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'name': 'alignment'}, + 'analysis': {'description': 'A subset of slots/attributes that ' + 'are required for analysis.', + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'name': 'analysis'}, + 'bican': {'description': 'A subset of classes that are associated ' + 'with BICAN.', + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'name': 'bican'}, + 'library_generation': {'description': 'A subset of classes that ' + 'are associated with ' + 'library generation.', + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'name': 'library_generation'}, + 'processing_elements': {'description': 'A subset of classes that ' + 'are associated with ' + 'processing.', + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'name': 'processing_elements'}, + 'sequencing_elements': {'description': 'A subset of classes that ' + 'are associated with ' + 'sequencing.', + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'name': 'sequencing_elements'}, + 'tissue_specimen': {'description': 'A subset of classes that are ' + 'associated with tissue ' + 'specimens.', + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'name': 'tissue_specimen'}, + 'tracking': {'description': 'A subset of slots/attributes that ' + 'are required for tracking.', + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'name': 'tracking'}}, + 'title': 'Library Generation Schema'} ) + +class DigestType(str, Enum): + SHA1 = "spdx:checksumAlgorithm_sha1" + MD5 = "spdx:checksumAlgorithm_md5" + SHA256 = "spdx:checksumAlgorithm_sha256" + + class AmplifiedCdnaRnaAmplificationPassFail(str, Enum): # The RNA amplification passed the QA/QC Pass = "Pass" @@ -1220,17 +1303,65 @@ class AgeAtDeathUnit(str, Enum): years = "years" + class OntologyClass(ConfiguredBaseModel): """ a concept or class in an ontology, vocabulary or thesaurus. Note that nodes in a biolink compatible KG can be considered both instances of biolink classes, and OWL classes in their own right. In general you should not need to use this class directly. Instead, use the appropriate biolink class. For example, for the GO concept of endocytosis (GO:0006897), use bl:BiologicalProcess as the type. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:OntologyClass', + 'comments': ["This is modeled as a mixin. 'ontology class' should not be the " + 'primary type of a node in the KG. Instead you should use an ' + 'informative bioloink category, such as AnatomicalEntity (for ' + 'Uberon classes), ChemicalSubstance (for CHEBI or CHEMBL), etc', + 'Note that formally this is a metaclass. Instances of this class ' + "are instances in the graph, but can be the object of 'type' " + 'edges. For example, if we had a node in the graph representing ' + 'a specific brain of a specific patient (e.g brain001), this ' + 'could have a category of bl:Sample, and by typed more ' + 'specifically with an ontology class UBERON:nnn, which has as ' + 'category bl:AnatomicalEntity'], + 'definition_uri': 'https://w3id.org/biolink/vocab/OntologyClass', + 'exact_mappings': ['owl:Class', 'schema:Class'], + 'examples': [{'description': "the class 'brain' from the Uberon anatomy " + 'ontology', + 'value': 'UBERON:0000955'}], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['MESH', 'UMLS', 'KEGG.BRITE'], + 'mixin': True, + 'see_also': ['https://github.com/biolink/biolink-model/issues/486']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) class Annotation(ConfiguredBaseModel): """ Biolink Model root class for entity annotations. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'class_uri': 'biolink:Annotation', + 'definition_uri': 'https://w3id.org/biolink/vocab/Annotation', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + pass @@ -1238,138 +1369,2139 @@ class QuantityValue(Annotation): """ A value of an attribute that is quantitative and measurable, expressed as a combination of a unit and a numeric value """ - has_unit: Optional[str] = Field(None, description="""connects a quantity value to a unit""") - has_numeric_value: Optional[float] = Field(None, description="""connects a quantity value to a number""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:QuantityValue', + 'definition_uri': 'https://w3id.org/biolink/vocab/QuantityValue', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + has_unit: Optional[str] = Field(None, description="""connects a quantity value to a unit""", json_schema_extra = { "linkml_meta": {'alias': 'has_unit', + 'close_mappings': ['EFO:0001697', 'UO-PROPERTY:is_unit_of'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_unit', + 'domain': 'quantity value', + 'domain_of': ['quantity value'], + 'exact_mappings': ['qud:unit', 'IAO:0000039'], + 'in_subset': ['samples'], + 'narrow_mappings': ['SNOMED:has_concentration_strength_denominator_unit', + 'SNOMED:has_concentration_strength_numerator_unit', + 'SNOMED:has_presentation_strength_denominator_unit', + 'SNOMED:has_presentation_strength_numerator_unit', + 'SNOMED:has_unit_of_presentation'], + 'slot_uri': 'biolink:has_unit'} }) + has_numeric_value: Optional[float] = Field(None, description="""connects a quantity value to a number""", json_schema_extra = { "linkml_meta": {'alias': 'has_numeric_value', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_numeric_value', + 'domain': 'quantity value', + 'domain_of': ['quantity value'], + 'exact_mappings': ['qud:quantityValue'], + 'in_subset': ['samples'], + 'slot_uri': 'biolink:has_numeric_value'} }) class Entity(ConfiguredBaseModel): """ Root Biolink Model class for all things and informational relationships, real or imagined. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/Entity","biolink:Entity"]] = Field(["biolink:Entity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'class_uri': 'biolink:Entity', + 'definition_uri': 'https://w3id.org/biolink/vocab/Entity', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Entity","biolink:Entity"]] = Field(["biolink:Entity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) class NamedThing(Entity): """ a databased entity or concept/class """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/NamedThing","biolink:NamedThing"]] = Field(["biolink:NamedThing"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:NamedThing', + 'definition_uri': 'https://w3id.org/biolink/vocab/NamedThing', + 'exact_mappings': ['BFO:0000001', + 'WIKIDATA:Q35120', + 'UMLSSG:OBJC', + 'STY:T071', + 'dcid:Thing'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/NamedThing","biolink:NamedThing"]] = Field(["biolink:NamedThing"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) class Attribute(NamedThing, OntologyClass): """ A property or characteristic of an entity. For example, an apple may have properties such as color, shape, age, crispiness. An environmental sample may have attributes such as depth, lat, long, material. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - category: List[Literal["https://w3id.org/biolink/vocab/Attribute","biolink:Attribute"]] = Field(["biolink:Attribute"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - attribute_name: Optional[str] = Field(None, description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""") - has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") - has_quantitative_value: Optional[List[QuantityValue]] = Field(None, description="""connects an attribute to a value""") - has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - name: Optional[str] = Field(None, description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Attribute', + 'definition_uri': 'https://w3id.org/biolink/vocab/Attribute', + 'exact_mappings': ['SIO:000614'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['EDAM-DATA', 'EDAM-FORMAT', 'EDAM-OPERATION', 'EDAM-TOPIC'], + 'in_subset': ['samples'], + 'mixins': ['ontology class'], + 'slot_usage': {'name': {'description': "The human-readable 'attribute name' " + 'can be set to a string which reflects ' + 'its context of interpretation, e.g. ' + 'SEPIO evidence/provenance/confidence ' + 'annotation or it can default to the ' + "name associated with the 'has " + "attribute type' slot ontology term.", + 'name': 'name'}}}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Attribute","biolink:Attribute"]] = Field(["biolink:Attribute"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + name: Optional[str] = Field(None, description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute_type', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute_type', + 'domain': 'attribute', + 'domain_of': ['attribute'], + 'in_subset': ['samples'], + 'narrow_mappings': ['LOINC:has_modality_type', 'LOINC:has_view_type'], + 'slot_uri': 'biolink:has_attribute_type'} }) + has_quantitative_value: Optional[List[QuantityValue]] = Field(None, description="""connects an attribute to a value""", json_schema_extra = { "linkml_meta": {'alias': 'has_quantitative_value', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_quantitative_value', + 'domain': 'attribute', + 'domain_of': ['attribute'], + 'exact_mappings': ['qud:quantityValue'], + 'in_subset': ['samples'], + 'narrow_mappings': ['SNOMED:has_concentration_strength_numerator_value', + 'SNOMED:has_presentation_strength_denominator_value', + 'SNOMED:has_presentation_strength_numerator_value'], + 'slot_uri': 'biolink:has_quantitative_value'} }) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""", json_schema_extra = { "linkml_meta": {'alias': 'has_qualitative_value', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_qualitative_value', + 'domain': 'attribute', + 'domain_of': ['attribute'], + 'in_subset': ['samples'], + 'slot_uri': 'biolink:has_qualitative_value'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) class TaxonomicRank(OntologyClass): """ A descriptor for the rank within a taxonomic classification. Example instance: TAXRANK:0000017 (kingdom) """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:TaxonomicRank', + 'definition_uri': 'https://w3id.org/biolink/vocab/TaxonomicRank', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['TAXRANK'], + 'mappings': ['WIKIDATA:Q427626']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) class OrganismTaxon(NamedThing): """ A classification of a set of organisms. Example instances: NCBITaxon:9606 (Homo sapiens), NCBITaxon:2 (Bacteria). Can also be used to represent strains or subspecies. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/OrganismTaxon","biolink:OrganismTaxon"]] = Field(["biolink:OrganismTaxon"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - has_taxonomic_rank: Optional[str] = Field(None) + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['taxon', 'taxonomic classification'], + 'class_uri': 'biolink:OrganismTaxon', + 'definition_uri': 'https://w3id.org/biolink/vocab/OrganismTaxon', + 'exact_mappings': ['WIKIDATA:Q16521', 'STY:T001', 'bioschemas:Taxon'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['NCBITaxon', 'MESH', 'UMLS'], + 'in_subset': ['model_organism_database'], + 'narrow_mappings': ['dcid:BiologicalSpecies'], + 'values_from': ['NCBITaxon']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/OrganismTaxon","biolink:OrganismTaxon"]] = Field(["biolink:OrganismTaxon"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + has_taxonomic_rank: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'has_taxonomic_rank', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_taxonomic_rank', + 'domain': 'named thing', + 'domain_of': ['organism taxon'], + 'is_a': 'node property', + 'mappings': ['WIKIDATA:P105'], + 'slot_uri': 'biolink:has_taxonomic_rank'} }) class InformationContentEntity(NamedThing): """ a piece of information that typically describes some topic of discourse or is used as support. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/InformationContentEntity","biolink:InformationContentEntity"]] = Field(["biolink:InformationContentEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - license: Optional[str] = Field(None) - rights: Optional[str] = Field(None) - format: Optional[str] = Field(None) - creation_date: Optional[date] = Field(None, description="""date on which an entity was created. This can be applied to nodes or edges""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'aliases': ['information', 'information artefact', 'information entity'], + 'class_uri': 'biolink:InformationContentEntity', + 'definition_uri': 'https://w3id.org/biolink/vocab/InformationContentEntity', + 'exact_mappings': ['IAO:0000030'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['doi'], + 'narrow_mappings': ['UMLSSG:CONC', + 'STY:T077', + 'STY:T078', + 'STY:T079', + 'STY:T080', + 'STY:T081', + 'STY:T082', + 'STY:T089', + 'STY:T102', + 'STY:T169', + 'STY:T171', + 'STY:T185']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/InformationContentEntity","biolink:InformationContentEntity"]] = Field(["biolink:InformationContentEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + license: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'license', + 'definition_uri': 'https://w3id.org/biolink/vocab/license', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:license'], + 'is_a': 'node property', + 'narrow_mappings': ['WIKIDATA_PROPERTY:P275'], + 'slot_uri': 'biolink:license'} }) + rights: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'rights', + 'definition_uri': 'https://w3id.org/biolink/vocab/rights', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:rights'], + 'is_a': 'node property', + 'slot_uri': 'biolink:rights'} }) + format: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'format', + 'definition_uri': 'https://w3id.org/biolink/vocab/format', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:format', 'WIKIDATA_PROPERTY:P2701'], + 'is_a': 'node property', + 'slot_uri': 'biolink:format'} }) + creation_date: Optional[date] = Field(None, description="""date on which an entity was created. This can be applied to nodes or edges""", json_schema_extra = { "linkml_meta": {'alias': 'creation_date', + 'aliases': ['publication date'], + 'definition_uri': 'https://w3id.org/biolink/vocab/creation_date', + 'domain': 'named thing', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:createdOn', 'WIKIDATA_PROPERTY:P577'], + 'is_a': 'node property', + 'slot_uri': 'biolink:creation_date'} }) class Dataset(InformationContentEntity): """ an item that refers to a collection of data from a data source. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/Dataset","biolink:Dataset"]] = Field(["biolink:Dataset"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - license: Optional[str] = Field(None) - rights: Optional[str] = Field(None) - format: Optional[str] = Field(None) - creation_date: Optional[date] = Field(None, description="""date on which an entity was created. This can be applied to nodes or edges""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Dataset', + 'definition_uri': 'https://w3id.org/biolink/vocab/Dataset', + 'exact_mappings': ['IAO:0000100', + 'dctypes:Dataset', + 'schema:dataset', + 'dcid:Dataset'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema'}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Dataset","biolink:Dataset"]] = Field(["biolink:Dataset"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + license: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'license', + 'definition_uri': 'https://w3id.org/biolink/vocab/license', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:license'], + 'is_a': 'node property', + 'narrow_mappings': ['WIKIDATA_PROPERTY:P275'], + 'slot_uri': 'biolink:license'} }) + rights: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'rights', + 'definition_uri': 'https://w3id.org/biolink/vocab/rights', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:rights'], + 'is_a': 'node property', + 'slot_uri': 'biolink:rights'} }) + format: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'format', + 'definition_uri': 'https://w3id.org/biolink/vocab/format', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:format', 'WIKIDATA_PROPERTY:P2701'], + 'is_a': 'node property', + 'slot_uri': 'biolink:format'} }) + creation_date: Optional[date] = Field(None, description="""date on which an entity was created. This can be applied to nodes or edges""", json_schema_extra = { "linkml_meta": {'alias': 'creation_date', + 'aliases': ['publication date'], + 'definition_uri': 'https://w3id.org/biolink/vocab/creation_date', + 'domain': 'named thing', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:createdOn', 'WIKIDATA_PROPERTY:P577'], + 'is_a': 'node property', + 'slot_uri': 'biolink:creation_date'} }) class PhysicalEssenceOrOccurrent(ConfiguredBaseModel): """ Either a physical or processual entity. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:PhysicalEssenceOrOccurrent', + 'definition_uri': 'https://w3id.org/biolink/vocab/PhysicalEssenceOrOccurrent', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + pass @@ -1377,6 +3509,11 @@ class PhysicalEssence(PhysicalEssenceOrOccurrent): """ Semantic mixin concept. Pertains to entities that have physical properties such as mass, volume, or charge. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:PhysicalEssence', + 'definition_uri': 'https://w3id.org/biolink/vocab/PhysicalEssence', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + pass @@ -1384,24 +3521,350 @@ class PhysicalEntity(PhysicalEssence, NamedThing): """ An entity that has material reality (a.k.a. physical essence). """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/PhysicalEntity","biolink:PhysicalEntity"]] = Field(["biolink:PhysicalEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:PhysicalEntity', + 'definition_uri': 'https://w3id.org/biolink/vocab/PhysicalEntity', + 'exact_mappings': ['STY:T072'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixins': ['physical essence'], + 'narrow_mappings': ['STY:T073']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/PhysicalEntity","biolink:PhysicalEntity"]] = Field(["biolink:PhysicalEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) class Occurrent(PhysicalEssenceOrOccurrent): """ A processual entity. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Occurrent', + 'definition_uri': 'https://w3id.org/biolink/vocab/Occurrent', + 'exact_mappings': ['BFO:0000003'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + pass @@ -1409,6 +3872,12 @@ class ActivityAndBehavior(Occurrent): """ Activity or behavior of any independent integral living, organization or mechanical actor in the world """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:ActivityAndBehavior', + 'definition_uri': 'https://w3id.org/biolink/vocab/ActivityAndBehavior', + 'exact_mappings': ['UMLSSG:ACTI'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + pass @@ -1416,42 +3885,694 @@ class Activity(ActivityAndBehavior, NamedThing): """ An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/Activity","biolink:Activity"]] = Field(["biolink:Activity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Activity', + 'definition_uri': 'https://w3id.org/biolink/vocab/Activity', + 'exact_mappings': ['prov:Activity', 'NCIT:C43431', 'STY:T052'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixins': ['activity and behavior'], + 'narrow_mappings': ['STY:T056', + 'STY:T057', + 'STY:T064', + 'STY:T066', + 'STY:T062', + 'STY:T065', + 'STY:T058']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Activity","biolink:Activity"]] = Field(["biolink:Activity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) class Procedure(ActivityAndBehavior, NamedThing): """ A series of actions conducted in a certain order or manner """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/Procedure","biolink:Procedure"]] = Field(["biolink:Procedure"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Procedure', + 'definition_uri': 'https://w3id.org/biolink/vocab/Procedure', + 'exact_mappings': ['UMLSSG:PROC', 'dcid:MedicalProcedure'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['CPT'], + 'mixins': ['activity and behavior'], + 'narrow_mappings': ['STY:T059', 'STY:T060', 'STY:T061', 'STY:T063']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Procedure","biolink:Procedure"]] = Field(["biolink:Procedure"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) class SubjectOfInvestigation(ConfiguredBaseModel): """ An entity that has the role of being studied in an investigation, study, or experiment """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:SubjectOfInvestigation', + 'definition_uri': 'https://w3id.org/biolink/vocab/SubjectOfInvestigation', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + pass @@ -1459,53 +4580,768 @@ class MaterialSample(SubjectOfInvestigation, PhysicalEntity): """ A sample is a limited quantity of something (e.g. an individual or set of individuals from a population, or a portion of a substance) to be used for testing, analysis, inspection, investigation, demonstration, or trial use. [SIO] """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/MaterialSample","biolink:MaterialSample"]] = Field(["biolink:MaterialSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['biospecimen', 'sample', 'biosample', 'physical sample'], + 'class_uri': 'biolink:MaterialSample', + 'definition_uri': 'https://w3id.org/biolink/vocab/MaterialSample', + 'exact_mappings': ['OBI:0000747', 'SIO:001050'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['BIOSAMPLE', 'GOLD.META'], + 'mixins': ['subject of investigation']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/MaterialSample","biolink:MaterialSample"]] = Field(["biolink:MaterialSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) class ThingWithTaxon(ConfiguredBaseModel): """ A mixin that can be used on any entity that can be taxonomically classified. This includes individual organisms; genes, their products and other molecular entities; body parts; biological processes """ - in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""") - in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:ThingWithTaxon', + 'definition_uri': 'https://w3id.org/biolink/vocab/ThingWithTaxon', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) class BiologicalEntity(ThingWithTaxon, NamedThing): - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/BiologicalEntity","biolink:BiologicalEntity"]] = Field(["biolink:BiologicalEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""") - in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True, + 'aliases': ['bioentity'], + 'class_uri': 'biolink:BiologicalEntity', + 'definition_uri': 'https://w3id.org/biolink/vocab/BiologicalEntity', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixins': ['thing with taxon'], + 'narrow_mappings': ['WIKIDATA:Q28845870', + 'STY:T050', + 'SIO:010046', + 'STY:T129']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/BiologicalEntity","biolink:BiologicalEntity"]] = Field(["biolink:BiologicalEntity"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) class GenomicEntity(ConfiguredBaseModel): - has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:GenomicEntity', + 'definition_uri': 'https://w3id.org/biolink/vocab/GenomicEntity', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'in_subset': ['translator_minimal'], + 'mixin': True, + 'narrow_mappings': ['STY:T028', 'GENO:0000897']}) + + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""", json_schema_extra = { "linkml_meta": {'alias': 'has_biological_sequence', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_biological_sequence', + 'domain': 'named thing', + 'domain_of': ['genomic entity', 'gene', 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:has_biological_sequence'} }) class ChemicalEntityOrGeneOrGeneProduct(ConfiguredBaseModel): """ A union of chemical entities and children, and gene or gene product. This mixin is helpful to use when searching across chemical entities that must include genes and their children as chemical entities. """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:ChemicalEntityOrGeneOrGeneProduct', + 'definition_uri': 'https://w3id.org/biolink/vocab/ChemicalEntityOrGeneOrGeneProduct', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + pass @@ -1513,90 +5349,1616 @@ class MacromolecularMachineMixin(ConfiguredBaseModel): """ A union of gene locus, gene product, and macromolecular complex. These are the basic units of function in a cell. They either carry out individual biological activities, or they encode molecules which do this. """ - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:MacromolecularMachineMixin', + 'definition_uri': 'https://w3id.org/biolink/vocab/MacromolecularMachineMixin', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'mixin': True}) + + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) class GeneOrGeneProduct(MacromolecularMachineMixin): """ A union of gene loci or gene products. Frequently an identifier for one will be used as proxy for another """ - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:GeneOrGeneProduct', + 'definition_uri': 'https://w3id.org/biolink/vocab/GeneOrGeneProduct', + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['CHEMBL.TARGET', 'IUPHAR.FAMILY'], + 'mixin': True}) + + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) class Gene(GeneOrGeneProduct, ChemicalEntityOrGeneOrGeneProduct, GenomicEntity, BiologicalEntity, PhysicalEssence, OntologyClass): """ A region (or regions) that includes all of the sequence elements necessary to encode a functional transcript. A gene locus may include regulatory regions, transcribed regions and/or other functional sequence regions. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/Gene","biolink:Gene"]] = Field(["biolink:Gene"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""") - in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""") - symbol: Optional[str] = Field(None, description="""Symbol for a particular thing""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'broad_mappings': ['NCIT:C45822'], + 'class_uri': 'biolink:Gene', + 'definition_uri': 'https://w3id.org/biolink/vocab/Gene', + 'exact_mappings': ['SO:0000704', 'SIO:010035', 'WIKIDATA:Q7187', 'dcid:Gene'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'id_prefixes': ['NCBIGene', + 'ENSEMBL', + 'HGNC', + 'MGI', + 'ZFIN', + 'dictyBase', + 'WB', + 'WormBase', + 'FB', + 'RGD', + 'SGD', + 'PomBase', + 'OMIM', + 'KEGG.GENES', + 'UMLS', + 'Xenbase', + 'AspGD', + 'PHARMGKB.GENE'], + 'in_subset': ['translator_minimal', 'model_organism_database'], + 'mixins': ['gene or gene product', + 'genomic entity', + 'chemical entity or gene or gene product', + 'physical essence', + 'ontology class'], + 'narrow_mappings': ['bioschemas:gene']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Gene","biolink:Gene"]] = Field(["biolink:Gene"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) + symbol: Optional[str] = Field(None, description="""Symbol for a particular thing""", json_schema_extra = { "linkml_meta": {'alias': 'symbol', + 'definition_uri': 'https://w3id.org/biolink/vocab/symbol', + 'domain': 'named thing', + 'domain_of': ['gene'], + 'exact_mappings': ['AGRKB:symbol', 'gpi:DB_Object_Symbol'], + 'is_a': 'node property', + 'slot_uri': 'biolink:symbol'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""", json_schema_extra = { "linkml_meta": {'alias': 'has_biological_sequence', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_biological_sequence', + 'domain': 'named thing', + 'domain_of': ['genomic entity', 'gene', 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:has_biological_sequence'} }) class Genome(GenomicEntity, BiologicalEntity, PhysicalEssence, OntologyClass): """ A genome is the sum of genetic material within a cell or virion. """ - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://w3id.org/biolink/vocab/Genome","biolink:Genome"]] = Field(["biolink:Genome"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") - in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""") - in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""") - has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'biolink:Genome', + 'close_mappings': ['dcid:GenomeAssemblyUnit'], + 'definition_uri': 'https://w3id.org/biolink/vocab/Genome', + 'exact_mappings': ['SO:0001026', 'SIO:000984', 'WIKIDATA:Q7020'], + 'from_schema': 'https://w3id.org/biolink/bican-biolink-schema', + 'in_subset': ['model_organism_database'], + 'mixins': ['genomic entity', 'physical essence', 'ontology class']}) + + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://w3id.org/biolink/vocab/Genome","biolink:Genome"]] = Field(["biolink:Genome"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""", json_schema_extra = { "linkml_meta": {'alias': 'has_biological_sequence', + 'definition_uri': 'https://w3id.org/biolink/vocab/has_biological_sequence', + 'domain': 'named thing', + 'domain_of': ['genomic entity', 'gene', 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:has_biological_sequence'} }) class ProvActivity(ConfiguredBaseModel): """ An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities. """ - used: Optional[str] = Field(None, description="""Usage is the beginning of utilizing an entity by an activity. Before usage, the activity had not begun to utilize this entity and could not have been affected by the entity.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Activity', + 'from_schema': 'https://identifiers.org/brain-bican/genome-prov-schema', + 'mixin': True}) + + used: Optional[str] = Field(None, description="""Usage is the beginning of utilizing an entity by an activity. Before usage, the activity had not begun to utilize this entity and could not have been affected by the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'used', + 'domain_of': ['ProvActivity', + 'DissectionRoiDelineation', + 'TissueDissection', + 'CellDissociation', + 'CellEnrichment', + 'EnrichedCellSampleSplitting', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'slot_uri': 'prov:used'} }) -class DissectionRoiDelineation(ProvActivity, Procedure): +class ProvEntity(ConfiguredBaseModel): """ - The process of outlining a region of interest on a brain slab image to guide the dissection and generation of a tissue sample. + An entity is a physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Entity', + 'from_schema': 'https://identifiers.org/brain-bican/genome-prov-schema', + 'mixin': True}) + + was_derived_from: Optional[str] = Field(None, description="""A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'slot_uri': 'prov:wasDerivedFrom'} }) + was_generated_by: Optional[str] = Field(None, description="""Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + + +class Checksum(Entity): + """ + Checksum values associated with digital entities. + """ + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/bican-core-schema'}) + + checksum_algorithm: Optional[DigestType] = Field(None, description="""The type of cryptographic hash function used to calculate the checksum value.""", json_schema_extra = { "linkml_meta": {'alias': 'checksum_algorithm', 'domain_of': ['checksum']} }) + value: Optional[str] = Field(None, description="""The checksum value obtained from a specific cryotographic hash function.""", json_schema_extra = { "linkml_meta": {'alias': 'value', 'domain_of': ['checksum']} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/Checksum","bican:Checksum"]] = Field(["bican:Checksum"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + + +class Donor(ProvEntity, ThingWithTaxon, PhysicalEntity): + """ + A person or organism that is the source of a biological sample for scientific study. Many biological samples are generated from a single donor. """ - used: Optional[str] = Field(None, description="""The brain slab that was annotated by the delineation process.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/DissectionRoiDelineation","bican:DissectionRoiDelineation"]] = Field(["bican:DissectionRoiDelineation"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'exact_mappings': ['NIMP:Donor'], + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'mixins': ['thing with taxon', 'ProvEntity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'name': {'description': 'Name of person or organism that is ' + 'the source of a biological sample for ' + 'scientific study. Many biological ' + 'samples are generated from a single ' + 'donor.', + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'donor_local_id'}}, + 'name': 'name'}}}) + + name: Optional[str] = Field(None, description="""Name of person or organism that is the source of a biological sample for scientific study. Many biological samples are generated from a single donor.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'donor_local_id'}}, + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + biological_sex: Optional[Sex] = Field(None, description="""Biological sex of donor at birth""", json_schema_extra = { "linkml_meta": {'alias': 'biological_sex', + 'domain_of': ['Donor'], + 'exact_mappings': ['NIMP:PD-LXUBTM45'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'sex'}}, + 'slot_uri': 'bican:632d3d3f-f85b-4efc-a1ab-010fe417ae81'} }) + age_at_death_description: Optional[str] = Field(None, description="""Text description of the age of death following typical scientific convention for the species or developmental stage. For example: P56, E11.5""", json_schema_extra = { "linkml_meta": {'alias': 'age_at_death_description', + 'domain_of': ['Donor'], + 'exact_mappings': ['NIMP:PD-ZJZJLE33'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'age_at_death_description'}}, + 'slot_uri': 'bican:0630a265-4a63-48f4-8853-66b929002306'} }) + age_at_death_reference_point: Optional[AgeAtDeathReferencePoint] = Field(None, description="""The reference point for an age interval; for example, birth or conception.""", json_schema_extra = { "linkml_meta": {'alias': 'age_at_death_reference_point', + 'domain_of': ['Donor'], + 'exact_mappings': ['NIMP:PD-RARAGG39'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'age_at_death_reference_point'}}, + 'slot_uri': 'bican:3bed1f94-9d82-4ed7-afdf-79d896b24dbb'} }) + age_at_death_unit: Optional[AgeAtDeathUnit] = Field(None, description="""The unit used for representing the donor age from the reference point.""", json_schema_extra = { "linkml_meta": {'alias': 'age_at_death_unit', + 'domain_of': ['Donor'], + 'exact_mappings': ['NIMP:PD-AVAVEV39'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'age_at_death_unit'}}, + 'slot_uri': 'bican:b5436e99-f0a7-4c30-825d-56b88ee2ac1d'} }) + age_at_death_value: Optional[float] = Field(None, description="""The value representing the donor age from the reference point.""", json_schema_extra = { "linkml_meta": {'alias': 'age_at_death_value', + 'domain_of': ['Donor'], + 'exact_mappings': ['NIMP:PD-FTFTCP24'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'age_at_death'}}, + 'slot_uri': 'bican:57e24d3c-c9c7-4ef3-9809-a35802d563ec'} }) + donor_species: Optional[str] = Field(None, description="""Species of donor.""", json_schema_extra = { "linkml_meta": {'alias': 'donor_species', + 'domain_of': ['Donor'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'donor_species'}}, + 'slot_uri': 'bican:6837cb02-6bd7-4fb8-838c-9062ead96ba4'} }) + in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon', + 'aliases': ['instance of', + 'is organism source of gene product', + 'organism has gene', + 'gene found in organism', + 'gene product has organism source'], + 'annotations': {'canonical_predicate': {'tag': 'canonical_predicate', + 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['RO:0002162', 'WIKIDATA_PROPERTY:P703'], + 'in_subset': ['translator_minimal'], + 'inherited': True, + 'is_a': 'related to at instance level', + 'narrow_mappings': ['RO:0002160'], + 'slot_uri': 'biolink:in_taxon'} }) + in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""", json_schema_extra = { "linkml_meta": {'alias': 'in_taxon_label', + 'annotations': {'denormalized': {'tag': 'denormalized', 'value': True}}, + 'definition_uri': 'https://w3id.org/biolink/vocab/in_taxon_label', + 'domain': 'thing with taxon', + 'domain_of': ['thing with taxon', 'biological entity', 'gene', 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P225'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'slot_uri': 'biolink:in_taxon_label'} }) + was_derived_from: Optional[str] = Field(None, description="""A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'slot_uri': 'prov:wasDerivedFrom'} }) + was_generated_by: Optional[str] = Field(None, description="""Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/Donor","bican:Donor"]] = Field(["bican:Donor"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -1604,31 +6966,396 @@ def pattern_category(cls, v): return v -class TissueDissection(ProvActivity, Procedure): +class BrainSlab(ProvEntity, MaterialSample): """ - The process of dissecting a tissue sample from a brain slab guided by a dissection region of interest (ROI) delineation. + A thick flat piece of brain tissue obtained by slicing a whole brain, brain hemisphere or subdivision with a blade at regular interval. When multiple brain slabs are obtained from the slicing process, an ordinal is assigned to provide information about the relative positioning of the slabs. """ - used: Optional[str] = Field(None, description="""The brain slab from which the tissue sample was dissected from.""") - was_guided_by: Optional[str] = Field(None, description="""The dissection ROI polygon which was used to guide the tissue dissection.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/TissueDissection","bican:TissueDissection"]] = Field(["bican:TissueDissection"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'exact_mappings': ['NIMP:Slab'], + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'tissue_specimen'], + 'mixins': ['ProvEntity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'name': {'description': 'Name of a thick flat piece of brain ' + 'tissue obtained by slicing a whole ' + 'brain, brain hemisphere or ' + 'subdivision with a blade at regular ' + 'interval. When multiple brain slabs ' + 'are obtained from the slicing ' + 'process, an ordinal is assigned to ' + 'provide information about the ' + 'relative positioning of the slabs.', + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'local_name'}}, + 'name': 'name'}, + 'was_derived_from': {'any_of': [{'range': 'Donor'}, + {'range': 'BrainSlab'}], + 'description': 'The donor from which the ' + 'brain slab was derived ' + 'from.', + 'exact_mappings': ['NIMP:has_parent'], + 'name': 'was_derived_from'}}}) + + was_derived_from: Optional[str] = Field(None, description="""The donor from which the brain slab was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'any_of': [{'range': 'Donor'}, {'range': 'BrainSlab'}], + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'exact_mappings': ['NIMP:has_parent'], + 'slot_uri': 'prov:wasDerivedFrom'} }) + name: Optional[str] = Field(None, description="""Name of a thick flat piece of brain tissue obtained by slicing a whole brain, brain hemisphere or subdivision with a blade at regular interval. When multiple brain slabs are obtained from the slicing process, an ordinal is assigned to provide information about the relative positioning of the slabs.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'local_name'}}, + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + was_generated_by: Optional[str] = Field(None, description="""Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/BrainSlab","bican:BrainSlab"]] = Field(["bican:BrainSlab"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -1636,31 +7363,404 @@ def pattern_category(cls, v): return v -class CellDissociation(ProvActivity, Procedure): +class TissueSample(ProvEntity, MaterialSample): """ - The process of generating dissociated cells from an input tissue sample. This process could also introduce a tissue-source barcode (eg cell hashing), allowing mixing of cell dissociation samples at the cell barcoding step. + The final intact piece of tissue before cell or nuclei prep. This piece of tissue will be used in dissociation and has an region of interest polygon (ROI) associated with it. """ - used: Optional[List[str]] = Field(default_factory=list, description="""The input tissue sample(s) from which the dissociated cell sample was derived from.""") - process_date: Optional[str] = Field(None, description="""Date of cell dissociation process.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/CellDissociation","bican:CellDissociation"]] = Field(["bican:CellDissociation"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'exact_mappings': ['NIMP:Tissue'], + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvEntity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'name': {'description': 'Identifier name for final intact ' + 'piece of tissue before cell or nuclei ' + 'prep. This piece of tissue will be ' + 'used in dissociation and has an ROI ' + 'associated with it.', + 'exact_mappings': ['NIMP:PD-LJCRCC35'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'tissue_sample_local_name'}}, + 'name': 'name', + 'slot_uri': 'bican:2e4ca2fc-2d77-4d19-af45-d0fb7bbc2269'}, + 'was_derived_from': {'description': 'The donor or brain slab ' + 'from which the tissue ' + 'sample was derived from.', + 'exact_mappings': ['NIMP:has_parent'], + 'name': 'was_derived_from', + 'range': 'Donor'}, + 'was_generated_by': {'description': 'The dissection process ' + 'from which the tissue ' + 'sample was generated by.', + 'name': 'was_generated_by', + 'range': 'TissueDissection'}}}) + + was_derived_from: Optional[str] = Field(None, description="""The donor or brain slab from which the tissue sample was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'exact_mappings': ['NIMP:has_parent'], + 'slot_uri': 'prov:wasDerivedFrom'} }) + was_generated_by: Optional[str] = Field(None, description="""The dissection process from which the tissue sample was generated by.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + name: Optional[str] = Field(None, description="""Identifier name for final intact piece of tissue before cell or nuclei prep. This piece of tissue will be used in dissociation and has an ROI associated with it.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['NIMP:PD-LJCRCC35'], + 'in_subset': ['translator_minimal', 'samples'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'tissue_sample_local_name'}}, + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'bican:2e4ca2fc-2d77-4d19-af45-d0fb7bbc2269'} }) + dissection_was_guided_by: Optional[str] = Field(None, description="""The dissection ROI polygon that was used to guide the dissection.""", json_schema_extra = { "linkml_meta": {'alias': 'dissection_was_guided_by', + 'domain_of': ['TissueSample'], + 'exact_mappings': ['NIMP:has_parent']} }) + tissue_sample_structure: Optional[List[str]] = Field(None, description="""Strucure of tissue sample.""", json_schema_extra = { "linkml_meta": {'alias': 'tissue_sample_structure', + 'domain_of': ['TissueSample'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'structure'}}} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/TissueSample","bican:TissueSample"]] = Field(["bican:TissueSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -1668,31 +7768,411 @@ def pattern_category(cls, v): return v -class CellEnrichment(ProvActivity, Procedure): +class DissociatedCellSample(ProvEntity, MaterialSample): """ - The process of enriching a dissociated cell sample by including or excluding cells of different types based on an enrichment plan using techniques such as fluorescence-activated cell sorting (FACS). This process could also introduce a tissue-source barcode (eg cell hashing), allowing mixing of cell enriched samples at the cell barcoding step. + A collection of dissociated cells or nuclei derived from dissociation of a tissue sample. """ - used: Optional[List[str]] = Field(default_factory=list, description="""The input dissociated cell sample(s) from which the enriched cell sample was derived from.""") - process_date: Optional[str] = Field(None, description="""Date of cell enrichment process.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/CellEnrichment","bican:CellEnrichment"]] = Field(["bican:CellEnrichment"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'exact_mappings': ['NIMP:Dissociated%20Cell%20Sample'], + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvEntity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'name': {'description': 'Name of a collection of dissociated ' + 'cells or nuclei derived from ' + 'dissociation of a tissue sample.', + 'exact_mappings': ['NIMP:PD-RQRWHS40'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'dissociated_cell_sample_local_name'}}, + 'name': 'name', + 'slot_uri': 'bican:65e2c7da-9eb4-45b2-8ccb-d69ef9785ee2'}, + 'was_derived_from': {'description': 'The input tissue ' + 'sample(s) from which ' + 'dissociated cell sample ' + 'was derived from.', + 'exact_mappings': ['NIMP:has_parent'], + 'multivalued': True, + 'name': 'was_derived_from', + 'range': 'TissueSample'}, + 'was_generated_by': {'description': 'The cell dissociation ' + 'process from which the ' + 'dissociated cell sample ' + 'was generated by.', + 'name': 'was_generated_by', + 'range': 'CellDissociation'}}}) + + was_generated_by: Optional[str] = Field(None, description="""The cell dissociation process from which the dissociated cell sample was generated by.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + was_derived_from: Optional[List[str]] = Field(None, description="""The input tissue sample(s) from which dissociated cell sample was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'exact_mappings': ['NIMP:has_parent'], + 'slot_uri': 'prov:wasDerivedFrom'} }) + name: Optional[str] = Field(None, description="""Name of a collection of dissociated cells or nuclei derived from dissociation of a tissue sample.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['NIMP:PD-RQRWHS40'], + 'in_subset': ['translator_minimal', 'samples'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'dissociated_cell_sample_local_name'}}, + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'bican:65e2c7da-9eb4-45b2-8ccb-d69ef9785ee2'} }) + dissociated_cell_sample_cell_prep_type: Optional[DissociatedCellSampleCellPrepType] = Field(None, description="""The type of cell preparation. For example: Cells, Nuclei. This is a property of dissociated_cell_sample.""", json_schema_extra = { "linkml_meta": {'alias': 'dissociated cell sample cell prep type', + 'domain_of': ['DissociatedCellSample'], + 'exact_mappings': ['NIMP:PD-RELLGO26'], + 'in_subset': ['analysis', 'tracking'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'dissociated_cell_sample_cell_prep_type'}}, + 'slot_uri': 'bican:baae4ac3-f959-4594-b943-3a82ec19bd34'} }) + dissociated_cell_oligo_tag_name: Optional[DissociatedCellSampleCellLabelBarcode] = Field(None, description="""Name of cell source oligo used in cell plexing. The oligo molecularly tags all the cells in the dissociated cell sample and allows separate dissociated cell samples to be combined downstream in the barcoded cell sample. The oligo name is associated with a sequence in a lookup table. This sequence will be needed during alignment to associate reads with the parent source dissociated cell sample.""", json_schema_extra = { "linkml_meta": {'alias': 'dissociated cell oligo tag name', + 'domain_of': ['DissociatedCellSample', 'EnrichedCellSample'], + 'exact_mappings': ['NIMP:PD-CFCFPS27'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'dissociated_cell_sample_cell_label_barcode'}}, + 'slot_uri': 'bican:184abbaf-baff-4b5f-b51e-dd38de6006af'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/DissociatedCellSample","bican:DissociatedCellSample"]] = Field(["bican:DissociatedCellSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -1700,30 +8180,425 @@ def pattern_category(cls, v): return v -class EnrichedCellSampleSplitting(ProvActivity, Procedure): +class EnrichedCellSample(ProvEntity, MaterialSample): """ - The process of splitting an enriched cell sample into several portions. Each portion may be used by the same or different groups for different scientific studies. + A collection of enriched cells or nuclei after enrichment process, usually via fluorescence-activated cell sorting (FACS) using the enrichment plan, is applied to dissociated cell sample. """ - used: Optional[str] = Field(None, description="""The enrichment cell sample splitting process from which the enriched cell sample was generated by.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/EnrichedCellSampleSplitting","bican:EnrichedCellSampleSplitting"]] = Field(["bican:EnrichedCellSampleSplitting"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'exact_mappings': ['NIMP:Enriched%20Cell%20Sample'], + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvEntity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'name': {'description': 'Name of collection of enriched cells ' + 'or nuclei after enrichment process ' + '(usually via FACS using the ' + 'Enrichment Plan) applied to ' + 'dissociated_cell_sample.', + 'exact_mappings': ['NIMP:PD-BERWTM41'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'enriched_cell_sample_local_name'}}, + 'name': 'name', + 'slot_uri': 'bican:bb3fc701-23a7-45c1-890d-7471730e0ec1'}, + 'was_derived_from': {'description': 'The dissociated or ' + 'enriched cell sample(s) ' + 'from which the enriched ' + 'cell sample was derived ' + 'from.', + 'exact_mappings': ['NIMP:has_parent'], + 'exactly_one_of': [{'range': 'DissociatedCellSample'}, + {'range': 'EnrichedCellSample'}], + 'multivalued': True, + 'name': 'was_derived_from'}, + 'was_generated_by': {'any_of': [{'range': 'CellEnrichment'}, + {'range': 'EnrichedCellSampleSplitting'}], + 'description': 'The cell enrichment or ' + 'sample splitting process ' + 'from which the enriched ' + 'cell sample was generated ' + 'by.', + 'name': 'was_generated_by'}}}) + + was_generated_by: Optional[str] = Field(None, description="""The cell enrichment or sample splitting process from which the enriched cell sample was generated by.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'any_of': [{'range': 'CellEnrichment'}, + {'range': 'EnrichedCellSampleSplitting'}], + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + was_derived_from: Optional[List[str]] = Field(None, description="""The dissociated or enriched cell sample(s) from which the enriched cell sample was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'exact_mappings': ['NIMP:has_parent'], + 'exactly_one_of': [{'range': 'DissociatedCellSample'}, + {'range': 'EnrichedCellSample'}], + 'slot_uri': 'prov:wasDerivedFrom'} }) + name: Optional[str] = Field(None, description="""Name of collection of enriched cells or nuclei after enrichment process (usually via FACS using the Enrichment Plan) applied to dissociated_cell_sample.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['NIMP:PD-BERWTM41'], + 'in_subset': ['translator_minimal', 'samples'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'enriched_cell_sample_local_name'}}, + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'bican:bb3fc701-23a7-45c1-890d-7471730e0ec1'} }) + enrichment_population: Optional[str] = Field(None, description="""Actual percentage of cells as a result of using set of fluorescent marker label(s) to enrich dissociated_cell_sample with desired mix of cell populations. This plan can also be used to describe 'No FACS' where no enrichment was performed. This is a property of enriched_cell_prep_container.""", json_schema_extra = { "linkml_meta": {'alias': 'enrichment population', + 'domain_of': ['EnrichedCellSample'], + 'exact_mappings': ['NIMP:PD-TZTZPI37'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'enrichment_population'}}, + 'slot_uri': 'bican:875f1c70-f5aa-45e3-94b9-5e482f6c4830'} }) + cell_source_oligo_name: Optional[str] = Field(None, description="""Name of cell source oligo used in cell plexing. The oligo molecularly tags all the cells in the enriched cell sample and allows separate enriched cell samples to be combined downstream in the barcoded cell sample. The oligo name is associated with a sequence in a lookup table. This sequence will be needed during alignment to associate reads with the parent source enriched cell sample.""", json_schema_extra = { "linkml_meta": {'alias': 'cell_source_oligo_name', + 'domain_of': ['DissociatedCellSample', 'EnrichedCellSample'], + 'exact_mappings': ['NIMP:PD-CFCFPS27'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'enriched_cell_sample_cell_label_barcode'}}} }) + histone_modification_marker: Optional[str] = Field(None, description="""Histone modification marker antibodies (eg H3K27ac, H3K27me3, H3K9me3) used in conjunction with an Enriched Cell Source Barcode in order to combine multiple Enriched Cell Populations before Barcoded Cell Sample step for 10xMultiome method. Each of the Histone antibodies captures an essential part of the epigenome.""", json_schema_extra = { "linkml_meta": {'alias': 'histone_modification_marker', + 'domain_of': ['EnrichedCellSample'], + 'exact_mappings': ['NIMP:PD-ESESLW44'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'histone_modification_marker'}}} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/EnrichedCellSample","bican:EnrichedCellSample"]] = Field(["bican:EnrichedCellSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -1731,34 +8606,415 @@ def pattern_category(cls, v): return v -class CellBarcoding(ProvActivity, Procedure): +class BarcodedCellSample(ProvEntity, MaterialSample): """ - The process of adding a molecular barcode to individual cells in a sample. The input will be either dissociated cell sample or enriched cell sample. Cell barcodes are only guaranteed to be unique within this one collection. One dissociated cell sample or enriched cell sample can lead to multiple barcoded cell samples. + A collection of molecularly barcoded cells. Input will be either dissociated cell sample or enriched cell sample. Cell barcodes are only guaranteed to be unique within this one collection. One dissociated cell sample or enriched cell sample can lead to multiple barcoded cell samples. The sequences of the molecular barcodes are revealed during alignment of the resulting fastq files for the barcoded cell sample. The barcoded cell sample name and the cell level molecular barcode together uniquely identify a single cell. """ - used: Optional[List[str]] = Field(default_factory=list, description="""The input dissociated or enriched cell sample(s) from which the barcoded cell sample was derived from.""") - port_well: Optional[str] = Field(None, description="""Specific position of the loaded port of the 10x chip. An Enriched or Dissociated Cell Sample is loaded into a port on a chip (creating a Barcoded Cell Sample). Can be left null for non-10x methods.""") - input_quantity: Optional[int] = Field(None, description="""Number of enriched or dissociated cells/nuclei going into the barcoding process.""") - process_date: Optional[str] = Field(None, description="""Date of cell barcoding process.""") - method: Optional[BarcodedCellSampleTechnique] = Field(None, description="""Standardized nomenclature to describe the general barcoding method used. For example: Multiome, ATAC Only, GEX Only or snm3C-seq.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/CellBarcoding","bican:CellBarcoding"]] = Field(["bican:CellBarcoding"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'exact_mappings': ['NIMP:Barcoded%20Cell%20Sample'], + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvEntity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'name': {'description': 'Name of a collection of barcoded ' + 'cells. Input will be either ' + 'dissociated_cell_sample or ' + 'enriched_cell_sample. Cell barcodes ' + 'are only guaranteed to be unique ' + 'within this one collection. One ' + 'dissociated_cell_sample or ' + 'enriched_cell_sample can lead to ' + 'multiple barcoded_cell_samples.', + 'exact_mappings': ['NIMP:PD-XEMDJF38'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'barcoded_cell_sample_local_name'}}, + 'name': 'name', + 'slot_uri': 'bican:4c0e6380-e53f-4173-a474-d41e836fefe3'}, + 'was_derived_from': {'description': 'The input dissociated or ' + 'enriched cell sample(s) ' + 'from which the barcoded ' + 'cell sample was derived ' + 'from.', + 'exact_mappings': ['NIMP:has_parent'], + 'exactly_one_of': [{'range': 'DissociatedCellSample'}, + {'range': 'EnrichedCellSample'}], + 'multivalued': True, + 'name': 'was_derived_from'}, + 'was_generated_by': {'description': 'The barcoding process ' + 'from which the barcoded ' + 'cell sample is generated ' + 'from.', + 'name': 'was_generated_by', + 'range': 'CellBarcoding'}}}) + + was_generated_by: Optional[str] = Field(None, description="""The barcoding process from which the barcoded cell sample is generated from.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + was_derived_from: Optional[List[str]] = Field(None, description="""The input dissociated or enriched cell sample(s) from which the barcoded cell sample was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'exact_mappings': ['NIMP:has_parent'], + 'exactly_one_of': [{'range': 'DissociatedCellSample'}, + {'range': 'EnrichedCellSample'}], + 'slot_uri': 'prov:wasDerivedFrom'} }) + name: Optional[str] = Field(None, description="""Name of a collection of barcoded cells. Input will be either dissociated_cell_sample or enriched_cell_sample. Cell barcodes are only guaranteed to be unique within this one collection. One dissociated_cell_sample or enriched_cell_sample can lead to multiple barcoded_cell_samples.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['NIMP:PD-XEMDJF38'], + 'in_subset': ['translator_minimal', 'samples'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'barcoded_cell_sample_local_name'}}, + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'bican:4c0e6380-e53f-4173-a474-d41e836fefe3'} }) + expected_cell_capture: Optional[int] = Field(None, description="""Expected number of cells/nuclei of a barcoded_cell_sample that will be barcoded and available for sequencing. This is a derived number from 'Barcoded cell input quantity count' that is dependent on the \"capture rate\" of the barcoding method. It is usually a calculated fraction of the 'Barcoded cell input quantity count' going into the barcoding method.""", json_schema_extra = { "linkml_meta": {'alias': 'expected cell capture', + 'domain_of': ['BarcodedCellSample'], + 'exact_mappings': ['NIMP:PD-ONONEV39'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'barcoded_cell_sample_number_of_expected_cells'}}, + 'slot_uri': 'bican:f10e928d-5a2b-4943-af18-d8fe5d05528d'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/BarcodedCellSample","bican:BarcodedCellSample"]] = Field(["bican:BarcodedCellSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -1766,33 +9022,425 @@ def pattern_category(cls, v): return v -class CdnaAmplification(ProvActivity, Procedure): +class AmplifiedCdna(ProvEntity, MaterialSample): """ - The process of creating a collection of cDNA molecules derived and amplified from an input barcoded cell sample. A large amount of cDNA is needed to have accurate and reliable sequencing detection of gene expression. This process generates multiple copies of each mRNA transcript (expressed gene) within each cell while retaining the cell's unique barcode from the barcoding step. This is a necessary step for GEX methods but is not used for ATAC methods. + A collection of cDNA molecules derived and amplified from an input barcoded cell sample. These cDNA molecules represent the gene expression of each cell, with all cDNA molecules from a given cell retaining that cell's unique barcode from the cell barcoding step. This is a necessary step for GEX methods but is not used for ATAC methods. """ - used: Optional[str] = Field(None, description="""The input barcoded cell sample from which amplified cDNA was derived from.""") - pcr_cycles: Optional[int] = Field(None, description="""Number of PCR cycles used during cDNA amplification for this cDNA.""") - process_date: Optional[date] = Field(None, description="""Date of cDNA amplification.""") - set: Optional[str] = Field(None, description="""cDNA amplification set, containing multiple amplified_cDNA_names that were processed at the same time.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/CdnaAmplification","bican:CdnaAmplification"]] = Field(["bican:CdnaAmplification"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'exact_mappings': ['NIMP:Amplified%20cDNA'], + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvEntity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'name': {'description': 'Name of a collection of cDNA ' + 'molecules derived and amplified from ' + 'an input barcoded_cell_sample. These ' + 'cDNA molecules represent the gene ' + 'expression of each cell, with all ' + 'cDNA molecules from a given cell ' + "retaining that cell's unique barcode " + 'from the cell barcoding step. This ' + 'is a necessary step for GEX methods ' + 'but is not used for ATAC methods.', + 'exact_mappings': ['NIMP:PD-YAAGGG39'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'amplified_cdna_local_name'}}, + 'name': 'name', + 'slot_uri': 'bican:e2606a11-114e-472f-9e05-33f9b6fc3089'}, + 'was_derived_from': {'description': 'The input barcoded cell ' + 'sample from which ' + 'amplified cDNA was ' + 'derived from.', + 'exact_mappings': ['NIMP:has_parent'], + 'name': 'was_derived_from', + 'range': 'BarcodedCellSample'}, + 'was_generated_by': {'description': 'The cDNA amplification ' + 'process from which the ' + 'amplified cDNA was ' + 'generated by.', + 'name': 'was_generated_by', + 'range': 'CdnaAmplification'}}}) + + was_generated_by: Optional[str] = Field(None, description="""The cDNA amplification process from which the amplified cDNA was generated by.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + was_derived_from: Optional[str] = Field(None, description="""The input barcoded cell sample from which amplified cDNA was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'exact_mappings': ['NIMP:has_parent'], + 'slot_uri': 'prov:wasDerivedFrom'} }) + name: Optional[str] = Field(None, description="""Name of a collection of cDNA molecules derived and amplified from an input barcoded_cell_sample. These cDNA molecules represent the gene expression of each cell, with all cDNA molecules from a given cell retaining that cell's unique barcode from the cell barcoding step. This is a necessary step for GEX methods but is not used for ATAC methods.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['NIMP:PD-YAAGGG39'], + 'in_subset': ['translator_minimal', 'samples'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'amplified_cdna_local_name'}}, + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'bican:e2606a11-114e-472f-9e05-33f9b6fc3089'} }) + amplified_cDNA_amplified_quantity_ng: Optional[float] = Field(None, description="""Amount of cDNA produced after cDNA amplification measured in nanograms.""", json_schema_extra = { "linkml_meta": {'alias': 'amplified cDNA amplified quantity ng', + 'domain_of': ['AmplifiedCdna', 'Library'], + 'exact_mappings': ['NIMP:PD-TITIIC26'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'amplified_cdna_amplified_quantity_ng'}}, + 'slot_uri': 'bican:0db79d05-8612-4896-b9d3-eb1558841449'} }) + amplified_cDNA_RNA_amplification_pass_fail: Optional[AmplifiedCdnaRnaAmplificationPassFail] = Field(None, description="""Pass or Fail result based on qualitative assessment of cDNA yield and size.""", json_schema_extra = { "linkml_meta": {'alias': 'amplified cDNA RNA amplification pass-fail', + 'domain_of': ['AmplifiedCdna', 'Library'], + 'exact_mappings': ['NIMP:PD-XXXXFQ31'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'amplified_cdna_rna_amplification_pass_fail'}}, + 'slot_uri': 'bican:bc62bdb2-7dc8-4404-bb84-ce0bbcae59e5'} }) + amplified_cDNA_percent_cDNA_longer_than_400bp: Optional[float] = Field(None, description="""QC metric to measure mRNA degradation of cDNA. Higher % is higher quality starting material. Over 400bp is used as a universal cutoff for intact (full length) vs degraded cDNA and is a common output from Bioanalyzer and Fragment Analyzer elecropheragrams.""", json_schema_extra = { "linkml_meta": {'alias': 'amplified cDNA percent cDNA longer than 400bp', + 'domain_of': ['AmplifiedCdna'], + 'exact_mappings': ['NIMP:PD-JJJJWD35'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'amplified_cdna_percent_cdna_longer_than_400bp'}}, + 'slot_uri': 'bican:8d150467-f69e-461c-b54c-bcfd22f581e5'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/AmplifiedCdna","bican:AmplifiedCdna"]] = Field(["bican:AmplifiedCdna"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -1800,34 +9448,443 @@ def pattern_category(cls, v): return v -class LibraryConstruction(ProvActivity, Procedure): +class Library(ProvEntity, MaterialSample): """ - The process of constructing a library from input material (such as amplified cDNA or barcoded cell sample) derived from one or more cell samples. cDNA is fragmented into smaller pieces appropriate for sequencing and at the same time a library index barcode is incorporated to enable identification of library origin, allowing libraries to be pooled together for sequencing. + A collection of fragmented and barcode-indexed DNA molecules for sequencing. An index or barcode is typically introduced to enable identification of library origin to allow libraries to be pooled together for sequencing. """ - used: Optional[str] = Field(None, description="""The input barcoded cell sample or amplified cDNA from which the library was derived from.""") - method: Optional[LibraryTechnique] = Field(None, description="""Standardized nomenclature to describe the specific library method used. This specifies the alignment method required for the library. For example, 10xV3.1 (for RNASeq single assay), 10xMult-GEX (for RNASeq multiome assay), and 10xMult-ATAC (for ATACSeq multiome assay).""") - process_date: Optional[date] = Field(None, description="""Date of library construction.""") - input_quantity_ng: Optional[float] = Field(None, description="""Amount of cDNA going into library construction in nanograms.""") - set: Optional[str] = Field(None, description="""Library set, containing multiple library_names that were processed at the same time.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/LibraryConstruction","bican:LibraryConstruction"]] = Field(["bican:LibraryConstruction"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'exact_mappings': ['NIMP:Library'], + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvEntity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'name': {'description': 'Name of a library, which is a ' + 'collection of fragmented and ' + 'barcode-indexed DNA molecules for ' + 'sequencing. An index or barcode is ' + 'typically introduced to enable ' + 'identification of library origin to ' + 'allow libraries to be pooled together ' + 'for sequencing.', + 'exact_mappings': ['NIMP:PD-AJJUCC35'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_local_name'}}, + 'name': 'name', + 'slot_uri': 'bican:f717e254-3630-4342-be7b-4d56376e7afe'}, + 'was_derived_from': {'any_of': [{'range': 'BarcodedCellSample'}, + {'range': 'AmplifiedCdna'}], + 'description': 'The input barcoded cell ' + 'sample or amplified cDNA ' + 'from which the library ' + 'was derived from.', + 'exact_mappings': ['NIMP:has_parent'], + 'name': 'was_derived_from'}, + 'was_generated_by': {'description': 'The library construction ' + 'process from which the ' + 'library was generated by.', + 'name': 'was_generated_by', + 'range': 'LibraryConstruction'}}}) + + was_generated_by: Optional[str] = Field(None, description="""The library construction process from which the library was generated by.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + was_derived_from: Optional[str] = Field(None, description="""The input barcoded cell sample or amplified cDNA from which the library was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'any_of': [{'range': 'BarcodedCellSample'}, {'range': 'AmplifiedCdna'}], + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'exact_mappings': ['NIMP:has_parent'], + 'slot_uri': 'prov:wasDerivedFrom'} }) + name: Optional[str] = Field(None, description="""Name of a library, which is a collection of fragmented and barcode-indexed DNA molecules for sequencing. An index or barcode is typically introduced to enable identification of library origin to allow libraries to be pooled together for sequencing.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['NIMP:PD-AJJUCC35'], + 'in_subset': ['translator_minimal', 'samples'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_local_name'}}, + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'bican:f717e254-3630-4342-be7b-4d56376e7afe'} }) + library_avg_size_bp: Optional[int] = Field(None, description="""Average size of the library in terms of base pairs. This is used to calculate the molarity before pooling and sequencing.""", json_schema_extra = { "linkml_meta": {'alias': 'library avg size bp', + 'domain_of': ['Library'], + 'exact_mappings': ['NIMP:PD-VJVJLC46'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_avg_size_bp'}}, + 'slot_uri': 'bican:f851eba9-56d1-4472-9d0c-d7f8bc33000a'} }) + library_concentration_nm: Optional[float] = Field(None, description="""Concentration of library in terms of nM (nMol/L). Number of molecules is needed for accurate pooling of the libraries and for generating the number of target reads/cell in sequencing.""", json_schema_extra = { "linkml_meta": {'alias': 'library concentration nm', + 'domain_of': ['Library'], + 'exact_mappings': ['NIMP:PD-DCDCLD43'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_concentration_nm'}}, + 'slot_uri': 'bican:90805b3f-f380-4f23-b159-e7eaa0c8f052'} }) + library_prep_pass_fail: Optional[LibraryPrepPassFail] = Field(None, description="""Pass or Fail result based on qualitative assessment of library yield and size.""", json_schema_extra = { "linkml_meta": {'alias': 'library prep pass-fail', + 'domain_of': ['AmplifiedCdna', 'Library'], + 'exact_mappings': ['NIMP:PD-QHQHQB42'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_prep_pass_fail'}}, + 'slot_uri': 'bican:6817ede2-7ead-402d-9dbc-131aca627c6c'} }) + library_quantification_fmol: Optional[float] = Field(None, description="""Amount of library generated in terms of femtomoles""", json_schema_extra = { "linkml_meta": {'alias': 'library quantification fmol', + 'domain_of': ['Library'], + 'exact_mappings': ['NIMP:PD-JYJYDK42'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_quantification_fmol'}}, + 'slot_uri': 'bican:4c09ada7-c116-48bc-8fb1-0dcf5c4b939a'} }) + library_quantification_ng: Optional[float] = Field(None, description="""Amount of library generated in terms of nanograms""", json_schema_extra = { "linkml_meta": {'alias': 'library quantification ng', + 'domain_of': ['AmplifiedCdna', 'Library'], + 'exact_mappings': ['NIMP:PD-TNTNXP37'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_quantification_ng'}}, + 'slot_uri': 'bican:318b2d3a-dae7-4c63-bfbb-93862b92f63e'} }) + R1/R2_index_name: Optional[LibraryR1R2Index] = Field(None, description="""Name of the pair of library indexes used for sequencing. Indexes allow libraries to be pooled together for sequencing. Sequencing output (fastq) are demultiplexed by using the indexes for each library. The name will be associated with the sequences of i7, i5, and i5as, which are needed by SeqCores for demultiplexing. The required direction of the sequence (sense or antisense) of the index can differ depending on sequencing instruments.""", json_schema_extra = { "linkml_meta": {'alias': 'R1/R2 index name', + 'domain_of': ['Library'], + 'exact_mappings': ['NIMP:PD-VLLMWZ60'], + 'in_subset': ['analysis', 'tracking'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_r1_r2_index'}}, + 'slot_uri': 'bican:c94b5d8a-e92d-47af-8c0e-ea3b58be4d06'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/Library","bican:Library"]] = Field(["bican:Library"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -1835,31 +9892,397 @@ def pattern_category(cls, v): return v -class LibraryPooling(ProvActivity, Procedure): +class LibraryAliquot(ProvEntity, MaterialSample): """ - The process of constructing of a libray pool by combining library aliquots from a set of input libraries. Each library aliquot in a library pool will have a unique R1/R2 index to allow for sequencing together then separating the sequencing output by originating library aliquot through the process of demultiplexing. + One library in the library pool. Each library aliquot in a library pool will have a unique R1/R2 index to allow for sequencing together then separating the sequencing output by originating library aliquot through the process of demultiplexing. The resulting demultiplexed fastq files will include the library aliquot name. A given library may produce multiple library aliquots, which is done in the case of resequencing. Each library aliquot will produce a set of fastq files. """ - used: Optional[List[str]] = Field(default_factory=list, description="""The input aliquot(s) from which the library pool was derived from.""") - process_date: Optional[str] = Field(None, description="""Date of library pooling process.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/LibraryPooling","bican:LibraryPooling"]] = Field(["bican:LibraryPooling"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'exact_mappings': ['NIMP:Library%20Aliquot'], + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvEntity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'name': {'description': 'One library in the library pool. ' + 'Each Library_aliquot_name in a ' + 'library pool will have a unique R1/R2 ' + 'index to allow for sequencing ' + 'together then separating the ' + 'sequencing output by originating ' + 'library aliquot through the process ' + 'of demultiplexing. The resulting ' + 'demultiplexed fastq files will ' + 'include the library_aliquot_name.', + 'exact_mappings': ['NIMP:PD-XCXCCC35'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_aliquot_local_name'}}, + 'name': 'name', + 'slot_uri': 'bican:34191bad-d167-4335-8224-ade897d3728e'}, + 'was_derived_from': {'description': 'The input library from ' + 'which the library aliquot ' + 'was derived from.', + 'exact_mappings': ['NIMP:has_parent'], + 'name': 'was_derived_from', + 'range': 'Library'}}}) + + was_derived_from: Optional[str] = Field(None, description="""The input library from which the library aliquot was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'exact_mappings': ['NIMP:has_parent'], + 'slot_uri': 'prov:wasDerivedFrom'} }) + name: Optional[str] = Field(None, description="""One library in the library pool. Each Library_aliquot_name in a library pool will have a unique R1/R2 index to allow for sequencing together then separating the sequencing output by originating library aliquot through the process of demultiplexing. The resulting demultiplexed fastq files will include the library_aliquot_name.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['NIMP:PD-XCXCCC35'], + 'in_subset': ['translator_minimal', 'samples'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_aliquot_local_name'}}, + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'bican:34191bad-d167-4335-8224-ade897d3728e'} }) + was_generated_by: Optional[str] = Field(None, description="""Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/LibraryAliquot","bican:LibraryAliquot"]] = Field(["bican:LibraryAliquot"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -1867,47 +10290,410 @@ def pattern_category(cls, v): return v -class ProvEntity(ConfiguredBaseModel): - """ - An entity is a physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary. - """ - was_derived_from: Optional[str] = Field(None, description="""A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.""") - was_generated_by: Optional[str] = Field(None, description="""Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.""") - - -class Donor(ProvEntity, ThingWithTaxon, PhysicalEntity): +class LibraryPool(ProvEntity, MaterialSample): """ - A person or organism that is the source of a biological sample for scientific study. Many biological samples are generated from a single donor. + A library pool is made up of library aliquots from multiple libraries. Each library aliquot in a library pool will have a unique R1/R2 index to allow for sequencing together then separating the sequencing output by originating library aliquot through the process of demultiplexing. """ - name: Optional[str] = Field(None, description="""Name of person or organism that is the source of a biological sample for scientific study. Many biological samples are generated from a single donor.""") - biological_sex: Optional[Sex] = Field(None, description="""Biological sex of donor at birth""") - age_at_death_description: Optional[str] = Field(None, description="""Text description of the age of death following typical scientific convention for the species or developmental stage. For example: P56, E11.5""") - age_at_death_reference_point: Optional[AgeAtDeathReferencePoint] = Field(None, description="""The reference point for an age interval; for example, birth or conception.""") - age_at_death_unit: Optional[AgeAtDeathUnit] = Field(None, description="""The unit used for representing the donor age from the reference point.""") - age_at_death_value: Optional[float] = Field(None, description="""The value representing the donor age from the reference point.""") - species: Optional[str] = Field(None, description="""Species of donor.""") - in_taxon: Optional[List[str]] = Field(None, description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""") - in_taxon_label: Optional[str] = Field(None, description="""The human readable scientific name for the taxon of the entity.""") - was_derived_from: Optional[str] = Field(None, description="""A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.""") - was_generated_by: Optional[str] = Field(None, description="""Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/Donor","bican:Donor"]] = Field(["bican:Donor"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'exact_mappings': ['NIMP:Library%20Pool'], + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvEntity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'name': {'description': "Library lab's library pool name. For " + 'some labs this may be the same as ' + '"Libray pool tube local name". ' + 'Other labs distinguish between the ' + 'local tube label of the library pool ' + 'and the library pool name provided to ' + 'SeqCore for tracking. Local Pool ' + 'Name is used to communicate ' + 'sequencing status between SeqCore and ' + 'Library Labs.', + 'exact_mappings': ['NIMP:PD-KKIAPA48'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_pool_local_name'}}, + 'name': 'name', + 'slot_uri': 'bican:29e0578b-6427-4c93-b29b-bde27fbadeec'}, + 'was_derived_from': {'description': 'The input aliquot(s) from ' + 'which the library pool ' + 'was derived from.', + 'exact_mappings': ['NIMP:has_parent'], + 'multivalued': True, + 'name': 'was_derived_from', + 'range': 'LibraryAliquot'}, + 'was_generated_by': {'description': 'The pooling process from ' + 'which the library pool ' + 'was generated by.', + 'name': 'was_generated_by', + 'range': 'LibraryPooling'}}}) + + was_generated_by: Optional[str] = Field(None, description="""The pooling process from which the library pool was generated by.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + was_derived_from: Optional[List[str]] = Field(None, description="""The input aliquot(s) from which the library pool was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'exact_mappings': ['NIMP:has_parent'], + 'slot_uri': 'prov:wasDerivedFrom'} }) + name: Optional[str] = Field(None, description="""Library lab's library pool name. For some labs this may be the same as \"Libray pool tube local name\". Other labs distinguish between the local tube label of the library pool and the library pool name provided to SeqCore for tracking. Local Pool Name is used to communicate sequencing status between SeqCore and Library Labs.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['NIMP:PD-KKIAPA48'], + 'in_subset': ['translator_minimal', 'samples'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_pool_local_name'}}, + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'bican:29e0578b-6427-4c93-b29b-bde27fbadeec'} }) + library_pool_tube_internal_label: Optional[str] = Field(None, description="""Library Pool Tube local name. Label of the tube containing the library pool, which is made up of multiple library_aliquots. This is a Library Lab local tube name, before the pool is aliquoted to the Seq Core provided tube 'Library Pool Tube Name'.""", json_schema_extra = { "linkml_meta": {'alias': 'library_pool_tube_internal_label', + 'domain_of': ['LibraryPool'], + 'exact_mappings': ['NIMP:PD-WNYWPA48'], + 'in_subset': ['analysis', 'tracking'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_pool_local_tube_id'}}, + 'slot_uri': 'bican:f1fdea98-7849-4def-a62f-a04cbbf98922'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/LibraryPool","bican:LibraryPool"]] = Field(["bican:LibraryPool"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -1915,31 +10701,364 @@ def pattern_category(cls, v): return v -class BrainSlab(ProvEntity, MaterialSample): +class DissectionRoiDelineation(ProvActivity, Procedure): """ - A thick flat piece of brain tissue obtained by slicing a whole brain, brain hemisphere or subdivision with a blade at regular interval. When multiple brain slabs are obtained from the slicing process, an ordinal is assigned to provide information about the relative positioning of the slabs. + The process of outlining a region of interest on a brain slab image to guide the dissection and generation of a tissue sample. """ - was_derived_from: Optional[str] = Field(None, description="""The donor from which the brain slab was derived from.""") - name: Optional[str] = Field(None, description="""Name of a thick flat piece of brain tissue obtained by slicing a whole brain, brain hemisphere or subdivision with a blade at regular interval. When multiple brain slabs are obtained from the slicing process, an ordinal is assigned to provide information about the relative positioning of the slabs.""") - was_generated_by: Optional[str] = Field(None, description="""Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/BrainSlab","bican:BrainSlab"]] = Field(["bican:BrainSlab"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvActivity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'used': {'description': 'The brain slab that was annotated by ' + 'the delineation process.', + 'name': 'used', + 'range': 'BrainSlab'}}}) + + used: Optional[str] = Field(None, description="""The brain slab that was annotated by the delineation process.""", json_schema_extra = { "linkml_meta": {'alias': 'used', + 'domain_of': ['ProvActivity', + 'DissectionRoiDelineation', + 'TissueDissection', + 'CellDissociation', + 'CellEnrichment', + 'EnrichedCellSampleSplitting', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'slot_uri': 'prov:used'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/DissectionRoiDelineation","bican:DissectionRoiDelineation"]] = Field(["bican:DissectionRoiDelineation"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -1947,33 +11066,365 @@ def pattern_category(cls, v): return v -class TissueSample(ProvEntity, MaterialSample): +class TissueDissection(ProvActivity, Procedure): """ - The final intact piece of tissue before cell or nuclei prep. This piece of tissue will be used in dissociation and has an region of interest polygon (ROI) associated with it. + The process of dissecting a tissue sample from a brain slab guided by a dissection region of interest (ROI) delineation. """ - was_derived_from: Optional[str] = Field(None, description="""The donor or brain slab from which the tissue sample was derived from.""") - was_generated_by: Optional[str] = Field(None, description="""The dissection process from which the tissue sample was generated by.""") - name: Optional[str] = Field(None, description="""Identifier name for final intact piece of tissue before cell or nuclei prep. This piece of tissue will be used in dissociation and has an ROI associated with it.""") - dissection_was_guided_by: Optional[str] = Field(None, description="""The dissection ROI polygon that was used to guide the dissection.""") - structure: Optional[List[str]] = Field(default_factory=list, description="""Strucure of tissue sample.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/TissueSample","bican:TissueSample"]] = Field(["bican:TissueSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvActivity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'used': {'description': 'The brain slab from which the tissue ' + 'sample was dissected from.', + 'name': 'used', + 'range': 'BrainSlab'}}}) + + used: Optional[str] = Field(None, description="""The brain slab from which the tissue sample was dissected from.""", json_schema_extra = { "linkml_meta": {'alias': 'used', + 'domain_of': ['ProvActivity', + 'DissectionRoiDelineation', + 'TissueDissection', + 'CellDissociation', + 'CellEnrichment', + 'EnrichedCellSampleSplitting', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'slot_uri': 'prov:used'} }) + was_guided_by: Optional[str] = Field(None, description="""The dissection ROI polygon which was used to guide the tissue dissection.""", json_schema_extra = { "linkml_meta": {'alias': 'was_guided_by', 'domain_of': ['TissueDissection']} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/TissueDissection","bican:TissueDissection"]] = Field(["bican:TissueDissection"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -1981,33 +11432,376 @@ def pattern_category(cls, v): return v -class DissociatedCellSample(ProvEntity, MaterialSample): +class CellDissociation(ProvActivity, Procedure): """ - A collection of dissociated cells or nuclei derived from dissociation of a tissue sample. + The process of generating dissociated cells from an input tissue sample. This process could also introduce a tissue-source barcode (eg cell hashing), allowing mixing of cell dissociation samples at the cell barcoding step. """ - was_generated_by: Optional[str] = Field(None, description="""The cell dissociation process from which the dissociated cell sample was generated by.""") - was_derived_from: Optional[List[str]] = Field(default_factory=list, description="""The input tissue sample(s) from which dissociated cell sample was derived from.""") - name: Optional[str] = Field(None, description="""Name of a collection of dissociated cells or nuclei derived from dissociation of a tissue sample.""") - cell_prep_type: Optional[DissociatedCellSampleCellPrepType] = Field(None, description="""The type of cell preparation. For example: Cells, Nuclei. This is a property of dissociated_cell_sample.""") - cell_source_oligo_name: Optional[DissociatedCellSampleCellLabelBarcode] = Field(None, description="""Name of cell source oligo used in cell plexing. The oligo molecularly tags all the cells in the dissociated cell sample and allows separate dissociated cell samples to be combined downstream in the barcoded cell sample. The oligo name is associated with a sequence in a lookup table. This sequence will be needed during alignment to associate reads with the parent source dissociated cell sample.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/DissociatedCellSample","bican:DissociatedCellSample"]] = Field(["bican:DissociatedCellSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvActivity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'used': {'description': 'The input tissue sample(s) from which ' + 'the dissociated cell sample was ' + 'derived from.', + 'multivalued': True, + 'name': 'used', + 'range': 'TissueSample'}}}) + + used: Optional[List[str]] = Field(None, description="""The input tissue sample(s) from which the dissociated cell sample was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'used', + 'domain_of': ['ProvActivity', + 'DissectionRoiDelineation', + 'TissueDissection', + 'CellDissociation', + 'CellEnrichment', + 'EnrichedCellSampleSplitting', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'slot_uri': 'prov:used'} }) + process_date: Optional[str] = Field(None, description="""Date of cell dissociation process.""", json_schema_extra = { "linkml_meta": {'alias': 'process_date', + 'domain_of': ['CellDissociation', + 'CellEnrichment', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'exact_mappings': ['NIMP:PD-BUBUFE27'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'dissociated_cell_sample_preparation_date'}}} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/CellDissociation","bican:CellDissociation"]] = Field(["bican:CellDissociation"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -2015,34 +11809,376 @@ def pattern_category(cls, v): return v -class EnrichedCellSample(ProvEntity, MaterialSample): +class CellEnrichment(ProvActivity, Procedure): """ - A collection of enriched cells or nuclei after enrichment process, usually via fluorescence-activated cell sorting (FACS) using the enrichment plan, is applied to dissociated cell sample. + The process of enriching a dissociated cell sample by including or excluding cells of different types based on an enrichment plan using techniques such as fluorescence-activated cell sorting (FACS). This process could also introduce a tissue-source barcode (eg cell hashing), allowing mixing of cell enriched samples at the cell barcoding step. """ - was_generated_by: Optional[str] = Field(None, description="""The cell enrichment or sample splitting process from which the enriched cell sample was generated by.""") - was_derived_from: Optional[List[str]] = Field(default_factory=list, description="""The dissociated or enriched cell sample(s) from which the enriched cell sample was derived from.""") - name: Optional[str] = Field(None, description="""Name of collection of enriched cells or nuclei after enrichment process (usually via FACS using the Enrichment Plan) applied to dissociated_cell_sample.""") - enrichment_population: Optional[str] = Field(None, description="""Actual percentage of cells as a result of using set of fluorescent marker label(s) to enrich dissociated_cell_sample with desired mix of cell populations. This plan can also be used to describe 'No FACS' where no enrichment was performed. This is a property of enriched_cell_prep_container.""") - cell_source_oligo_name: Optional[str] = Field(None, description="""Name of cell source oligo used in cell plexing. The oligo molecularly tags all the cells in the enriched cell sample and allows separate enriched cell samples to be combined downstream in the barcoded cell sample. The oligo name is associated with a sequence in a lookup table. This sequence will be needed during alignment to associate reads with the parent source enriched cell sample.""") - histone_modification_marker: Optional[str] = Field(None, description="""Histone modification marker antibodies (eg H3K27ac, H3K27me3, H3K9me3) used in conjunction with an Enriched Cell Source Barcode in order to combine multiple Enriched Cell Populations before Barcoded Cell Sample step for 10xMultiome method. Each of the Histone antibodies captures an essential part of the epigenome.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/EnrichedCellSample","bican:EnrichedCellSample"]] = Field(["bican:EnrichedCellSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvActivity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'used': {'description': 'The input dissociated cell sample(s) ' + 'from which the enriched cell sample ' + 'was derived from.', + 'multivalued': True, + 'name': 'used', + 'range': 'DissociatedCellSample'}}}) + + used: Optional[List[str]] = Field(None, description="""The input dissociated cell sample(s) from which the enriched cell sample was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'used', + 'domain_of': ['ProvActivity', + 'DissectionRoiDelineation', + 'TissueDissection', + 'CellDissociation', + 'CellEnrichment', + 'EnrichedCellSampleSplitting', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'slot_uri': 'prov:used'} }) + process_date: Optional[str] = Field(None, description="""Date of cell enrichment process.""", json_schema_extra = { "linkml_meta": {'alias': 'process_date', + 'domain_of': ['CellDissociation', + 'CellEnrichment', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'exact_mappings': ['NIMP:PD-PFPFFC28'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'enriched_cell_sample_preparation_date'}}} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/CellEnrichment","bican:CellEnrichment"]] = Field(["bican:CellEnrichment"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -2050,32 +12186,365 @@ def pattern_category(cls, v): return v -class BarcodedCellSample(ProvEntity, MaterialSample): +class EnrichedCellSampleSplitting(ProvActivity, Procedure): """ - A collection of molecularly barcoded cells. Input will be either dissociated cell sample or enriched cell sample. Cell barcodes are only guaranteed to be unique within this one collection. One dissociated cell sample or enriched cell sample can lead to multiple barcoded cell samples. The sequences of the molecular barcodes are revealed during alignment of the resulting fastq files for the barcoded cell sample. The barcoded cell sample name and the cell level molecular barcode together uniquely identify a single cell. + The process of splitting an enriched cell sample into several portions. Each portion may be used by the same or different groups for different scientific studies. """ - was_generated_by: Optional[str] = Field(None, description="""The barcoding process from which the barcoded cell sample is generated from.""") - was_derived_from: Optional[List[str]] = Field(default_factory=list, description="""The input dissociated or enriched cell sample(s) from which the barcoded cell sample was derived from.""") - name: Optional[str] = Field(None, description="""Name of a collection of barcoded cells. Input will be either dissociated_cell_sample or enriched_cell_sample. Cell barcodes are only guaranteed to be unique within this one collection. One dissociated_cell_sample or enriched_cell_sample can lead to multiple barcoded_cell_samples.""") - number_of_expected_cells: Optional[int] = Field(None, description="""Expected number of cells/nuclei of a barcoded_cell_sample that will be barcoded and available for sequencing. This is a derived number from 'Barcoded cell input quantity count' that is dependent on the \"capture rate\" of the barcoding method. It is usually a calculated fraction of the 'Barcoded cell input quantity count' going into the barcoding method.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/BarcodedCellSample","bican:BarcodedCellSample"]] = Field(["bican:BarcodedCellSample"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvActivity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'used': {'description': 'The enrichment cell sample splitting ' + 'process from which the enriched cell ' + 'sample was generated by.', + 'name': 'used', + 'range': 'EnrichedCellSample'}}}) + + used: Optional[str] = Field(None, description="""The enrichment cell sample splitting process from which the enriched cell sample was generated by.""", json_schema_extra = { "linkml_meta": {'alias': 'used', + 'domain_of': ['ProvActivity', + 'DissectionRoiDelineation', + 'TissueDissection', + 'CellDissociation', + 'CellEnrichment', + 'EnrichedCellSampleSplitting', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'slot_uri': 'prov:used'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/EnrichedCellSampleSplitting","bican:EnrichedCellSampleSplitting"]] = Field(["bican:EnrichedCellSampleSplitting"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -2083,34 +12552,399 @@ def pattern_category(cls, v): return v -class AmplifiedCdna(ProvEntity, MaterialSample): +class CellBarcoding(ProvActivity, Procedure): """ - A collection of cDNA molecules derived and amplified from an input barcoded cell sample. These cDNA molecules represent the gene expression of each cell, with all cDNA molecules from a given cell retaining that cell's unique barcode from the cell barcoding step. This is a necessary step for GEX methods but is not used for ATAC methods. + The process of adding a molecular barcode to individual cells in a sample. The input will be either dissociated cell sample or enriched cell sample. Cell barcodes are only guaranteed to be unique within this one collection. One dissociated cell sample or enriched cell sample can lead to multiple barcoded cell samples. """ - was_generated_by: Optional[str] = Field(None, description="""The cDNA amplification process from which the amplified cDNA was generated by.""") - was_derived_from: Optional[str] = Field(None, description="""The input barcoded cell sample from which amplified cDNA was derived from.""") - name: Optional[str] = Field(None, description="""Name of a collection of cDNA molecules derived and amplified from an input barcoded_cell_sample. These cDNA molecules represent the gene expression of each cell, with all cDNA molecules from a given cell retaining that cell's unique barcode from the cell barcoding step. This is a necessary step for GEX methods but is not used for ATAC methods.""") - quantity_ng: Optional[float] = Field(None, description="""Amount of cDNA produced after cDNA amplification measured in nanograms.""") - pass_fail_result: Optional[AmplifiedCdnaRnaAmplificationPassFail] = Field(None, description="""Pass or Fail result based on qualitative assessment of cDNA yield and size.""") - percent_cdna_longer_than_400bp: Optional[float] = Field(None, description="""QC metric to measure mRNA degradation of cDNA. Higher % is higher quality starting material. Over 400bp is used as a universal cutoff for intact (full length) vs degraded cDNA and is a common output from Bioanalyzer and Fragment Analyzer elecropheragrams.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/AmplifiedCdna","bican:AmplifiedCdna"]] = Field(["bican:AmplifiedCdna"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvActivity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'used': {'description': 'The input dissociated or enriched ' + 'cell sample(s) from which the ' + 'barcoded cell sample was derived ' + 'from.', + 'exactly_one_of': [{'range': 'DissociatedCellSample'}, + {'range': 'EnrichedCellSample'}], + 'multivalued': True, + 'name': 'used'}}}) + + used: Optional[List[str]] = Field(None, description="""The input dissociated or enriched cell sample(s) from which the barcoded cell sample was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'used', + 'domain_of': ['ProvActivity', + 'DissectionRoiDelineation', + 'TissueDissection', + 'CellDissociation', + 'CellEnrichment', + 'EnrichedCellSampleSplitting', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'exactly_one_of': [{'range': 'DissociatedCellSample'}, + {'range': 'EnrichedCellSample'}], + 'slot_uri': 'prov:used'} }) + barcoded_cell_sample_port_well: Optional[str] = Field(None, description="""Specific position of the loaded port of the 10x chip. An Enriched or Dissociated Cell Sample is loaded into a port on a chip (creating a Barcoded Cell Sample). Can be left null for non-10x methods.""", json_schema_extra = { "linkml_meta": {'alias': 'barcoded cell sample port well', + 'domain_of': ['CellBarcoding'], + 'exact_mappings': ['NIMP:PD-KJKJZK32'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'barcoded_cell_sample_port_well'}}, + 'slot_uri': 'bican:aca38100-d245-4be4-9be3-ba27192779fe'} }) + barcoded_cell_input_quantity_count: Optional[int] = Field(None, description="""Number of enriched or dissociated cells/nuclei going into the barcoding process.""", json_schema_extra = { "linkml_meta": {'alias': 'barcoded cell input quantity count', + 'domain_of': ['CellBarcoding'], + 'exact_mappings': ['NIMP:PD-ZZZZWQ40'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'barcoded_cell_input_quantity_count'}}, + 'slot_uri': 'bican:aa534269-7c9b-4b63-b990-eea8cda56d0e'} }) + process_date: Optional[str] = Field(None, description="""Date of cell barcoding process.""", json_schema_extra = { "linkml_meta": {'alias': 'process_date', + 'domain_of': ['CellDissociation', + 'CellEnrichment', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'exact_mappings': ['NIMP:PD-SHSHZS25'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'barcoded_cell_sample_preparation_date'}}} }) + method: Optional[BarcodedCellSampleTechnique] = Field(None, description="""Standardized nomenclature to describe the general barcoding method used. For example: Multiome, ATAC Only, GEX Only or snm3C-seq.""", json_schema_extra = { "linkml_meta": {'alias': 'method', + 'domain_of': ['CellBarcoding', 'LibraryConstruction'], + 'exact_mappings': ['NIMP:PD-TDTDDF25'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'barcoded_cell_sample_technique'}}} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/CellBarcoding","bican:CellBarcoding"]] = Field(["bican:CellBarcoding"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -2118,37 +12952,390 @@ def pattern_category(cls, v): return v -class Library(ProvEntity, MaterialSample): +class CdnaAmplification(ProvActivity, Procedure): """ - A collection of fragmented and barcode-indexed DNA molecules for sequencing. An index or barcode is typically introduced to enable identification of library origin to allow libraries to be pooled together for sequencing. + The process of creating a collection of cDNA molecules derived and amplified from an input barcoded cell sample. A large amount of cDNA is needed to have accurate and reliable sequencing detection of gene expression. This process generates multiple copies of each mRNA transcript (expressed gene) within each cell while retaining the cell's unique barcode from the barcoding step. This is a necessary step for GEX methods but is not used for ATAC methods. """ - was_generated_by: Optional[str] = Field(None, description="""The library construction process from which the library was generated by.""") - was_derived_from: Optional[str] = Field(None, description="""The input barcoded cell sample or amplified cDNA from which the library was derived from.""") - name: Optional[str] = Field(None, description="""Name of a library, which is a collection of fragmented and barcode-indexed DNA molecules for sequencing. An index or barcode is typically introduced to enable identification of library origin to allow libraries to be pooled together for sequencing.""") - average_size_bp: Optional[int] = Field(None, description="""Average size of the library in terms of base pairs. This is used to calculate the molarity before pooling and sequencing.""") - concentration_nm: Optional[float] = Field(None, description="""Concentration of library in terms of nM (nMol/L). Number of molecules is needed for accurate pooling of the libraries and for generating the number of target reads/cell in sequencing.""") - pass_fail_result: Optional[LibraryPrepPassFail] = Field(None, description="""Pass or Fail result based on qualitative assessment of library yield and size.""") - quantity_fmol: Optional[float] = Field(None, description="""Amount of library generated in terms of femtomoles""") - quantity_ng: Optional[float] = Field(None, description="""Amount of library generated in terms of nanograms""") - r1_r2_index: Optional[LibraryR1R2Index] = Field(None, description="""Name of the pair of library indexes used for sequencing. Indexes allow libraries to be pooled together for sequencing. Sequencing output (fastq) are demultiplexed by using the indexes for each library. The name will be associated with the sequences of i7, i5, and i5as, which are needed by SeqCores for demultiplexing. The required direction of the sequence (sense or antisense) of the index can differ depending on sequencing instruments.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/Library","bican:Library"]] = Field(["bican:Library"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvActivity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'used': {'description': 'The input barcoded cell sample from ' + 'which amplified cDNA was derived ' + 'from.', + 'name': 'used', + 'range': 'BarcodedCellSample'}}}) + + used: Optional[str] = Field(None, description="""The input barcoded cell sample from which amplified cDNA was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'used', + 'domain_of': ['ProvActivity', + 'DissectionRoiDelineation', + 'TissueDissection', + 'CellDissociation', + 'CellEnrichment', + 'EnrichedCellSampleSplitting', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'slot_uri': 'prov:used'} }) + amplified_cDNA_PCR_cycles: Optional[int] = Field(None, description="""Number of PCR cycles used during cDNA amplification for this cDNA.""", json_schema_extra = { "linkml_meta": {'alias': 'amplified cDNA PCR cycles', + 'domain_of': ['CdnaAmplification'], + 'exact_mappings': ['NIMP:PD-OKOKQD38'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'amplified_cdna_pcr_cycles'}}, + 'slot_uri': 'bican:3827634c-3f8f-4760-b358-86ce4b030238'} }) + cDNA_amplification_process_date: Optional[date] = Field(None, description="""Date of cDNA amplification.""", json_schema_extra = { "linkml_meta": {'alias': 'cDNA amplification process date', + 'domain_of': ['CellDissociation', + 'CellEnrichment', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'exact_mappings': ['NIMP:PD-BYBYBY24'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'amplified_cdna_preparation_date'}}, + 'slot_uri': 'bican:6cc333e7-9b98-497f-b7b1-eae904db2400'} }) + cDNA_amplification_set: Optional[str] = Field(None, description="""cDNA amplification set, containing multiple amplified_cDNA_names that were processed at the same time.""", json_schema_extra = { "linkml_meta": {'alias': 'cDNA amplification set', + 'domain_of': ['CdnaAmplification', 'LibraryConstruction'], + 'exact_mappings': ['NIMP:PD-SCSCTM41'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'cdna_amplification_set'}}, + 'slot_uri': 'bican:42e98a88-50b3-4ea2-871b-2142f6a0dfdd'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/CdnaAmplification","bican:CdnaAmplification"]] = Field(["bican:CdnaAmplification"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -2156,31 +13343,399 @@ def pattern_category(cls, v): return v -class LibraryAliquot(ProvEntity, MaterialSample): +class LibraryConstruction(ProvActivity, Procedure): """ - One library in the library pool. Each library aliquot in a library pool will have a unique R1/R2 index to allow for sequencing together then separating the sequencing output by originating library aliquot through the process of demultiplexing. The resulting demultiplexed fastq files will include the library aliquot name. A given library may produce multiple library aliquots, which is done in the case of resequencing. Each library aliquot will produce a set of fastq files. + The process of constructing a library from input material (such as amplified cDNA or barcoded cell sample) derived from one or more cell samples. cDNA is fragmented into smaller pieces appropriate for sequencing and at the same time a library index barcode is incorporated to enable identification of library origin, allowing libraries to be pooled together for sequencing. """ - was_derived_from: Optional[str] = Field(None, description="""The input library from which the library aliquot was derived from.""") - name: Optional[str] = Field(None, description="""One library in the library pool. Each Library_aliquot_name in a library pool will have a unique R1/R2 index to allow for sequencing together then separating the sequencing output by originating library aliquot through the process of demultiplexing. The resulting demultiplexed fastq files will include the library_aliquot_name.""") - was_generated_by: Optional[str] = Field(None, description="""Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/LibraryAliquot","bican:LibraryAliquot"]] = Field(["bican:LibraryAliquot"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvActivity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'used': {'any_of': [{'range': 'BarcodedCellSample'}, + {'range': 'AmplifiedCdna'}], + 'description': 'The input barcoded cell sample or ' + 'amplified cDNA from which the library ' + 'was derived from.', + 'name': 'used'}}}) + + used: Optional[str] = Field(None, description="""The input barcoded cell sample or amplified cDNA from which the library was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'used', + 'any_of': [{'range': 'BarcodedCellSample'}, {'range': 'AmplifiedCdna'}], + 'domain_of': ['ProvActivity', + 'DissectionRoiDelineation', + 'TissueDissection', + 'CellDissociation', + 'CellEnrichment', + 'EnrichedCellSampleSplitting', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'slot_uri': 'prov:used'} }) + library_method: Optional[LibraryTechnique] = Field(None, description="""Standardized nomenclature to describe the specific library method used. This specifies the alignment method required for the library. For example, 10xV3.1 (for RNASeq single assay), 10xMult-GEX (for RNASeq multiome assay), and 10xMult-ATAC (for ATACSeq multiome assay).""", json_schema_extra = { "linkml_meta": {'alias': 'library method', + 'domain_of': ['CellBarcoding', 'LibraryConstruction'], + 'exact_mappings': ['NIMP:PD-AJAJCN35'], + 'in_subset': ['analysis', 'tracking', 'alignment'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_technique'}}, + 'slot_uri': 'bican:7b60d59e-fdd7-4b27-a2d4-cae9b69103a6'} }) + library_creation_date: Optional[date] = Field(None, description="""Date of library construction.""", json_schema_extra = { "linkml_meta": {'alias': 'library creation date', + 'domain_of': ['CellDissociation', + 'CellEnrichment', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'exact_mappings': ['NIMP:PD-JCJCNM35'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_preparation_date'}}, + 'slot_uri': 'bican:9c2f575d-1b64-451d-894f-656861afe07a'} }) + library_input_ng: Optional[float] = Field(None, description="""Amount of cDNA going into library construction in nanograms.""", json_schema_extra = { "linkml_meta": {'alias': 'library input ng', + 'domain_of': ['LibraryConstruction'], + 'exact_mappings': ['NIMP:PD-AFAFXP37'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_input_ng'}}, + 'slot_uri': 'bican:e4d31d97-722d-4771-a0e4-e6062190f2c1'} }) + library_prep_set: Optional[str] = Field(None, description="""Library set, containing multiple library_names that were processed at the same time.""", json_schema_extra = { "linkml_meta": {'alias': 'library prep set', + 'domain_of': ['CdnaAmplification', 'LibraryConstruction'], + 'exact_mappings': ['NIMP:PD-PCPCVR50'], + 'in_subset': ['analysis'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_prep_set'}}, + 'slot_uri': 'bican:b124ffa9-9134-4a61-a30d-bb191b2fc7fa'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/LibraryConstruction","bican:LibraryConstruction"]] = Field(["bican:LibraryConstruction"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -2188,32 +13743,375 @@ def pattern_category(cls, v): return v -class LibraryPool(ProvEntity, MaterialSample): +class LibraryPooling(ProvActivity, Procedure): """ - A library pool is made up of library aliquots from multiple libraries. Each library aliquot in a library pool will have a unique R1/R2 index to allow for sequencing together then separating the sequencing output by originating library aliquot through the process of demultiplexing. + The process of constructing of a libray pool by combining library aliquots from a set of input libraries. Each library aliquot in a library pool will have a unique R1/R2 index to allow for sequencing together then separating the sequencing output by originating library aliquot through the process of demultiplexing. """ - was_generated_by: Optional[str] = Field(None, description="""The pooling process from which the library pool was generated by.""") - was_derived_from: Optional[List[str]] = Field(default_factory=list, description="""The input aliquot(s) from which the library pool was derived from.""") - name: Optional[str] = Field(None, description="""Library lab's library pool name. For some labs this may be the same as \"Libray pool tube local name\". Other labs distinguish between the local tube label of the library pool and the library pool name provided to SeqCore for tracking. Local Pool Name is used to communicate sequencing status between SeqCore and Library Labs.""") - local_tube_id: Optional[str] = Field(None, description="""Library Pool Tube local name. Label of the tube containing the library pool, which is made up of multiple library_aliquots. This is a Library Lab local tube name, before the pool is aliquoted to the Seq Core provided tube 'Library Pool Tube Name'.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/LibraryPool","bican:LibraryPool"]] = Field(["bican:LibraryPool"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") - provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""") - xref: Optional[List[str]] = Field(default_factory=list, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""") - full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") - synonym: Optional[List[str]] = Field(default_factory=list, description="""Alternate human-readable names for a thing""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'library_generation'], + 'mixins': ['ProvActivity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'used': {'description': 'The input aliquot(s) from which the ' + 'library pool was derived from.', + 'multivalued': True, + 'name': 'used', + 'range': 'LibraryAliquot'}}}) + + used: Optional[List[str]] = Field(None, description="""The input aliquot(s) from which the library pool was derived from.""", json_schema_extra = { "linkml_meta": {'alias': 'used', + 'domain_of': ['ProvActivity', + 'DissectionRoiDelineation', + 'TissueDissection', + 'CellDissociation', + 'CellEnrichment', + 'EnrichedCellSampleSplitting', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'slot_uri': 'prov:used'} }) + process_date: Optional[str] = Field(None, description="""Date of library pooling process.""", json_schema_extra = { "linkml_meta": {'alias': 'process_date', + 'domain_of': ['CellDissociation', + 'CellEnrichment', + 'CellBarcoding', + 'CdnaAmplification', + 'LibraryConstruction', + 'LibraryPooling'], + 'exact_mappings': ['NIMP:PD-XUXUNM35'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'library_pool_preparation_date'}}} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/LibraryPooling","bican:LibraryPooling"]] = Field(["bican:LibraryPooling"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -2225,24 +14123,716 @@ class DissectionRoiPolygon(ProvEntity, Entity): """ A polygon annotated on a brain slab image delineating a region of interest (ROI) for a tissue sample dissectioning. """ - was_generated_by: Optional[str] = Field(None, description="""The delineation process from which the dissection ROI polygon was generated by.""") - name: Optional[str] = Field(None, description="""Name of a polygon annotated on a brain slab image delineating a region of interest (ROI) for a tissue sample dissectioning.""") - annotates: Optional[str] = Field(None, description="""The brain slab that was annotated by the delineation process.""") - was_derived_from: Optional[str] = Field(None, description="""A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.""") - id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""") - iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""") - category: List[Literal["https://identifiers.org/brain-bican/vocab/DissectionRoiPolygon","bican:DissectionRoiPolygon"]] = Field(["bican:DissectionRoiPolygon"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""") - type: Optional[List[str]] = Field(default_factory=list) - description: Optional[str] = Field(None, description="""a human-readable description of an entity""") - has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") - deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""") + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'exact_mappings': ['NIMP:Specimen%20Dissected%20ROI'], + 'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'in_subset': ['bican', 'tissue_specimen'], + 'mixins': ['ProvEntity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'name': {'description': 'Name of a polygon annotated on a ' + 'brain slab image delineating a region ' + 'of interest (ROI) for a tissue sample ' + 'dissectioning.', + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'local_name'}}, + 'name': 'name'}, + 'was_generated_by': {'description': 'The delineation process ' + 'from which the dissection ' + 'ROI polygon was generated ' + 'by.', + 'name': 'was_generated_by', + 'range': 'DissectionRoiDelineation'}}}) + + was_generated_by: Optional[str] = Field(None, description="""The delineation process from which the dissection ROI polygon was generated by.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + name: Optional[str] = Field(None, description="""Name of a polygon annotated on a brain slab image delineating a region of interest (ROI) for a tissue sample dissectioning.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'local_names': {'NIMP': {'local_name_source': 'NIMP', + 'local_name_value': 'local_name'}}, + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + annotates: Optional[str] = Field(None, description="""The brain slab that was annotated by the delineation process.""", json_schema_extra = { "linkml_meta": {'alias': 'annotates', + 'domain_of': ['DissectionRoiPolygon'], + 'exact_mappings': ['NIMP:has_parent']} }) + was_derived_from: Optional[str] = Field(None, description="""A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'slot_uri': 'prov:wasDerivedFrom'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/DissectionRoiPolygon","bican:DissectionRoiPolygon"]] = Field(["bican:DissectionRoiPolygon"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + + @field_validator('category') + def pattern_category(cls, v): + pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") + if isinstance(v,list): + for element in v: + if isinstance(v, str) and not pattern.match(element): + raise ValueError(f"Invalid category format: {element}") + elif isinstance(v,str): + if not pattern.match(v): + raise ValueError(f"Invalid category format: {v}") + return v + + +class DigitalAsset(ProvEntity, Dataset): + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://identifiers.org/brain-bican/library-generation-schema', + 'mixins': ['ProvEntity'], + 'slot_usage': {'category': {'name': 'category', + 'pattern': '^bican:[A-Z][A-Za-z]+$'}, + 'content_url': {'name': 'content_url'}, + 'digest': {'name': 'digest'}, + 'was_derived_from': {'name': 'was_derived_from', + 'range': 'LibraryPool'}}}) + + was_derived_from: Optional[str] = Field(None, description="""A derivation is a transformation of an entity into another, an update of an entity resulting in a new one, or the construction of a new entity based on a pre-existing entity.""", json_schema_extra = { "linkml_meta": {'alias': 'was_derived_from', + 'domain_of': ['ProvEntity', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DigitalAsset'], + 'slot_uri': 'prov:wasDerivedFrom'} }) + digest: Optional[List[Union[Checksum, str]]] = Field(None, description="""Stores checksum information.""", json_schema_extra = { "linkml_meta": {'alias': 'digest', + 'any_of': [{'range': 'checksum'}, {'range': 'string'}], + 'domain_of': ['DigitalAsset']} }) + content_url: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'content_url', 'domain_of': ['DigitalAsset']} }) + data_type: Optional[str] = Field(None, description="""The type of data in the file""", json_schema_extra = { "linkml_meta": {'alias': 'data_type', 'domain_of': ['DigitalAsset']} }) + was_generated_by: Optional[str] = Field(None, description="""Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation.""", json_schema_extra = { "linkml_meta": {'alias': 'was_generated_by', + 'domain_of': ['ProvEntity', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'slot_uri': 'prov:wasGeneratedBy'} }) + id: str = Field(..., description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", json_schema_extra = { "linkml_meta": {'alias': 'id', + 'definition_uri': 'https://w3id.org/biolink/vocab/id', + 'domain': 'entity', + 'domain_of': ['ontology class', + 'entity', + 'attribute', + 'named thing', + 'taxonomic rank', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['AGRKB:primaryId', 'gff3:ID', 'gpi:DB_Object_ID'], + 'in_subset': ['translator_minimal'], + 'slot_uri': 'biolink:id'} }) + iri: Optional[str] = Field(None, description="""An IRI for an entity. This is determined by the id using expansion rules.""", json_schema_extra = { "linkml_meta": {'alias': 'iri', + 'definition_uri': 'https://w3id.org/biolink/vocab/iri', + 'domain_of': ['attribute', + 'entity', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['WIKIDATA_PROPERTY:P854'], + 'in_subset': ['translator_minimal', 'samples'], + 'slot_uri': 'biolink:iri'} }) + category: List[Literal["https://identifiers.org/brain-bican/vocab/DigitalAsset","bican:DigitalAsset"]] = Field(["bican:DigitalAsset"], description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. In a neo4j database this MAY correspond to the neo4j label tag. In an RDF database it should be a biolink model class URI. This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`. In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", json_schema_extra = { "linkml_meta": {'alias': 'category', + 'definition_uri': 'https://w3id.org/biolink/vocab/category', + 'designates_type': True, + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'type', + 'is_class_field': True, + 'slot_uri': 'biolink:category'} }) + type: Optional[List[str]] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'type', + 'definition_uri': 'https://w3id.org/biolink/vocab/type', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['gff3:type', 'gpi:DB_Object_Type'], + 'mappings': ['rdf:type'], + 'slot_uri': 'rdf:type'} }) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""", json_schema_extra = { "linkml_meta": {'alias': 'name', + 'aliases': ['label', 'display name', 'title'], + 'definition_uri': 'https://w3id.org/biolink/vocab/name', + 'domain': 'entity', + 'domain_of': ['attribute', + 'entity', + 'macromolecular machine mixin', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene or gene product', + 'gene', + 'genome', + 'Donor', + 'BrainSlab', + 'TissueSample', + 'DissociatedCellSample', + 'EnrichedCellSample', + 'BarcodedCellSample', + 'AmplifiedCdna', + 'Library', + 'LibraryAliquot', + 'LibraryPool', + 'DissectionRoiPolygon'], + 'exact_mappings': ['gff3:Name', 'gpi:DB_Object_Name'], + 'in_subset': ['translator_minimal', 'samples'], + 'mappings': ['rdfs:label'], + 'narrow_mappings': ['dct:title', 'WIKIDATA_PROPERTY:P1476'], + 'slot_uri': 'rdfs:label'} }) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""", json_schema_extra = { "linkml_meta": {'alias': 'description', + 'aliases': ['definition'], + 'definition_uri': 'https://w3id.org/biolink/vocab/description', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['IAO:0000115', 'skos:definitions'], + 'in_subset': ['translator_minimal'], + 'mappings': ['dct:description'], + 'narrow_mappings': ['gff3:Description'], + 'slot_uri': 'dct:description'} }) + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""", json_schema_extra = { "linkml_meta": {'alias': 'has_attribute', + 'close_mappings': ['OBI:0001927'], + 'definition_uri': 'https://w3id.org/biolink/vocab/has_attribute', + 'domain': 'entity', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['SIO:000008'], + 'in_subset': ['samples'], + 'narrow_mappings': ['OBAN:association_has_subject_property', + 'OBAN:association_has_object_property', + 'CPT:has_possibly_included_panel_element', + 'DRUGBANK:category', + 'EFO:is_executed_in', + 'HANCESTRO:0301', + 'LOINC:has_action_guidance', + 'LOINC:has_adjustment', + 'LOINC:has_aggregation_view', + 'LOINC:has_approach_guidance', + 'LOINC:has_divisor', + 'LOINC:has_exam', + 'LOINC:has_method', + 'LOINC:has_modality_subtype', + 'LOINC:has_object_guidance', + 'LOINC:has_scale', + 'LOINC:has_suffix', + 'LOINC:has_time_aspect', + 'LOINC:has_time_modifier', + 'LOINC:has_timing_of', + 'NCIT:R88', + 'NCIT:eo_disease_has_property_or_attribute', + 'NCIT:has_data_element', + 'NCIT:has_pharmaceutical_administration_method', + 'NCIT:has_pharmaceutical_basic_dose_form', + 'NCIT:has_pharmaceutical_intended_site', + 'NCIT:has_pharmaceutical_release_characteristics', + 'NCIT:has_pharmaceutical_state_of_matter', + 'NCIT:has_pharmaceutical_transformation', + 'NCIT:is_qualified_by', + 'NCIT:qualifier_applies_to', + 'NCIT:role_has_domain', + 'NCIT:role_has_range', + 'INO:0000154', + 'HANCESTRO:0308', + 'OMIM:has_inheritance_type', + 'orphanet:C016', + 'orphanet:C017', + 'RO:0000053', + 'RO:0000086', + 'RO:0000087', + 'SNOMED:has_access', + 'SNOMED:has_clinical_course', + 'SNOMED:has_count_of_base_of_active_ingredient', + 'SNOMED:has_dose_form_administration_method', + 'SNOMED:has_dose_form_release_characteristic', + 'SNOMED:has_dose_form_transformation', + 'SNOMED:has_finding_context', + 'SNOMED:has_finding_informer', + 'SNOMED:has_inherent_attribute', + 'SNOMED:has_intent', + 'SNOMED:has_interpretation', + 'SNOMED:has_laterality', + 'SNOMED:has_measurement_method', + 'SNOMED:has_method', + 'SNOMED:has_priority', + 'SNOMED:has_procedure_context', + 'SNOMED:has_process_duration', + 'SNOMED:has_property', + 'SNOMED:has_revision_status', + 'SNOMED:has_scale_type', + 'SNOMED:has_severity', + 'SNOMED:has_specimen', + 'SNOMED:has_state_of_matter', + 'SNOMED:has_subject_relationship_context', + 'SNOMED:has_surgical_approach', + 'SNOMED:has_technique', + 'SNOMED:has_temporal_context', + 'SNOMED:has_time_aspect', + 'SNOMED:has_units', + 'UMLS:has_structural_class', + 'UMLS:has_supported_concept_property', + 'UMLS:has_supported_concept_relationship', + 'UMLS:may_be_qualified_by'], + 'slot_uri': 'biolink:has_attribute'} }) + deprecated: Optional[bool] = Field(None, description="""A boolean flag indicating that an entity is no longer considered current or valid.""", json_schema_extra = { "linkml_meta": {'alias': 'deprecated', + 'definition_uri': 'https://w3id.org/biolink/vocab/deprecated', + 'domain_of': ['entity', + 'attribute', + 'named thing', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'exact_mappings': ['oboInOwl:ObsoleteClass'], + 'slot_uri': 'biolink:deprecated'} }) + provided_by: Optional[List[str]] = Field(None, description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", json_schema_extra = { "linkml_meta": {'alias': 'provided_by', + 'definition_uri': 'https://w3id.org/biolink/vocab/provided_by', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:provided_by'} }) + xref: Optional[List[str]] = Field(None, description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", json_schema_extra = { "linkml_meta": {'alias': 'xref', + 'aliases': ['dbxref', 'Dbxref', 'DbXref', 'record_url', 'source_record_urls'], + 'definition_uri': 'https://w3id.org/biolink/vocab/xref', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'gene', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'genome'], + 'in_subset': ['translator_minimal'], + 'narrow_mappings': ['gff3:Dbxref', 'gpi:DB_Xrefs'], + 'slot_uri': 'biolink:xref'} }) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'full_name', + 'definition_uri': 'https://w3id.org/biolink/vocab/full_name', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'is_a': 'node property', + 'slot_uri': 'biolink:full_name'} }) + synonym: Optional[List[str]] = Field(None, description="""Alternate human-readable names for a thing""", json_schema_extra = { "linkml_meta": {'alias': 'synonym', + 'aliases': ['alias'], + 'definition_uri': 'https://w3id.org/biolink/vocab/synonym', + 'domain': 'named thing', + 'domain_of': ['named thing', + 'attribute', + 'organism taxon', + 'information content entity', + 'dataset', + 'physical entity', + 'activity', + 'procedure', + 'material sample', + 'biological entity', + 'gene', + 'genome'], + 'in_subset': ['translator_minimal'], + 'is_a': 'node property', + 'narrow_mappings': ['skos:altLabel', + 'gff3:Alias', + 'AGRKB:synonyms', + 'gpi:DB_Object_Synonyms', + 'HANCESTRO:0330', + 'IAO:0000136', + 'RXNORM:has_tradename'], + 'slot_uri': 'biolink:synonym'} }) + license: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'license', + 'definition_uri': 'https://w3id.org/biolink/vocab/license', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:license'], + 'is_a': 'node property', + 'narrow_mappings': ['WIKIDATA_PROPERTY:P275'], + 'slot_uri': 'biolink:license'} }) + rights: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'rights', + 'definition_uri': 'https://w3id.org/biolink/vocab/rights', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:rights'], + 'is_a': 'node property', + 'slot_uri': 'biolink:rights'} }) + format: Optional[str] = Field(None, json_schema_extra = { "linkml_meta": {'alias': 'format', + 'definition_uri': 'https://w3id.org/biolink/vocab/format', + 'domain': 'information content entity', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:format', 'WIKIDATA_PROPERTY:P2701'], + 'is_a': 'node property', + 'slot_uri': 'biolink:format'} }) + creation_date: Optional[date] = Field(None, description="""date on which an entity was created. This can be applied to nodes or edges""", json_schema_extra = { "linkml_meta": {'alias': 'creation_date', + 'aliases': ['publication date'], + 'definition_uri': 'https://w3id.org/biolink/vocab/creation_date', + 'domain': 'named thing', + 'domain_of': ['information content entity', 'dataset'], + 'exact_mappings': ['dct:createdOn', 'WIKIDATA_PROPERTY:P577'], + 'is_a': 'node property', + 'slot_uri': 'biolink:creation_date'} }) @field_validator('category') def pattern_category(cls, v): pattern=re.compile(r"^bican:[A-Z][A-Za-z]+$") if isinstance(v,list): for element in v: - if not pattern.match(element): + if isinstance(v, str) and not pattern.match(element): raise ValueError(f"Invalid category format: {element}") elif isinstance(v,str): if not pattern.match(v): @@ -2280,16 +14870,8 @@ def pattern_category(cls, v): Gene.model_rebuild() Genome.model_rebuild() ProvActivity.model_rebuild() -DissectionRoiDelineation.model_rebuild() -TissueDissection.model_rebuild() -CellDissociation.model_rebuild() -CellEnrichment.model_rebuild() -EnrichedCellSampleSplitting.model_rebuild() -CellBarcoding.model_rebuild() -CdnaAmplification.model_rebuild() -LibraryConstruction.model_rebuild() -LibraryPooling.model_rebuild() ProvEntity.model_rebuild() +Checksum.model_rebuild() Donor.model_rebuild() BrainSlab.model_rebuild() TissueSample.model_rebuild() @@ -2300,5 +14882,15 @@ def pattern_category(cls, v): Library.model_rebuild() LibraryAliquot.model_rebuild() LibraryPool.model_rebuild() +DissectionRoiDelineation.model_rebuild() +TissueDissection.model_rebuild() +CellDissociation.model_rebuild() +CellEnrichment.model_rebuild() +EnrichedCellSampleSplitting.model_rebuild() +CellBarcoding.model_rebuild() +CdnaAmplification.model_rebuild() +LibraryConstruction.model_rebuild() +LibraryPooling.model_rebuild() DissectionRoiPolygon.model_rebuild() +DigitalAsset.model_rebuild()