diff --git a/project/excel/opencloning_linkml.xlsx b/project/excel/opencloning_linkml.xlsx index bba6a4c..bf43817 100644 Binary files a/project/excel/opencloning_linkml.xlsx and b/project/excel/opencloning_linkml.xlsx differ diff --git a/project/graphql/opencloning_linkml.graphql b/project/graphql/opencloning_linkml.graphql index 49dd0ba..8e7bfee 100644 --- a/project/graphql/opencloning_linkml.graphql +++ b/project/graphql/opencloning_linkml.graphql @@ -390,6 +390,26 @@ type Primer sequence: String } +type Recombinase + { + name: String + site1: String! + site2: String! + site1Name: String + site2Name: String + } + +type RecombinaseSource + { + id: Integer! + type: String + outputName: String + databaseId: Integer + input: [SourceInput] + circular: Boolean + recombinases: [Recombinase]! + } + type RepositoryIdSource { id: Integer! diff --git a/project/jsonld/opencloning_linkml.context.jsonld b/project/jsonld/opencloning_linkml.context.jsonld index 80e212f..d54048a 100644 --- a/project/jsonld/opencloning_linkml.context.jsonld +++ b/project/jsonld/opencloning_linkml.context.jsonld @@ -1,7 +1,7 @@ { "comments": { "description": "Auto generated by LinkML jsonld context generator", - "generation_date": "2025-12-06T00:30:23", + "generation_date": "2026-03-04T18:08:29", "source": "opencloning_linkml.yaml" }, "@context": { @@ -246,6 +246,22 @@ "Type": { "@id": "Type" }, + "site1": { + "@id": "site1" + }, + "site1_name": { + "@id": "site1_name" + }, + "site2": { + "@id": "site2" + }, + "site2_name": { + "@id": "site2_name" + }, + "recombinases": { + "@type": "opencloning_linkml:Recombinase", + "@id": "recombinases" + }, "repository_id": { "@id": "repository_id" }, @@ -405,6 +421,12 @@ "Primer": { "@id": "Primer" }, + "Recombinase": { + "@id": "Recombinase" + }, + "RecombinaseSource": { + "@id": "RecombinaseSource" + }, "RepositoryIdSource": { "@id": "RepositoryIdSource" }, diff --git a/project/jsonld/opencloning_linkml.jsonld b/project/jsonld/opencloning_linkml.jsonld index bfe3d05..37db550 100644 --- a/project/jsonld/opencloning_linkml.jsonld +++ b/project/jsonld/opencloning_linkml.jsonld @@ -559,11 +559,12 @@ "http://schema.org/name" ], "slot_uri": "http://schema.org/name", - "owner": "CollectionOptionInfo", + "owner": "Recombinase", "domain_of": [ "Primer", "CollectionOption", - "CollectionOptionInfo" + "CollectionOptionInfo", + "Recombinase" ], "range": "string", "@type": "SlotDefinition" @@ -1258,6 +1259,76 @@ "range": "boolean", "@type": "SlotDefinition" }, + { + "name": "recombinase__site1", + "from_schema": "https://opencloning.github.io/OpenCloning_LinkML", + "slot_uri": "https://opencloning.github.io/OpenCloning_LinkML/site1", + "alias": "site1", + "owner": "Recombinase", + "domain_of": [ + "Recombinase" + ], + "range": "string", + "required": true, + "pattern": "^[A-Z]+[a-z]+[A-Z]+$", + "@type": "SlotDefinition" + }, + { + "name": "recombinase__site2", + "from_schema": "https://opencloning.github.io/OpenCloning_LinkML", + "slot_uri": "https://opencloning.github.io/OpenCloning_LinkML/site2", + "alias": "site2", + "owner": "Recombinase", + "domain_of": [ + "Recombinase" + ], + "range": "string", + "required": true, + "pattern": "^[A-Z]+[a-z]+[A-Z]+$", + "@type": "SlotDefinition" + }, + { + "name": "recombinase__site1_name", + "from_schema": "https://opencloning.github.io/OpenCloning_LinkML", + "slot_uri": "https://opencloning.github.io/OpenCloning_LinkML/site1_name", + "ifabsent": "string(\"site1\")", + "alias": "site1_name", + "owner": "Recombinase", + "domain_of": [ + "Recombinase" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "recombinase__site2_name", + "from_schema": "https://opencloning.github.io/OpenCloning_LinkML", + "slot_uri": "https://opencloning.github.io/OpenCloning_LinkML/site2_name", + "ifabsent": "string(\"site2\")", + "alias": "site2_name", + "owner": "Recombinase", + "domain_of": [ + "Recombinase" + ], + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "recombinaseSource__recombinases", + "from_schema": "https://opencloning.github.io/OpenCloning_LinkML", + "slot_uri": "https://opencloning.github.io/OpenCloning_LinkML/recombinases", + "alias": "recombinases", + "owner": "RecombinaseSource", + "domain_of": [ + "RecombinaseSource" + ], + "range": "Recombinase", + "required": true, + "multivalued": true, + "inlined": true, + "inlined_as_list": true, + "@type": "SlotDefinition" + }, { "name": "cloningStrategy__sequences", "description": "The sequences that are used in the cloning strategy", @@ -3184,6 +3255,78 @@ "class_uri": "https://opencloning.github.io/OpenCloning_LinkML/PolymeraseExtensionSource", "@type": "ClassDefinition" }, + { + "name": "Recombinase", + "definition_uri": "https://opencloning.github.io/OpenCloning_LinkML/Recombinase", + "from_schema": "https://opencloning.github.io/OpenCloning_LinkML", + "slots": [ + "name", + "recombinase__site1", + "recombinase__site2", + "recombinase__site1_name", + "recombinase__site2_name" + ], + "slot_usage": {}, + "attributes": [ + { + "name": "site1", + "range": "string", + "required": true, + "pattern": "^[A-Z]+[a-z]+[A-Z]+$", + "@type": "SlotDefinition" + }, + { + "name": "site2", + "range": "string", + "required": true, + "pattern": "^[A-Z]+[a-z]+[A-Z]+$", + "@type": "SlotDefinition" + }, + { + "name": "site1_name", + "ifabsent": "string(\"site1\")", + "range": "string", + "@type": "SlotDefinition" + }, + { + "name": "site2_name", + "ifabsent": "string(\"site2\")", + "range": "string", + "@type": "SlotDefinition" + } + ], + "class_uri": "https://opencloning.github.io/OpenCloning_LinkML/Recombinase", + "@type": "ClassDefinition" + }, + { + "name": "RecombinaseSource", + "definition_uri": "https://opencloning.github.io/OpenCloning_LinkML/RecombinaseSource", + "description": "Represents the source of a sequence that is generated by recombination using one or more recombinases", + "from_schema": "https://opencloning.github.io/OpenCloning_LinkML", + "is_a": "AssemblySource", + "slots": [ + "id", + "type", + "output_name", + "database_id", + "source__input", + "assemblySource__circular", + "recombinaseSource__recombinases" + ], + "slot_usage": {}, + "attributes": [ + { + "name": "recombinases", + "range": "Recombinase", + "required": true, + "multivalued": true, + "inlined_as_list": true, + "@type": "SlotDefinition" + } + ], + "class_uri": "https://opencloning.github.io/OpenCloning_LinkML/RecombinaseSource", + "@type": "ClassDefinition" + }, { "name": "CloningStrategy", "definition_uri": "https://opencloning.github.io/OpenCloning_LinkML/CloningStrategy", @@ -3500,9 +3643,9 @@ ], "metamodel_version": "1.7.0", "source_file": "opencloning_linkml.yaml", - "source_file_date": "2025-12-06T00:30:19", - "source_file_size": 25654, - "generation_date": "2025-12-06T00:30:23", + "source_file_date": "2026-03-04T18:08:25", + "source_file_size": 26405, + "generation_date": "2026-03-04T18:08:29", "@type": "SchemaDefinition", "@context": [ "project/jsonld/opencloning_linkml.context.jsonld", diff --git a/project/jsonschema/opencloning_linkml.schema.json b/project/jsonschema/opencloning_linkml.schema.json index f625728..d7a56a9 100644 --- a/project/jsonschema/opencloning_linkml.schema.json +++ b/project/jsonschema/opencloning_linkml.schema.json @@ -611,6 +611,9 @@ { "$ref": "#/$defs/CreLoxRecombinationSource" }, + { + "$ref": "#/$defs/RecombinaseSource" + }, { "$ref": "#/$defs/CRISPRSource" }, @@ -752,6 +755,9 @@ { "$ref": "#/$defs/CreLoxRecombinationSource" }, + { + "$ref": "#/$defs/RecombinaseSource" + }, { "$ref": "#/$defs/CRISPRSource" }, @@ -2342,6 +2348,115 @@ "title": "Primer", "type": "object" }, + "Recombinase": { + "additionalProperties": false, + "description": "", + "properties": { + "name": { + "description": "A human-readable name for a thing", + "type": [ + "string", + "null" + ] + }, + "site1": { + "pattern": "^[A-Z]+[a-z]+[A-Z]+$", + "type": "string" + }, + "site1_name": { + "type": [ + "string", + "null" + ] + }, + "site2": { + "pattern": "^[A-Z]+[a-z]+[A-Z]+$", + "type": "string" + }, + "site2_name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "site1", + "site2" + ], + "title": "Recombinase", + "type": "object" + }, + "RecombinaseSource": { + "additionalProperties": false, + "description": "Represents the source of a sequence that is generated by recombination using one or more recombinases", + "properties": { + "circular": { + "description": "Whether the assembly is circular or not", + "type": [ + "boolean", + "null" + ] + }, + "database_id": { + "description": "The id of an entity in a database", + "type": [ + "integer", + "null" + ] + }, + "id": { + "description": "A unique identifier for a thing", + "type": "integer" + }, + "input": { + "description": "The inputs to this source. If the source represents external import of a sequence, it's empty.", + "items": { + "anyOf": [ + { + "$ref": "#/$defs/SourceInput" + }, + { + "$ref": "#/$defs/AssemblyFragment" + } + ] + }, + "type": [ + "array", + "null" + ] + }, + "output_name": { + "description": "Used to specify the name of the output sequence", + "type": [ + "string", + "null" + ] + }, + "recombinases": { + "items": { + "$ref": "#/$defs/Recombinase" + }, + "type": "array" + }, + "type": { + "description": "Designates the class", + "enum": [ + "RecombinaseSource" + ], + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "recombinases", + "id" + ], + "title": "RecombinaseSource", + "type": "object" + }, "RepositoryIdSource": { "additionalProperties": false, "description": "Represents the source of a sequence that is identified by a repository id", diff --git a/project/owl/opencloning_linkml.owl.ttl b/project/owl/opencloning_linkml.owl.ttl index c7f4986..cb5a20d 100644 --- a/project/owl/opencloning_linkml.owl.ttl +++ b/project/owl/opencloning_linkml.owl.ttl @@ -15,62 +15,62 @@ opencloning_linkml:CloningStrategy a owl:Class, linkml:ClassDefinition ; rdfs:label "CloningStrategy" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:Source ; - owl:onProperty opencloning_linkml:sources ], - [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:version_number ; - owl:onProperty opencloning_linkml:backend_version ], + owl:allValuesFrom opencloning_linkml:Primer ; + owl:onProperty opencloning_linkml:primers ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:schema_version ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:sources ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:primers ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:version_number ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:frontend_version ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:schema_version ], [ a owl:Restriction ; owl:allValuesFrom opencloning_linkml:Sequence ; owl:onProperty opencloning_linkml:sequences ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:files ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:frontend_version ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:backend_version ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:description ], - [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:version_number ; - owl:onProperty opencloning_linkml:schema_version ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:backend_version ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:frontend_version ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:description ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:version_number ; owl:onProperty opencloning_linkml:schema_version ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:sources ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:primers ], + owl:onProperty opencloning_linkml:backend_version ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:version_number ; + owl:onProperty opencloning_linkml:frontend_version ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:sequences ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:description ], + owl:onProperty opencloning_linkml:schema_version ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:Primer ; - owl:onProperty opencloning_linkml:primers ], + owl:allValuesFrom opencloning_linkml:version_number ; + owl:onProperty opencloning_linkml:backend_version ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:Source ; + owl:onProperty opencloning_linkml:sources ], [ a owl:Restriction ; owl:allValuesFrom opencloning_linkml:AssociatedFile ; owl:onProperty opencloning_linkml:files ] ; @@ -91,23 +91,20 @@ opencloning_linkml:CollectionOption a owl:Class, linkml:ClassDefinition ; rdfs:label "CollectionOption" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:info ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:Source ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:source ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:source ], + owl:onProperty opencloning_linkml:info ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:name ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:info ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:name ], @@ -115,7 +112,10 @@ opencloning_linkml:CollectionOption a owl:Class, owl:allValuesFrom opencloning_linkml:CollectionOptionInfo ; owl:onProperty opencloning_linkml:info ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom opencloning_linkml:Source ; + owl:onProperty opencloning_linkml:source ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:source ] ; skos:definition "Represents an option in a collection" ; skos:inScheme . @@ -124,20 +124,17 @@ opencloning_linkml:CollectionOptionInfo a owl:Class, linkml:ClassDefinition ; rdfs:label "CollectionOptionInfo" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:resistance ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:name ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:well ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:well ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:description ], + owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:resistance ], @@ -145,30 +142,89 @@ opencloning_linkml:CollectionOptionInfo a owl:Class, owl:allValuesFrom opencloning_linkml:CollectionOptionType ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:description ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:resistance ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:type ], + owl:onProperty opencloning_linkml:well ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:well ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:description ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:description ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:type ] ; + skos:definition "Additional information about a collection option" ; + skos:inScheme . + +opencloning_linkml:Recombinase a owl:Class, + linkml:ClassDefinition ; + rdfs:label "Recombinase" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:site2 ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:type ], + owl:onProperty opencloning_linkml:site1_name ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:name ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:site2 ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:site2_name ], + [ a owl:Restriction ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:intersectionOf ( linkml:String [ a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:withRestrictions ( [ xsd:pattern "^[A-Z]+[a-z]+[A-Z]+$" ] ) ] ) ] ; + owl:onProperty opencloning_linkml:site2 ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:site2_name ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:site1 ], + [ a owl:Restriction ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:intersectionOf ( linkml:String [ a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:withRestrictions ( [ xsd:pattern "^[A-Z]+[a-z]+[A-Z]+$" ] ) ] ) ] ; + owl:onProperty opencloning_linkml:site1 ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:name ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:description ], + owl:onProperty opencloning_linkml:site1_name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:well ], + owl:onProperty opencloning_linkml:site1 ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:site2_name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:description ] ; - skos:definition "Additional information about a collection option" ; + owl:onProperty opencloning_linkml:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:site1_name ] ; skos:inScheme . opencloning_linkml:simple_sequence_location a owl:Class, @@ -182,7 +238,7 @@ opencloning_linkml:AddgeneIdSource a owl:Class, owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:AddgeneSequenceType ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:addgene_sequence_type ], [ a owl:Restriction ; owl:allValuesFrom [ a rdfs:Datatype ; @@ -191,13 +247,13 @@ opencloning_linkml:AddgeneIdSource a owl:Class, owl:withRestrictions ( [ xsd:pattern "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$" ] ) ] ) ] ; owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom opencloning_linkml:AddgeneSequenceType ; owl:onProperty opencloning_linkml:addgene_sequence_type ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:addgene_sequence_type ], opencloning_linkml:RepositoryIdSource ; skos:definition "Represents the source of a sequence that is identified by an Addgene id" ; @@ -217,23 +273,23 @@ opencloning_linkml:AnnotationSource a owl:Class, linkml:ClassDefinition ; rdfs:label "AnnotationSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:annotation_report ], - [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:annotation_tool_version ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:annotation_report ], [ a owl:Restriction ; owl:allValuesFrom opencloning_linkml:AnnotationTool ; owl:onProperty opencloning_linkml:annotation_tool ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:annotation_tool_version ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:annotation_tool ], [ a owl:Restriction ; owl:allValuesFrom opencloning_linkml:AnnotationReport ; owl:onProperty opencloning_linkml:annotation_report ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:annotation_tool_version ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:annotation_tool_version ], @@ -248,20 +304,17 @@ opencloning_linkml:AssemblyFragment a owl:Class, linkml:ClassDefinition ; rdfs:label "AssemblyFragment" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:sequence_range ; - owl:onProperty opencloning_linkml:left_location ], + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:reverse_complemented ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom opencloning_linkml:sequence_range ; owl:onProperty opencloning_linkml:right_location ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:left_location ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; owl:onProperty opencloning_linkml:reverse_complemented ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:reverse_complemented ], + owl:allValuesFrom opencloning_linkml:sequence_range ; + owl:onProperty opencloning_linkml:left_location ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:reverse_complemented ], @@ -272,7 +325,10 @@ opencloning_linkml:AssemblyFragment a owl:Class, owl:minCardinality 0 ; owl:onProperty opencloning_linkml:left_location ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:sequence_range ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:left_location ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:right_location ], opencloning_linkml:SourceInput ; skos:definition "Represents a fragment in an assembly" ; @@ -287,10 +343,10 @@ opencloning_linkml:BenchlingUrlSource a owl:Class, owl:withRestrictions ( [ xsd:pattern "^https:\\/\\/benchling\\.com\\/.+\\.gb$" ] ) ] ; owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], opencloning_linkml:RepositoryIdSource ; skos:definition "Represents the source of a sequence that is identified by a Benchling URL" ; @@ -327,14 +383,14 @@ opencloning_linkml:CollectionSource a owl:Class, linkml:ClassDefinition ; rdfs:label "CollectionSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:category_id ], + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:title ], + owl:onProperty opencloning_linkml:description ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:title ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:options ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:category_id ], @@ -349,22 +405,22 @@ opencloning_linkml:CollectionSource a owl:Class, owl:onProperty opencloning_linkml:title ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:description ], + owl:onProperty opencloning_linkml:title ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:category_id ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:image ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:options ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:category_id ], [ a owl:Restriction ; owl:allValuesFrom opencloning_linkml:CollectionOption ; owl:onProperty opencloning_linkml:options ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:category_id ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:description ], + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:title ], opencloning_linkml:Source ; skos:definition "Represents a collection of possible sources in a template" ; skos:inScheme . @@ -396,9 +452,6 @@ opencloning_linkml:EuroscarfSource a owl:Class, linkml:ClassDefinition ; rdfs:label "EuroscarfSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:repository_id ], - [ a owl:Restriction ; owl:allValuesFrom [ a rdfs:Datatype ; owl:onDatatype xsd:string ; owl:withRestrictions ( [ xsd:pattern "^P\\d+$" ] ) ] ; @@ -406,6 +459,9 @@ opencloning_linkml:EuroscarfSource a owl:Class, [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:repository_id ], opencloning_linkml:RepositoryIdSource ; skos:definition "Represents the source of a sequence from the Euroscarf plasmid library" ; skos:inScheme . @@ -424,20 +480,20 @@ opencloning_linkml:GatewaySource a owl:Class, linkml:ClassDefinition ; rdfs:label "GatewaySource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:GatewayReactionType ; - owl:onProperty opencloning_linkml:reaction_type ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:greedy ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:greedy ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:reaction_type ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom opencloning_linkml:GatewayReactionType ; owl:onProperty opencloning_linkml:reaction_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:greedy ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:greedy ], + owl:onProperty opencloning_linkml:reaction_type ], [ a owl:Restriction ; owl:allValuesFrom linkml:Boolean ; owl:onProperty opencloning_linkml:greedy ], @@ -451,6 +507,9 @@ opencloning_linkml:GenomeCoordinatesSource a owl:Class, rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:locus_tag ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:locus_tag ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:assembly_accession ], @@ -458,32 +517,29 @@ opencloning_linkml:GenomeCoordinatesSource a owl:Class, owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:assembly_accession ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:gene_id ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:locus_tag ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:assembly_accession ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:location ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:gene_id ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:gene_id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:gene_id ], + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:location ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:locus_tag ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:location ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:gene_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:location ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:assembly_accession ], + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:location ], opencloning_linkml:NCBISequenceSource ; skos:definition "Represents the source of a sequence that is identified by genome coordinates, requested from NCBI" ; skos:inScheme . @@ -499,20 +555,20 @@ opencloning_linkml:IGEMSource a owl:Class, linkml:ClassDefinition ; rdfs:label "IGEMSource" ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:repository_id ], + [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:sequence_file_url ], + owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:sequence_file_url ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:repository_id ], + owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:repository_id ], + owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; owl:allValuesFrom [ a rdfs:Datatype ; owl:intersectionOf ( linkml:String [ a rdfs:Datatype ; @@ -548,44 +604,44 @@ opencloning_linkml:ManuallyTypedSequence a owl:Class, linkml:ClassDefinition ; rdfs:label "ManuallyTypedSequence" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom [ a rdfs:Datatype ; - owl:intersectionOf ( linkml:String [ a rdfs:Datatype ; - owl:onDatatype xsd:string ; - owl:withRestrictions ( [ xsd:pattern "^[acgtACGT]+$" ] ) ] ) ] ; - owl:onProperty opencloning_linkml:sequence ], - [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:overhang_watson_3prime ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:overhang_watson_3prime ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:intersectionOf ( linkml:String [ a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:withRestrictions ( [ xsd:pattern "^[acgtACGT]+$" ] ) ] ) ] ; owl:onProperty opencloning_linkml:sequence ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:sequence ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:overhang_watson_3prime ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty opencloning_linkml:circular ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:overhang_watson_3prime ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:overhang_crick_3prime ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:sequence ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:circular ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:circular ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Boolean ; + owl:onProperty opencloning_linkml:circular ], opencloning_linkml:Sequence ; skos:definition "Represents a sequence that is manually typed by the user" ; skos:inScheme . @@ -601,13 +657,13 @@ opencloning_linkml:NamedThing a owl:Class, linkml:ClassDefinition ; rdfs:label "NamedThing" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:id ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:id ] ; skos:exactMatch schema1:Thing ; skos:inScheme . @@ -616,13 +672,13 @@ opencloning_linkml:OligoHybridizationSource a owl:Class, linkml:ClassDefinition ; rdfs:label "OligoHybridizationSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:overhang_crick_3prime ], opencloning_linkml:Source ; skos:definition "Represents the source of a sequence that is generated by oligo hybridization" ; @@ -632,14 +688,16 @@ opencloning_linkml:OpenDNACollectionsSource a owl:Class, linkml:ClassDefinition ; rdfs:label "OpenDNACollectionsSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:repository_id ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:repository_id ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty opencloning_linkml:sequence_file_url ], + [ a owl:Restriction ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:withRestrictions ( [ xsd:pattern "^[^\\/]+\\/[^\\/]+$" ] ) ] ; + owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; owl:allValuesFrom [ a rdfs:Datatype ; owl:intersectionOf ( linkml:String [ a rdfs:Datatype ; @@ -647,12 +705,10 @@ opencloning_linkml:OpenDNACollectionsSource a owl:Class, owl:withRestrictions ( [ xsd:pattern "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$" ] ) ] ) ] ; owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:sequence_file_url ], + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; - owl:allValuesFrom [ a rdfs:Datatype ; - owl:onDatatype xsd:string ; - owl:withRestrictions ( [ xsd:pattern "^[^\\/]+\\/[^\\/]+$" ] ) ] ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], opencloning_linkml:RepositoryIdSource ; skos:definition "Represents the source of a sequence from the Open DNA collections" ; @@ -669,13 +725,13 @@ opencloning_linkml:PCRSource a owl:Class, linkml:ClassDefinition ; rdfs:label "PCRSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:add_primer_features ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:add_primer_features ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:Boolean ; owl:onProperty opencloning_linkml:add_primer_features ], opencloning_linkml:AssemblySource ; skos:definition "Represents the source of a sequence that is generated by PCR" ; @@ -685,131 +741,131 @@ opencloning_linkml:PlannotateAnnotationReport a owl:Class, linkml:ClassDefinition ; rdfs:label "PlannotateAnnotationReport" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:full_length_of_feature_in_db ], + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:Type ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:strand ], + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:sseqid ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:sequence ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:strand ], + owl:onProperty opencloning_linkml:start_location ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:sequence ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Float ; + owl:onProperty opencloning_linkml:percent_identity ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:percent_identity ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:fragment ], + owl:onProperty opencloning_linkml:Description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:Feature ], + owl:onProperty opencloning_linkml:end_location ], [ a owl:Restriction ; owl:allValuesFrom linkml:Float ; owl:onProperty opencloning_linkml:percent_match_length ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:sequence ], + owl:onProperty opencloning_linkml:Feature ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:Description ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:strand ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:start_location ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:sequence ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:database ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:percent_identity ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:database ], + owl:onProperty opencloning_linkml:length_of_found_feature ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:end_location ], + owl:onProperty opencloning_linkml:strand ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:sequence ], + owl:onProperty opencloning_linkml:percent_match_length ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:Boolean ; owl:onProperty opencloning_linkml:fragment ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:Description ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:sseqid ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:length_of_found_feature ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:start_location ], + owl:onProperty opencloning_linkml:sseqid ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:percent_match_length ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:strand ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:length_of_found_feature ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:Feature ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:strand ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:fragment ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:percent_identity ], + owl:onProperty opencloning_linkml:Feature ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:database ], + owl:onProperty opencloning_linkml:full_length_of_feature_in_db ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:Type ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:sseqid ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:percent_match_length ], + owl:onProperty opencloning_linkml:percent_identity ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:Type ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty opencloning_linkml:fragment ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:end_location ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:Feature ], + owl:onProperty opencloning_linkml:database ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:end_location ], + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:database ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:full_length_of_feature_in_db ], + owl:onProperty opencloning_linkml:fragment ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:start_location ], + owl:onProperty opencloning_linkml:sequence ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:Feature ], + owl:onProperty opencloning_linkml:Description ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Float ; - owl:onProperty opencloning_linkml:percent_identity ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:Description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:length_of_found_feature ], + owl:onProperty opencloning_linkml:start_location ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:full_length_of_feature_in_db ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:sseqid ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:end_location ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:length_of_found_feature ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:Description ], + owl:onProperty opencloning_linkml:percent_match_length ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:sseqid ], + owl:onProperty opencloning_linkml:database ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:Type ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:end_location ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:full_length_of_feature_in_db ], opencloning_linkml:AnnotationReport ; skos:definition "Represents a report of an annotation step using Plannotate" ; skos:inScheme . @@ -821,14 +877,27 @@ opencloning_linkml:PolymeraseExtensionSource a owl:Class, skos:definition "Represents the source of a sequence that is generated by polymerase extension" ; skos:inScheme . +opencloning_linkml:RecombinaseSource a owl:Class, + linkml:ClassDefinition ; + rdfs:label "RecombinaseSource" ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:Recombinase ; + owl:onProperty opencloning_linkml:recombinases ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:recombinases ], + opencloning_linkml:AssemblySource ; + skos:definition "Represents the source of a sequence that is generated by recombination using one or more recombinases" ; + skos:inScheme . + opencloning_linkml:RestrictionAndLigationSource a owl:Class, linkml:ClassDefinition ; rdfs:label "RestrictionAndLigationSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:restriction_enzymes ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:restriction_enzymes ], opencloning_linkml:AssemblySource ; skos:definition "Represents the source of a sequence that is generated by restriction and ligation" ; @@ -839,21 +908,21 @@ opencloning_linkml:RestrictionEnzymeDigestionSource a owl:Class, rdfs:label "RestrictionEnzymeDigestionSource" ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom opencloning_linkml:RestrictionSequenceCut ; - owl:onProperty opencloning_linkml:right_edge ], + owl:onProperty opencloning_linkml:left_edge ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:left_edge ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:left_edge ], + owl:onProperty opencloning_linkml:right_edge ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:RestrictionSequenceCut ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:left_edge ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:right_edge ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom opencloning_linkml:RestrictionSequenceCut ; owl:onProperty opencloning_linkml:right_edge ], opencloning_linkml:SequenceCutSource ; skos:definition "Represents the source of a sequence that is a subfragment of another sequence, generated by sequence cutting using restriction enzymes." ; @@ -863,13 +932,13 @@ opencloning_linkml:RestrictionSequenceCut a owl:Class, linkml:ClassDefinition ; rdfs:label "RestrictionSequenceCut" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:restriction_enzyme ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:restriction_enzyme ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:restriction_enzyme ], opencloning_linkml:SequenceCut ; skos:definition "Represents a cut in a DNA sequence that is made by a restriction enzyme" ; @@ -886,23 +955,23 @@ opencloning_linkml:SEVASource a owl:Class, linkml:ClassDefinition ; rdfs:label "SEVASource" ; rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:repository_id ], + [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:sequence_file_url ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; owl:allValuesFrom [ a rdfs:Datatype ; owl:intersectionOf ( linkml:String [ a rdfs:Datatype ; owl:onDatatype xsd:string ; owl:withRestrictions ( [ xsd:pattern "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$" ] ) ] ) ] ; owl:onProperty opencloning_linkml:sequence_file_url ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:sequence_file_url ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; owl:allValuesFrom [ a rdfs:Datatype ; owl:onDatatype xsd:string ; @@ -936,10 +1005,10 @@ opencloning_linkml:SequencingFile a owl:Class, linkml:ClassDefinition ; rdfs:label "SequencingFile" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:alignment ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:alignment ], opencloning_linkml:AssociatedFile ; skos:definition "Represents a sequencing file and its alignment to a sequence" ; @@ -949,6 +1018,9 @@ opencloning_linkml:SnapGenePlasmidSource a owl:Class, linkml:ClassDefinition ; rdfs:label "SnapGenePlasmidSource" ; rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:repository_id ], + [ a owl:Restriction ; owl:allValuesFrom [ a rdfs:Datatype ; owl:onDatatype xsd:string ; owl:withRestrictions ( [ xsd:pattern "^[^\\/]+\\/[^\\/]+$" ] ) ] ; @@ -956,9 +1028,6 @@ opencloning_linkml:SnapGenePlasmidSource a owl:Class, [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:repository_id ], opencloning_linkml:RepositoryIdSource ; skos:definition "Represents the source of a sequence from the SnapGene plasmid library identified by a SnapGene subpath of https://www.snapgene.com/plasmids/" ; skos:inScheme . @@ -970,17 +1039,17 @@ opencloning_linkml:TemplateSequence a owl:Class, owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:primer_design ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:Boolean ; owl:onProperty opencloning_linkml:circular ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:primer_design ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty opencloning_linkml:circular ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:primer_design ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:primer_design ], + owl:onProperty opencloning_linkml:circular ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:circular ], @@ -995,37 +1064,37 @@ opencloning_linkml:TextFileSequence a owl:Class, owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:overhang_watson_3prime ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:overhang_crick_3prime ], + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:file_content ], [ a owl:Restriction ; owl:allValuesFrom opencloning_linkml:SequenceFileFormat ; owl:onProperty opencloning_linkml:sequence_file_format ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:overhang_crick_3prime ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:file_content ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:file_content ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:file_content ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:overhang_watson_3prime ], + owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:sequence_file_format ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:overhang_crick_3prime ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:file_content ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:overhang_watson_3prime ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:overhang_watson_3prime ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:overhang_crick_3prime ], + [ a owl:Restriction ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:sequence_file_format ], opencloning_linkml:Sequence ; skos:definition "A sequence (may have features) defined by the content of a text file" ; @@ -1035,23 +1104,14 @@ opencloning_linkml:UploadedFileSource a owl:Class, linkml:ClassDefinition ; rdfs:label "UploadedFileSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:SequenceFileFormat ; - owl:onProperty opencloning_linkml:sequence_file_format ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty opencloning_linkml:circularize ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:file_name ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:circularize ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:sequence_file_format ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:file_name ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:index_in_file ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:index_in_file ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:sequence_file_format ], @@ -1059,26 +1119,35 @@ opencloning_linkml:UploadedFileSource a owl:Class, owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:circularize ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:file_name ], + owl:allValuesFrom opencloning_linkml:sequence_range ; + owl:onProperty opencloning_linkml:coordinates ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:index_in_file ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty opencloning_linkml:circularize ], + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:file_name ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:sequence_range ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:coordinates ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:coordinates ], + owl:onProperty opencloning_linkml:file_name ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:circularize ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:index_in_file ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:file_name ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:coordinates ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:index_in_file ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:SequenceFileFormat ; + owl:onProperty opencloning_linkml:sequence_file_format ], opencloning_linkml:Source ; skos:definition "Represents the source of a sequence that is uploaded as a file" ; skos:inScheme . @@ -1087,28 +1156,28 @@ opencloning_linkml:WekWikGeneIdSource a owl:Class, linkml:ClassDefinition ; rdfs:label "WekWikGeneIdSource" ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:withRestrictions ( [ xsd:pattern "^\\d+$" ] ) ] ; + owl:onProperty opencloning_linkml:repository_id ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:sequence_file_url ], + [ a owl:Restriction ; owl:allValuesFrom [ a rdfs:Datatype ; owl:intersectionOf ( linkml:String [ a rdfs:Datatype ; owl:onDatatype xsd:string ; owl:withRestrictions ( [ xsd:pattern "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$" ] ) ] ) ] ; owl:onProperty opencloning_linkml:sequence_file_url ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:repository_id ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; - owl:allValuesFrom [ a rdfs:Datatype ; - owl:onDatatype xsd:string ; - owl:withRestrictions ( [ xsd:pattern "^\\d+$" ] ) ] ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:sequence_file_url ], + owl:onProperty opencloning_linkml:repository_id ], opencloning_linkml:RepositoryIdSource ; skos:definition "Represents the source of a sequence that is identified by a WeKwikGene id" ; skos:inScheme . @@ -1154,6 +1223,11 @@ opencloning_linkml:primers a owl:ObjectProperty, skos:definition "The primers that are used in the cloning strategy" ; skos:inScheme . +opencloning_linkml:recombinases a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "recombinases" ; + skos:inScheme . + opencloning_linkml:restriction_enzymes a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "restriction_enzymes" ; @@ -1202,14 +1276,8 @@ opencloning_linkml:NCBISequenceSource a owl:Class, linkml:ClassDefinition ; rdfs:label "NCBISequenceSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:coordinates ], - [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:repository_id ], - [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:simple_sequence_location ; - owl:onProperty opencloning_linkml:coordinates ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], @@ -1219,6 +1287,12 @@ opencloning_linkml:NCBISequenceSource a owl:Class, [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:coordinates ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:simple_sequence_location ; + owl:onProperty opencloning_linkml:coordinates ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:coordinates ], opencloning_linkml:RepositoryIdSource ; skos:definition "Represents the source of a sequence that is identified by an NCBI sequence accession" ; skos:inScheme . @@ -1227,23 +1301,11 @@ opencloning_linkml:Primer a owl:Class, linkml:ClassDefinition ; rdfs:label "Primer" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:name ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:name ], - [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:sequence ], + owl:onProperty opencloning_linkml:name ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:database_id ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:database_id ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:database_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:sequence ], @@ -1253,8 +1315,20 @@ opencloning_linkml:Primer a owl:Class, owl:onDatatype xsd:string ; owl:withRestrictions ( [ xsd:pattern "^[acgtACGT]+$" ] ) ] ) ] ; owl:onProperty opencloning_linkml:sequence ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:database_id ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:name ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:sequence ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:database_id ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:name ], opencloning_linkml:Sequence ; skos:definition "An oligonucleotide or primer" ; @@ -1265,13 +1339,13 @@ opencloning_linkml:SequenceCut a owl:Class, rdfs:label "SequenceCut" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:cut_watson ], + owl:onProperty opencloning_linkml:overhang ], [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:overhang ], + owl:onProperty opencloning_linkml:cut_watson ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:cut_watson ], + owl:onProperty opencloning_linkml:overhang ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:cut_watson ], @@ -1280,7 +1354,7 @@ opencloning_linkml:SequenceCut a owl:Class, owl:onProperty opencloning_linkml:overhang ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:overhang ] ; + owl:onProperty opencloning_linkml:cut_watson ] ; skos:definition "Represents a cut in a DNA sequence" ; skos:inScheme . @@ -1288,9 +1362,6 @@ opencloning_linkml:SequenceCutSource a owl:Class, linkml:ClassDefinition ; rdfs:label "SequenceCutSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:left_edge ], - [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:left_edge ], [ a owl:Restriction ; @@ -1300,10 +1371,13 @@ opencloning_linkml:SequenceCutSource a owl:Class, owl:allValuesFrom opencloning_linkml:SequenceCut ; owl:onProperty opencloning_linkml:left_edge ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom opencloning_linkml:SequenceCut ; owl:onProperty opencloning_linkml:right_edge ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:SequenceCut ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:left_edge ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:right_edge ], opencloning_linkml:Source ; skos:definition "Represents the source of a sequence that is a subfragment of another sequence, generated by sequence cutting." ; @@ -1517,6 +1591,26 @@ opencloning_linkml:sequence_range a owl:Class, linkml:TypeDefinition ; rdfs:subClassOf linkml:String . +opencloning_linkml:site1 a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "site1" ; + skos:inScheme . + +opencloning_linkml:site1_name a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "site1_name" ; + skos:inScheme . + +opencloning_linkml:site2 a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "site2" ; + skos:inScheme . + +opencloning_linkml:site2_name a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "site2_name" ; + skos:inScheme . + opencloning_linkml:source a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "source" ; @@ -1558,10 +1652,10 @@ opencloning_linkml:AnnotationReport a owl:Class, linkml:ClassDefinition ; rdfs:label "AnnotationReport" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; @@ -1573,40 +1667,40 @@ opencloning_linkml:AssociatedFile a owl:Class, linkml:ClassDefinition ; rdfs:label "AssociatedFile" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:type ], - [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:AssociatedFileType ; - owl:onProperty opencloning_linkml:file_type ], - [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:file_type ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:sequence_id ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:file_name ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:sequence_id ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:type ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:file_type ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:file_name ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:Sequence ; + owl:onProperty opencloning_linkml:sequence_id ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:type ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:file_name ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:file_name ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom opencloning_linkml:AssociatedFileType ; owl:onProperty opencloning_linkml:file_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:Sequence ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:sequence_id ] ; skos:definition "Represents a file associated with a sequence" ; skos:inScheme . @@ -1621,22 +1715,22 @@ opencloning_linkml:SourceInput a owl:Class, linkml:ClassDefinition ; rdfs:label "SourceInput" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:type ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom opencloning_linkml:Sequence ; owl:onProperty opencloning_linkml:sequence ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:sequence ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:Sequence ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:sequence ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:type ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:type ] ; skos:definition "Represents an input to a source" ; skos:exactMatch schema1:Role ; @@ -1697,23 +1791,23 @@ opencloning_linkml:Sequence a owl:Class, linkml:ClassDefinition ; rdfs:label "Sequence" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:type ], + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:id ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:id ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:id ], + owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:type ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:id ], opencloning_linkml:NamedThing ; skos:definition "Represents a sequence" ; skos:exactMatch bioschemas:DNA ; @@ -1732,13 +1826,6 @@ opencloning_linkml:database_id a owl:ObjectProperty, opencloning_linkml:description a owl:ObjectProperty, linkml:SlotDefinition . -opencloning_linkml:name a owl:ObjectProperty, - linkml:SlotDefinition ; - rdfs:label "name" ; - rdfs:range linkml:String ; - skos:definition "A human-readable name for a thing" ; - skos:inScheme . - opencloning_linkml:overhang_crick_3prime a owl:ObjectProperty, linkml:SlotDefinition ; rdfs:label "overhang_crick_3prime" ; @@ -1750,14 +1837,14 @@ opencloning_linkml:RepositoryIdSource a owl:Class, linkml:ClassDefinition ; rdfs:label "RepositoryIdSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:repository_id ], - [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:repository_id ], opencloning_linkml:Source ; skos:definition "Represents the source of a sequence that is identified by a repository id" ; skos:inScheme . @@ -1770,6 +1857,16 @@ opencloning_linkml:SequenceFileFormat a owl:Class, , . +opencloning_linkml:name a owl:ObjectProperty, + linkml:SlotDefinition ; + rdfs:label "name" ; + rdfs:range linkml:String ; + skos:definition "A human-readable name for a thing" ; + skos:inScheme . + +opencloning_linkml:sequence a owl:ObjectProperty, + linkml:SlotDefinition . + opencloning_linkml:AssemblySource a owl:Class, linkml:ClassDefinition ; rdfs:label "AssemblySource" ; @@ -1777,54 +1874,51 @@ opencloning_linkml:AssemblySource a owl:Class, owl:allValuesFrom linkml:Boolean ; owl:onProperty opencloning_linkml:circular ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:circular ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:circular ], opencloning_linkml:Source ; skos:definition "Represents the source of a sequence that is an assembly of other sequences" ; skos:inScheme . -opencloning_linkml:sequence a owl:ObjectProperty, - linkml:SlotDefinition . - opencloning_linkml:Source a owl:Class, linkml:ClassDefinition ; rdfs:label "Source" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:output_name ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom opencloning_linkml:SourceInput ; owl:onProperty opencloning_linkml:input ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:type ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:database_id ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:database_id ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:type ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:output_name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:output_name ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:database_id ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:database_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:type ], - [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:SourceInput ; owl:onProperty opencloning_linkml:input ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:output_name ], opencloning_linkml:NamedThing ; skos:definition "Represents the source of a sequence" ; skos:exactMatch schema1:CreateAction ; @@ -1863,9 +1957,14 @@ opencloning_linkml:type a owl:ObjectProperty, skos:definition "A LinkML data model for OpenCloning" . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:DatabaseSource ; + rdfs:subClassOf opencloning_linkml:AnnotationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:DatabaseSource . + owl:someValuesFrom opencloning_linkml:AnnotationSource . + +[] a owl:Restriction ; + rdfs:subClassOf opencloning_linkml:Sequence ; + owl:onProperty opencloning_linkml:type ; + owl:someValuesFrom opencloning_linkml:Sequence . [] a owl:Restriction ; rdfs:subClassOf opencloning_linkml:TemplateSequence ; @@ -1873,159 +1972,159 @@ opencloning_linkml:type a owl:ObjectProperty, owl:someValuesFrom opencloning_linkml:TemplateSequence . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:RepositoryIdSource ; + rdfs:subClassOf opencloning_linkml:SourceInput ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:RepositoryIdSource . + owl:someValuesFrom opencloning_linkml:SourceInput . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:AnnotationSource ; + rdfs:subClassOf opencloning_linkml:NCBISequenceSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:AnnotationSource . + owl:someValuesFrom opencloning_linkml:NCBISequenceSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:CreLoxRecombinationSource ; + rdfs:subClassOf opencloning_linkml:AnnotationReport ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:CreLoxRecombinationSource . + owl:someValuesFrom opencloning_linkml:AnnotationReport . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:OpenDNACollectionsSource ; + rdfs:subClassOf opencloning_linkml:ReverseComplementSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:OpenDNACollectionsSource . + owl:someValuesFrom opencloning_linkml:ReverseComplementSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:GibsonAssemblySource ; + rdfs:subClassOf opencloning_linkml:SequenceCutSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:GibsonAssemblySource . + owl:someValuesFrom opencloning_linkml:SequenceCutSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:OligoHybridizationSource ; + rdfs:subClassOf opencloning_linkml:DatabaseSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:OligoHybridizationSource . + owl:someValuesFrom opencloning_linkml:DatabaseSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:WekWikGeneIdSource ; + rdfs:subClassOf opencloning_linkml:OligoHybridizationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:WekWikGeneIdSource . + owl:someValuesFrom opencloning_linkml:OligoHybridizationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:PlannotateAnnotationReport ; + rdfs:subClassOf opencloning_linkml:OverlapExtensionPCRLigationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:PlannotateAnnotationReport . + owl:someValuesFrom opencloning_linkml:OverlapExtensionPCRLigationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:EuroscarfSource ; + rdfs:subClassOf opencloning_linkml:RepositoryIdSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:EuroscarfSource . + owl:someValuesFrom opencloning_linkml:RepositoryIdSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:SnapGenePlasmidSource ; + rdfs:subClassOf opencloning_linkml:BenchlingUrlSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:SnapGenePlasmidSource . + owl:someValuesFrom opencloning_linkml:BenchlingUrlSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:InVivoAssemblySource ; + rdfs:subClassOf opencloning_linkml:CRISPRSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:InVivoAssemblySource . + owl:someValuesFrom opencloning_linkml:CRISPRSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:PCRSource ; + rdfs:subClassOf opencloning_linkml:PolymeraseExtensionSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:PCRSource . + owl:someValuesFrom opencloning_linkml:PolymeraseExtensionSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:BenchlingUrlSource ; + rdfs:subClassOf opencloning_linkml:LigationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:BenchlingUrlSource . + owl:someValuesFrom opencloning_linkml:LigationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:HomologousRecombinationSource ; + rdfs:subClassOf opencloning_linkml:CreLoxRecombinationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:HomologousRecombinationSource . + owl:someValuesFrom opencloning_linkml:CreLoxRecombinationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:Source ; + rdfs:subClassOf opencloning_linkml:ManuallyTypedSequence ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:Source . + owl:someValuesFrom opencloning_linkml:ManuallyTypedSequence . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:NCBISequenceSource ; + rdfs:subClassOf opencloning_linkml:AddgeneIdSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:NCBISequenceSource . + owl:someValuesFrom opencloning_linkml:AddgeneIdSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:ManuallyTypedSource ; + rdfs:subClassOf opencloning_linkml:TextFileSequence ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:ManuallyTypedSource . + owl:someValuesFrom opencloning_linkml:TextFileSequence . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:AssociatedFile ; + rdfs:subClassOf opencloning_linkml:PlannotateAnnotationReport ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:AssociatedFile . + owl:someValuesFrom opencloning_linkml:PlannotateAnnotationReport . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:SEVASource ; + rdfs:subClassOf opencloning_linkml:CollectionSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:SEVASource . + owl:someValuesFrom opencloning_linkml:CollectionSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:OverlapExtensionPCRLigationSource ; + rdfs:subClassOf opencloning_linkml:OpenDNACollectionsSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:OverlapExtensionPCRLigationSource . + owl:someValuesFrom opencloning_linkml:OpenDNACollectionsSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:GatewaySource ; + rdfs:subClassOf opencloning_linkml:RestrictionAndLigationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:GatewaySource . + owl:someValuesFrom opencloning_linkml:RestrictionAndLigationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:PolymeraseExtensionSource ; + rdfs:subClassOf opencloning_linkml:PCRSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:PolymeraseExtensionSource . + owl:someValuesFrom opencloning_linkml:PCRSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:RestrictionAndLigationSource ; + rdfs:subClassOf opencloning_linkml:UploadedFileSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:RestrictionAndLigationSource . + owl:someValuesFrom opencloning_linkml:UploadedFileSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:ReverseComplementSource ; + rdfs:subClassOf opencloning_linkml:WekWikGeneIdSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:ReverseComplementSource . + owl:someValuesFrom opencloning_linkml:WekWikGeneIdSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:TextFileSequence ; + rdfs:subClassOf opencloning_linkml:AssemblyFragment ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:TextFileSequence . + owl:someValuesFrom opencloning_linkml:AssemblyFragment . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:UploadedFileSource ; + rdfs:subClassOf opencloning_linkml:GenomeCoordinatesSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:UploadedFileSource . + owl:someValuesFrom opencloning_linkml:GenomeCoordinatesSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:CollectionSource ; + rdfs:subClassOf opencloning_linkml:IGEMSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:CollectionSource . + owl:someValuesFrom opencloning_linkml:IGEMSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:Sequence ; + rdfs:subClassOf opencloning_linkml:GibsonAssemblySource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:Sequence . + owl:someValuesFrom opencloning_linkml:GibsonAssemblySource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:GenomeCoordinatesSource ; + rdfs:subClassOf opencloning_linkml:HomologousRecombinationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:GenomeCoordinatesSource . + owl:someValuesFrom opencloning_linkml:HomologousRecombinationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:SourceInput ; + rdfs:subClassOf opencloning_linkml:InVivoAssemblySource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:SourceInput . + owl:someValuesFrom opencloning_linkml:InVivoAssemblySource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:AssemblyFragment ; + rdfs:subClassOf opencloning_linkml:Source ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:AssemblyFragment . + owl:someValuesFrom opencloning_linkml:Source . [] a owl:Restriction ; rdfs:subClassOf opencloning_linkml:InFusionSource ; @@ -2033,49 +2132,49 @@ opencloning_linkml:type a owl:ObjectProperty, owl:someValuesFrom opencloning_linkml:InFusionSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:AnnotationReport ; + rdfs:subClassOf opencloning_linkml:ManuallyTypedSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:AnnotationReport . + owl:someValuesFrom opencloning_linkml:ManuallyTypedSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:Primer ; + rdfs:subClassOf opencloning_linkml:AssociatedFile ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:Primer . + owl:someValuesFrom opencloning_linkml:AssociatedFile . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:AddgeneIdSource ; + rdfs:subClassOf opencloning_linkml:RestrictionEnzymeDigestionSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:AddgeneIdSource . + owl:someValuesFrom opencloning_linkml:RestrictionEnzymeDigestionSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:AssemblySource ; + rdfs:subClassOf opencloning_linkml:Primer ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:AssemblySource . + owl:someValuesFrom opencloning_linkml:Primer . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:LigationSource ; + rdfs:subClassOf opencloning_linkml:SnapGenePlasmidSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:LigationSource . + owl:someValuesFrom opencloning_linkml:SnapGenePlasmidSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:RestrictionEnzymeDigestionSource ; + rdfs:subClassOf opencloning_linkml:AssemblySource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:RestrictionEnzymeDigestionSource . + owl:someValuesFrom opencloning_linkml:AssemblySource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:IGEMSource ; + rdfs:subClassOf opencloning_linkml:EuroscarfSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:IGEMSource . + owl:someValuesFrom opencloning_linkml:EuroscarfSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:SequenceCutSource ; + rdfs:subClassOf opencloning_linkml:RecombinaseSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:SequenceCutSource . + owl:someValuesFrom opencloning_linkml:RecombinaseSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:CRISPRSource ; + rdfs:subClassOf opencloning_linkml:SEVASource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:CRISPRSource . + owl:someValuesFrom opencloning_linkml:SEVASource . [] a owl:Restriction ; rdfs:subClassOf opencloning_linkml:SequencingFile ; @@ -2083,6 +2182,6 @@ opencloning_linkml:type a owl:ObjectProperty, owl:someValuesFrom opencloning_linkml:SequencingFile . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:ManuallyTypedSequence ; + rdfs:subClassOf opencloning_linkml:GatewaySource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:ManuallyTypedSequence . + owl:someValuesFrom opencloning_linkml:GatewaySource . diff --git a/project/protobuf/opencloning_linkml.proto b/project/protobuf/opencloning_linkml.proto index 2b61adf..2ef1e14 100644 --- a/project/protobuf/opencloning_linkml.proto +++ b/project/protobuf/opencloning_linkml.proto @@ -349,6 +349,25 @@ message Primer integer databaseId = 0 string sequence = 0 } +message Recombinase + { + string name = 0 + string site1 = 0 + string site2 = 0 + string site1Name = 0 + string site2Name = 0 + } +// Represents the source of a sequence that is generated by recombination using one or more recombinases +message RecombinaseSource + { + integer id = 0 + string type = 0 + string outputName = 0 + integer databaseId = 0 + repeated sourceInput input = 0 + boolean circular = 0 + repeated recombinase recombinases = 0 + } // Represents the source of a sequence that is identified by a repository id message RepositoryIdSource { diff --git a/project/python/opencloning_linkml.py b/project/python/opencloning_linkml.py index 34ab39b..956e81a 100644 --- a/project/python/opencloning_linkml.py +++ b/project/python/opencloning_linkml.py @@ -1,5 +1,5 @@ # Auto generated from opencloning_linkml.yaml by pythongen.py version: 0.0.1 -# Generation date: 2025-12-06T00:30:24 +# Generation date: 2026-03-04T18:08:30 # Schema: OpenCloning_LinkML # # id: https://opencloning.github.io/OpenCloning_LinkML @@ -225,6 +225,10 @@ class PolymeraseExtensionSourceId(SourceId): pass +class RecombinaseSourceId(AssemblySourceId): + pass + + class AnnotationSourceId(SourceId): pass @@ -1689,6 +1693,76 @@ def __post_init__(self, *_: str, **kwargs: Any): self.type = str(self.class_name) +@dataclass(repr=False) +class Recombinase(YAMLRoot): + _inherited_slots: ClassVar[list[str]] = [] + + class_class_uri: ClassVar[URIRef] = OPENCLONING_LINKML["Recombinase"] + class_class_curie: ClassVar[str] = "opencloning_linkml:Recombinase" + class_name: ClassVar[str] = "Recombinase" + class_model_uri: ClassVar[URIRef] = OPENCLONING_LINKML.Recombinase + + site1: str = None + site2: str = None + name: Optional[str] = None + site1_name: Optional[str] = "site1" + site2_name: Optional[str] = "site2" + + def __post_init__(self, *_: str, **kwargs: Any): + if self._is_empty(self.site1): + self.MissingRequiredField("site1") + if not isinstance(self.site1, str): + self.site1 = str(self.site1) + + if self._is_empty(self.site2): + self.MissingRequiredField("site2") + if not isinstance(self.site2, str): + self.site2 = str(self.site2) + + if self.name is not None and not isinstance(self.name, str): + self.name = str(self.name) + + if self.site1_name is not None and not isinstance(self.site1_name, str): + self.site1_name = str(self.site1_name) + + if self.site2_name is not None and not isinstance(self.site2_name, str): + self.site2_name = str(self.site2_name) + + super().__post_init__(**kwargs) + + +@dataclass(repr=False) +class RecombinaseSource(AssemblySource): + """ + Represents the source of a sequence that is generated by recombination using one or more recombinases + """ + + _inherited_slots: ClassVar[list[str]] = [] + + class_class_uri: ClassVar[URIRef] = OPENCLONING_LINKML["RecombinaseSource"] + class_class_curie: ClassVar[str] = "opencloning_linkml:RecombinaseSource" + class_name: ClassVar[str] = "RecombinaseSource" + class_model_uri: ClassVar[URIRef] = OPENCLONING_LINKML.RecombinaseSource + + id: Union[int, RecombinaseSourceId] = None + recombinases: Union[Union[dict, Recombinase], list[Union[dict, Recombinase]]] = None + + def __post_init__(self, *_: str, **kwargs: Any): + if self._is_empty(self.id): + self.MissingRequiredField("id") + if not isinstance(self.id, RecombinaseSourceId): + self.id = RecombinaseSourceId(self.id) + + if self._is_empty(self.recombinases): + self.MissingRequiredField("recombinases") + if not isinstance(self.recombinases, list): + self.recombinases = [self.recombinases] if self.recombinases is not None else [] + self.recombinases = [v if isinstance(v, Recombinase) else Recombinase(**as_dict(v)) for v in self.recombinases] + + super().__post_init__(**kwargs) + self.type = str(self.class_name) + + @dataclass(repr=False) class CloningStrategy(YAMLRoot): """ @@ -2584,6 +2658,53 @@ class slots: range=Optional[Union[bool, Bool]], ) +slots.recombinase__site1 = Slot( + uri=OPENCLONING_LINKML.site1, + name="recombinase__site1", + curie=OPENCLONING_LINKML.curie("site1"), + model_uri=OPENCLONING_LINKML.recombinase__site1, + domain=None, + range=str, + pattern=re.compile(r"^[A-Z]+[a-z]+[A-Z]+$"), +) + +slots.recombinase__site2 = Slot( + uri=OPENCLONING_LINKML.site2, + name="recombinase__site2", + curie=OPENCLONING_LINKML.curie("site2"), + model_uri=OPENCLONING_LINKML.recombinase__site2, + domain=None, + range=str, + pattern=re.compile(r"^[A-Z]+[a-z]+[A-Z]+$"), +) + +slots.recombinase__site1_name = Slot( + uri=OPENCLONING_LINKML.site1_name, + name="recombinase__site1_name", + curie=OPENCLONING_LINKML.curie("site1_name"), + model_uri=OPENCLONING_LINKML.recombinase__site1_name, + domain=None, + range=Optional[str], +) + +slots.recombinase__site2_name = Slot( + uri=OPENCLONING_LINKML.site2_name, + name="recombinase__site2_name", + curie=OPENCLONING_LINKML.curie("site2_name"), + model_uri=OPENCLONING_LINKML.recombinase__site2_name, + domain=None, + range=Optional[str], +) + +slots.recombinaseSource__recombinases = Slot( + uri=OPENCLONING_LINKML.recombinases, + name="recombinaseSource__recombinases", + curie=OPENCLONING_LINKML.curie("recombinases"), + model_uri=OPENCLONING_LINKML.recombinaseSource__recombinases, + domain=None, + range=Union[Union[dict, Recombinase], list[Union[dict, Recombinase]]], +) + slots.cloningStrategy__sequences = Slot( uri=OPENCLONING_LINKML.sequences, name="cloningStrategy__sequences", diff --git a/project/shacl/opencloning_linkml.shacl.ttl b/project/shacl/opencloning_linkml.shacl.ttl index 89b7ee4..fd3d5db 100644 --- a/project/shacl/opencloning_linkml.shacl.ttl +++ b/project/shacl/opencloning_linkml.shacl.ttl @@ -8,7 +8,7 @@ schema1:Thing a sh:NodeShape ; sh:closed true ; - sh:ignoredProperties ( opencloning_linkml:annotation_tool schema1:name opencloning_linkml:sequence opencloning_linkml:annotation_report schema1:object opencloning_linkml:add_primer_features opencloning_linkml:file_name opencloning_linkml:primer_design opencloning_linkml:coordinates opencloning_linkml:output_name opencloning_linkml:left_edge opencloning_linkml:type rdf:type opencloning_linkml:reaction_type opencloning_linkml:overhang_crick_3prime opencloning_linkml:description opencloning_linkml:assembly_accession opencloning_linkml:sequence_file_format opencloning_linkml:right_edge opencloning_linkml:annotation_tool_version opencloning_linkml:image opencloning_linkml:restriction_enzymes opencloning_linkml:greedy opencloning_linkml:sequence_file_url opencloning_linkml:options opencloning_linkml:category_id opencloning_linkml:overhang_watson_3prime opencloning_linkml:addgene_sequence_type opencloning_linkml:gene_id opencloning_linkml:file_content opencloning_linkml:circularize opencloning_linkml:locus_tag opencloning_linkml:repository_id opencloning_linkml:circular opencloning_linkml:title opencloning_linkml:index_in_file ) ; + sh:ignoredProperties ( opencloning_linkml:overhang_watson_3prime opencloning_linkml:options opencloning_linkml:file_content opencloning_linkml:primer_design opencloning_linkml:circular opencloning_linkml:image opencloning_linkml:add_primer_features opencloning_linkml:description opencloning_linkml:file_name opencloning_linkml:gene_id opencloning_linkml:locus_tag opencloning_linkml:annotation_tool opencloning_linkml:overhang_crick_3prime rdf:type opencloning_linkml:output_name opencloning_linkml:recombinases opencloning_linkml:title opencloning_linkml:coordinates opencloning_linkml:annotation_tool_version opencloning_linkml:restriction_enzymes schema1:object schema1:name opencloning_linkml:left_edge opencloning_linkml:category_id opencloning_linkml:annotation_report opencloning_linkml:addgene_sequence_type opencloning_linkml:repository_id opencloning_linkml:sequence_file_url opencloning_linkml:circularize opencloning_linkml:sequence_file_format opencloning_linkml:assembly_accession opencloning_linkml:right_edge opencloning_linkml:reaction_type opencloning_linkml:type opencloning_linkml:sequence opencloning_linkml:greedy opencloning_linkml:index_in_file ) ; sh:property [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -21,30 +21,16 @@ opencloning_linkml:AddgeneIdSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is identified by an Addgene id" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + sh:property [ sh:in ( "depositor-full" "addgene-full" ) ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path schema1:identifier ], + sh:order 1 ; + sh:path opencloning_linkml:addgene_sequence_type ], [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 7 ; + sh:order 5 ; sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "The URL of a sequence file" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:sequence_file_url ; - sh:pattern "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$" ], - [ sh:in ( "depositor-full" "addgene-full" ) ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path opencloning_linkml:addgene_sequence_type ], [ sh:datatype xsd:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; @@ -58,17 +44,31 @@ opencloning_linkml:AddgeneIdSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path opencloning_linkml:repository_id ], + [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 6 ; + sh:path schema1:object ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path opencloning_linkml:type ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 6 ; - sh:path schema1:object ] ; + [ sh:datatype xsd:string ; + sh:description "The URL of a sequence file" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path opencloning_linkml:sequence_file_url ; + sh:pattern "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$" ], + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:AddgeneIdSource . opencloning_linkml:AnnotationSource a sh:NodeShape ; @@ -76,34 +76,27 @@ opencloning_linkml:AnnotationSource a sh:NodeShape ; sh:description "Represents a computational step in which sequence features are annotated in a sequence" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path opencloning_linkml:output_name ], - [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path opencloning_linkml:type ], - [ sh:datatype xsd:string ; - sh:description "The version of the annotation tool" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:annotation_tool_version ], + [ sh:class opencloning_linkml:AnnotationReport ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 2 ; + sh:path opencloning_linkml:annotation_report ], [ sh:datatype xsd:integer ; sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path schema1:identifier ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 6 ; - sh:path schema1:object ], + [ sh:datatype xsd:string ; + sh:description "The version of the annotation tool" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path opencloning_linkml:annotation_tool_version ], [ sh:in ( "plannotate" ) ; sh:maxCount 1 ; sh:minCount 1 ; @@ -116,10 +109,17 @@ opencloning_linkml:AnnotationSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path schema1:identifier ], - [ sh:class opencloning_linkml:AnnotationReport ; + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path opencloning_linkml:output_name ], + [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 2 ; - sh:path opencloning_linkml:annotation_report ] ; + sh:order 6 ; + sh:path schema1:object ] ; sh:targetClass opencloning_linkml:AnnotationSource . opencloning_linkml:AssemblyFragment a sh:NodeShape ; @@ -130,13 +130,6 @@ opencloning_linkml:AssemblyFragment a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path opencloning_linkml:right_location ], - [ sh:datatype xsd:boolean ; - sh:description "Whether the sequence is reverse complemented in the assembly" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:reverse_complemented ], [ sh:class bioschemas:DNA ; sh:description "The input sequence" ; sh:maxCount 1 ; @@ -144,34 +137,40 @@ opencloning_linkml:AssemblyFragment a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:order 4 ; sh:path opencloning_linkml:sequence ], + [ sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path opencloning_linkml:left_location ], + [ sh:datatype xsd:boolean ; + sh:description "Whether the sequence is reverse complemented in the assembly" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:reverse_complemented ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; - sh:path opencloning_linkml:type ], - [ sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:left_location ] ; + sh:path opencloning_linkml:type ] ; sh:targetClass opencloning_linkml:AssemblyFragment . opencloning_linkml:AssemblySource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is an assembly of other sequences" ; - sh:ignoredProperties ( rdf:type opencloning_linkml:add_primer_features opencloning_linkml:restriction_enzymes opencloning_linkml:reaction_type opencloning_linkml:greedy ) ; - sh:property [ sh:datatype xsd:boolean ; + sh:ignoredProperties ( opencloning_linkml:recombinases opencloning_linkml:add_primer_features opencloning_linkml:restriction_enzymes opencloning_linkml:reaction_type rdf:type opencloning_linkml:greedy ) ; + sh:property [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path schema1:object ], + [ sh:datatype xsd:boolean ; sh:description "Whether the assembly is circular or not" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:circular ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -179,11 +178,6 @@ opencloning_linkml:AssemblySource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path schema1:identifier ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path schema1:object ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; @@ -195,58 +189,69 @@ opencloning_linkml:AssemblySource a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; - sh:path schema1:identifier ] ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:output_name ] ; sh:targetClass opencloning_linkml:AssemblySource . opencloning_linkml:BenchlingUrlSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is identified by a Benchling URL" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; + sh:property [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:output_name ], + sh:order 3 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:type ], - [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; + sh:description "The url of the gb file associated with the sequence" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path schema1:identifier ], + sh:order 0 ; + sh:path opencloning_linkml:repository_id ; + sh:pattern "^https:\\/\\/benchling\\.com\\/.+\\.gb$" ], [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path schema1:object ], [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; + sh:order 5 ; sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "The url of the gb file associated with the sequence" ; + sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:repository_id ; - sh:pattern "^https:\\/\\/benchling\\.com\\/.+\\.gb$" ] ; + sh:order 2 ; + sh:path opencloning_linkml:output_name ], + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path opencloning_linkml:type ] ; sh:targetClass opencloning_linkml:BenchlingUrlSource . opencloning_linkml:CRISPRSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is generated by CRISPR" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; + sh:property [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path schema1:object ], + [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -259,23 +264,18 @@ opencloning_linkml:CRISPRSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path schema1:identifier ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path schema1:identifier ], [ sh:datatype xsd:boolean ; sh:description "Whether the assembly is circular or not" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:circular ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path schema1:object ], + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; @@ -288,38 +288,21 @@ opencloning_linkml:CloningStrategy a sh:NodeShape ; sh:closed true ; sh:description "Represents a cloning strategy" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class opencloning_linkml:AssociatedFile ; + sh:property [ sh:description "The version of the backend that was used to generate this cloning strategy" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path opencloning_linkml:backend_version ], + [ sh:class opencloning_linkml:AssociatedFile ; sh:description "Files associated with this cloning strategy" ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path opencloning_linkml:files ], - [ sh:class opencloning_linkml:Primer ; - sh:description "The primers that are used in the cloning strategy" ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path opencloning_linkml:primers ], - [ sh:datatype xsd:string ; - sh:description "A description of the cloning strategy" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:description ], - [ sh:class bioschemas:DNA ; - sh:description "The sequences that are used in the cloning strategy" ; - sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path opencloning_linkml:sequences ], [ sh:description "The version of the frontend that was used to generate this cloning strategy" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path opencloning_linkml:frontend_version ], - [ sh:description "The version of the backend that was used to generate this cloning strategy" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path opencloning_linkml:backend_version ], [ sh:class schema1:CreateAction ; sh:description "The sources of the sequences that are used in the cloning strategy" ; sh:minCount 1 ; @@ -330,7 +313,24 @@ opencloning_linkml:CloningStrategy a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; - sh:path opencloning_linkml:schema_version ] ; + sh:path opencloning_linkml:schema_version ], + [ sh:class bioschemas:DNA ; + sh:description "The sequences that are used in the cloning strategy" ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path opencloning_linkml:sequences ], + [ sh:datatype xsd:string ; + sh:description "A description of the cloning strategy" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path opencloning_linkml:description ], + [ sh:class opencloning_linkml:Primer ; + sh:description "The primers that are used in the cloning strategy" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path opencloning_linkml:primers ] ; sh:targetClass opencloning_linkml:CloningStrategy . opencloning_linkml:CollectionSource a sh:NodeShape ; @@ -338,19 +338,16 @@ opencloning_linkml:CollectionSource a sh:NodeShape ; sh:description "Represents a collection of possible sources in a template" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "The title of the category" ; - sh:maxCount 1 ; - sh:minCount 1 ; + sh:description "URL and size of the image representing this category. For images with size specification, this is a list with two elements: [url, size]." ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:title ], - [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; + sh:order 3 ; + sh:path opencloning_linkml:image ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path schema1:identifier ], + sh:order 6 ; + sh:path opencloning_linkml:output_name ], [ sh:class opencloning_linkml:CollectionOption ; sh:description "The options available in this category." ; sh:nodeKind sh:BlankNodeOrIRI ; @@ -363,15 +360,17 @@ opencloning_linkml:CollectionSource a sh:NodeShape ; sh:order 5 ; sh:path opencloning_linkml:type ], [ sh:datatype xsd:string ; - sh:description "URL and size of the image representing this category. For images with size specification, this is a list with two elements: [url, size]." ; + sh:description "A description of the category" ; + sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:image ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + sh:order 2 ; + sh:path opencloning_linkml:description ], + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 7 ; + sh:order 9 ; sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "The identifier of the category of the part in the template" ; @@ -379,23 +378,24 @@ opencloning_linkml:CollectionSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:category_id ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path opencloning_linkml:output_name ], [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 8 ; sh:path schema1:object ], + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "A description of the category" ; + sh:description "The title of the category" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:description ] ; + sh:order 1 ; + sh:path opencloning_linkml:title ] ; sh:targetClass opencloning_linkml:CollectionSource . opencloning_linkml:CreLoxRecombinationSource a sh:NodeShape ; @@ -413,12 +413,6 @@ opencloning_linkml:CreLoxRecombinationSource a sh:NodeShape ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path schema1:object ], - [ sh:datatype xsd:string ; - sh:description "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:type ], [ sh:datatype xsd:integer ; sh:description "The id of an entity in a database" ; sh:maxCount 1 ; @@ -432,6 +426,12 @@ opencloning_linkml:CreLoxRecombinationSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path opencloning_linkml:type ], [ sh:datatype xsd:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; @@ -444,23 +444,17 @@ opencloning_linkml:DatabaseSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is identified by a database id" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:type ], - [ sh:class schema1:Role ; + sh:property [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 3 ; sh:path schema1:object ], [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; + sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:output_name ], + sh:order 1 ; + sh:path opencloning_linkml:type ], [ sh:datatype xsd:integer ; sh:description "The id of an entity in a database" ; sh:maxCount 1 ; @@ -474,7 +468,13 @@ opencloning_linkml:DatabaseSource a sh:NodeShape ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; - sh:path schema1:identifier ] ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:output_name ] ; sh:targetClass opencloning_linkml:DatabaseSource . opencloning_linkml:EuroscarfSource a sh:NodeShape ; @@ -482,72 +482,66 @@ opencloning_linkml:EuroscarfSource a sh:NodeShape ; sh:description "Represents the source of a sequence from the Euroscarf plasmid library" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; + sh:order 5 ; sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "Designates the class" ; + sh:description "The id of the plasmid in the Euroscarf plasmid library" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:type ], + sh:order 0 ; + sh:path opencloning_linkml:repository_id ; + sh:pattern "^P\\d+$" ], [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path schema1:object ], - [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path opencloning_linkml:output_name ], + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "The id of the plasmid in the Euroscarf plasmid library" ; + sh:description "Designates the class" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:repository_id ; - sh:pattern "^P\\d+$" ] ; + sh:order 1 ; + sh:path opencloning_linkml:type ] ; sh:targetClass opencloning_linkml:EuroscarfSource . opencloning_linkml:GatewaySource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is generated by Gateway cloning" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + sh:property [ sh:datatype xsd:boolean ; + sh:description "Whether to use a greedy consensus sequence for att sites (see https://github.com/manulera/GateWayMine)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path schema1:identifier ], - [ sh:in ( "LR" "BP" ) ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 0 ; - sh:path opencloning_linkml:reaction_type ], + sh:order 1 ; + sh:path opencloning_linkml:greedy ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path opencloning_linkml:type ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; + [ sh:in ( "LR" "BP" ) ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path opencloning_linkml:output_name ], + sh:minCount 1 ; + sh:order 0 ; + sh:path opencloning_linkml:reaction_type ], [ sh:datatype xsd:boolean ; sh:description "Whether the assembly is circular or not" ; sh:maxCount 1 ; @@ -555,23 +549,29 @@ opencloning_linkml:GatewaySource a sh:NodeShape ; sh:order 2 ; sh:path opencloning_linkml:circular ], [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 7 ; + sh:order 5 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path opencloning_linkml:output_name ], [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 6 ; sh:path schema1:object ], - [ sh:datatype xsd:boolean ; - sh:description "Whether to use a greedy consensus sequence for att sites (see https://github.com/manulera/GateWayMine)" ; + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:greedy ] ; + sh:order 7 ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:GatewaySource . opencloning_linkml:GenomeCoordinatesSource a sh:NodeShape ; @@ -579,46 +579,24 @@ opencloning_linkml:GenomeCoordinatesSource a sh:NodeShape ; sh:description "Represents the source of a sequence that is identified by genome coordinates, requested from NCBI" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:integer ; - sh:description "The gene id of the sequence" ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:gene_id ], - [ sh:description "If provided, represents the location of a subsequence within the sequence identified by the sequence accession." ; + sh:order 9 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "The locus tag of the sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:coordinates ], + sh:order 1 ; + sh:path opencloning_linkml:locus_tag ], [ sh:datatype xsd:string ; sh:description "The accession of the assembly" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:assembly_accession ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path opencloning_linkml:output_name ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 8 ; - sh:path schema1:object ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "The sequence accession (e.g. X60065.1)" ; sh:maxCount 1 ; @@ -632,36 +610,52 @@ opencloning_linkml:GenomeCoordinatesSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path opencloning_linkml:type ], + [ sh:description "If provided, represents the location of a subsequence within the sequence identified by the sequence accession." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path opencloning_linkml:coordinates ], + [ sh:datatype xsd:integer ; + sh:description "The gene id of the sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:gene_id ], + [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 8 ; + sh:path schema1:object ], [ sh:datatype xsd:string ; - sh:description "The locus tag of the sequence" ; + sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:locus_tag ] ; + sh:order 6 ; + sh:path opencloning_linkml:output_name ], + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:GenomeCoordinatesSource . opencloning_linkml:GibsonAssemblySource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is generated by Gibson assembly" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + sh:property [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path schema1:identifier ], + sh:order 2 ; + sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:boolean ; sh:description "Whether the assembly is circular or not" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:circular ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; @@ -679,113 +673,113 @@ opencloning_linkml:GibsonAssemblySource a sh:NodeShape ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; - sh:path schema1:object ] ; + sh:path schema1:object ], + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:GibsonAssemblySource . opencloning_linkml:HomologousRecombinationSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is generated by homologous recombination" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:boolean ; + sh:property [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:output_name ], + [ sh:datatype xsd:boolean ; sh:description "Whether the assembly is circular or not" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:circular ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path schema1:identifier ], + sh:order 1 ; + sh:path opencloning_linkml:type ], [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path schema1:object ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:output_name ], + sh:order 3 ; + sh:path schema1:identifier ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:type ] ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:HomologousRecombinationSource . opencloning_linkml:IGEMSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence from an iGEM collection" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + sh:property [ sh:datatype xsd:string ; + sh:description "The unique identifier of the sequence in the iGEM collection (for now, {part_id}-{plasmid_backbone}) pattern: ^[^-]+-[^-]+$" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:output_name ], + sh:order 1 ; + sh:path opencloning_linkml:repository_id ], [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; + sh:order 4 ; sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "The URL of the sequence file, for now github repository" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:sequence_file_url ; - sh:pattern "^.*.gb$" ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path opencloning_linkml:type ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path opencloning_linkml:output_name ], [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 5 ; sh:path schema1:object ], [ sh:datatype xsd:string ; - sh:description "The unique identifier of the sequence in the iGEM collection (for now, {part_id}-{plasmid_backbone}) pattern: ^[^-]+-[^-]+$" ; + sh:description "The URL of the sequence file, for now github repository" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:repository_id ] ; + sh:order 0 ; + sh:path opencloning_linkml:sequence_file_url ; + sh:pattern "^.*.gb$" ], + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:IGEMSource . opencloning_linkml:InFusionSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is generated by In-Fusion cloning by Takara Bio" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:output_name ], - [ sh:datatype xsd:boolean ; + sh:property [ sh:datatype xsd:boolean ; sh:description "Whether the assembly is circular or not" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -808,6 +802,12 @@ opencloning_linkml:InFusionSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -828,12 +828,6 @@ opencloning_linkml:InVivoAssemblySource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path schema1:identifier ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path schema1:identifier ], [ sh:datatype xsd:boolean ; sh:description "Whether the assembly is circular or not" ; sh:maxCount 1 ; @@ -845,18 +839,24 @@ opencloning_linkml:InVivoAssemblySource a sh:NodeShape ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path schema1:object ], - [ sh:datatype xsd:string ; - sh:description "Designates the class" ; + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:type ], + sh:order 3 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; - sh:path opencloning_linkml:output_name ] ; + sh:path opencloning_linkml:output_name ], + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path opencloning_linkml:type ] ; sh:targetClass opencloning_linkml:InVivoAssemblySource . opencloning_linkml:LigationSource a sh:NodeShape ; @@ -869,18 +869,6 @@ opencloning_linkml:LigationSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path schema1:identifier ], - [ sh:datatype xsd:boolean ; - sh:description "Whether the assembly is circular or not" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:circular ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; @@ -894,6 +882,18 @@ opencloning_linkml:LigationSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path schema1:identifier ], + [ sh:datatype xsd:boolean ; + sh:description "Whether the assembly is circular or not" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path opencloning_linkml:circular ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:output_name ], [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; @@ -905,7 +905,13 @@ opencloning_linkml:ManuallyTypedSequence a sh:NodeShape ; sh:closed true ; sh:description "Represents a sequence that is manually typed by the user" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; + sh:property [ sh:datatype xsd:string ; + sh:description "Designates the class" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path opencloning_linkml:type ], + [ sh:datatype xsd:integer ; sh:description "The equivalent of `overhang_crick_3prime` but for the watson strand" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -919,6 +925,12 @@ opencloning_linkml:ManuallyTypedSequence a sh:NodeShape ; sh:order 2 ; sh:path opencloning_linkml:sequence ; sh:pattern "^[acgtACGT]+$" ], + [ sh:datatype xsd:boolean ; + sh:description "Whether the sequence is circular or linear" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path opencloning_linkml:circular ], [ sh:datatype xsd:integer ; sh:description "Taken from pydna's `dseq::ovhg`An integer describing the length of the crick strand overhang in the 5' of the molecule, or 3' of the crick strand" ; sh:maxCount 1 ; @@ -931,36 +943,24 @@ opencloning_linkml:ManuallyTypedSequence a sh:NodeShape ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:boolean ; - sh:description "Whether the sequence is circular or linear" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:circular ], - [ sh:datatype xsd:string ; - sh:description "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path opencloning_linkml:type ] ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:ManuallyTypedSequence . opencloning_linkml:ManuallyTypedSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is manually typed by the user" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path schema1:object ], + sh:property [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; + sh:order 2 ; sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; @@ -968,31 +968,30 @@ opencloning_linkml:ManuallyTypedSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:type ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path schema1:identifier ] ; + sh:order 4 ; + sh:path schema1:identifier ], + [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path schema1:object ] ; sh:targetClass opencloning_linkml:ManuallyTypedSource . opencloning_linkml:NCBISequenceSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is identified by an NCBI sequence accession" ; - sh:ignoredProperties ( opencloning_linkml:gene_id rdf:type opencloning_linkml:locus_tag opencloning_linkml:assembly_accession ) ; + sh:ignoredProperties ( opencloning_linkml:locus_tag rdf:type opencloning_linkml:assembly_accession opencloning_linkml:gene_id ) ; sh:property [ sh:datatype xsd:string ; - sh:description "The sequence accession (e.g. X60065.1)" ; + sh:description "Designates the class" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:repository_id ], + sh:order 2 ; + sh:path opencloning_linkml:type ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -1007,11 +1006,12 @@ opencloning_linkml:NCBISequenceSource a sh:NodeShape ; sh:order 3 ; sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:string ; - sh:description "Designates the class" ; + sh:description "The sequence accession (e.g. X60065.1)" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:type ], + sh:order 1 ; + sh:path opencloning_linkml:repository_id ], [ sh:datatype xsd:integer ; sh:description "The id of an entity in a database" ; sh:maxCount 1 ; @@ -1035,17 +1035,28 @@ opencloning_linkml:OligoHybridizationSource a sh:NodeShape ; sh:description "Represents the source of a sequence that is generated by oligo hybridization" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:integer ; - sh:description "Taken from pydna's `dseq::ovhg`An integer describing the length of the crick strand overhang in the 5' of the molecule, or 3' of the crick strand" ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:overhang_crick_3prime ], + sh:order 3 ; + sh:path schema1:identifier ], + [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path schema1:object ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path opencloning_linkml:type ], + [ sh:datatype xsd:integer ; + sh:description "Taken from pydna's `dseq::ovhg`An integer describing the length of the crick strand overhang in the 5' of the molecule, or 3' of the crick strand" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path opencloning_linkml:overhang_crick_3prime ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -1058,18 +1069,7 @@ opencloning_linkml:OligoHybridizationSource a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; - sh:path opencloning_linkml:output_name ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path schema1:object ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path schema1:identifier ] ; + sh:path opencloning_linkml:output_name ] ; sh:targetClass opencloning_linkml:OligoHybridizationSource . opencloning_linkml:OpenDNACollectionsSource a sh:NodeShape ; @@ -1077,11 +1077,20 @@ opencloning_linkml:OpenDNACollectionsSource a sh:NodeShape ; sh:description "Represents the source of a sequence from the Open DNA collections" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; + sh:description "Subpath of the sequence in the Open DNA collections repository" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:output_name ], + sh:order 1 ; + sh:path opencloning_linkml:repository_id ; + sh:pattern "^[^\\/]+\\/[^\\/]+$" ], + [ sh:datatype xsd:string ; + sh:description "The URL of a sequence file" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path opencloning_linkml:sequence_file_url ; + sh:pattern "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$" ], [ sh:datatype xsd:integer ; sh:description "The id of an entity in a database" ; sh:maxCount 1 ; @@ -1089,24 +1098,11 @@ opencloning_linkml:OpenDNACollectionsSource a sh:NodeShape ; sh:order 4 ; sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "Subpath of the sequence in the Open DNA collections repository" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:repository_id ; - sh:pattern "^[^\\/]+\\/[^\\/]+$" ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 5 ; - sh:path schema1:object ], - [ sh:datatype xsd:string ; - sh:description "Designates the class" ; + sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:type ], + sh:order 3 ; + sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -1115,30 +1111,28 @@ opencloning_linkml:OpenDNACollectionsSource a sh:NodeShape ; sh:order 6 ; sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "The URL of a sequence file" ; + sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:sequence_file_url ; - sh:pattern "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$" ] ; + sh:order 2 ; + sh:path opencloning_linkml:type ], + [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 5 ; + sh:path schema1:object ] ; sh:targetClass opencloning_linkml:OpenDNACollectionsSource . opencloning_linkml:OverlapExtensionPCRLigationSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is generated by ligation of PCR products as part of overlap extension PCR. Algorithmically equivalent to Gibson assembly." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:boolean ; - sh:description "Whether the assembly is circular or not" ; + sh:property [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:circular ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:output_name ], + sh:order 3 ; + sh:path schema1:identifier ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -1146,71 +1140,77 @@ opencloning_linkml:OverlapExtensionPCRLigationSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:output_name ], [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path schema1:object ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; - sh:path opencloning_linkml:type ] ; + sh:path opencloning_linkml:type ], + [ sh:datatype xsd:boolean ; + sh:description "Whether the assembly is circular or not" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path opencloning_linkml:circular ] ; sh:targetClass opencloning_linkml:OverlapExtensionPCRLigationSource . opencloning_linkml:PCRSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is generated by PCR" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Designates the class" ; + sh:property [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:type ], + sh:order 6 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:boolean ; + sh:description "Whether the assembly is circular or not" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path opencloning_linkml:circular ], [ sh:datatype xsd:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path opencloning_linkml:output_name ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 5 ; - sh:path schema1:object ], + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:type ], [ sh:datatype xsd:boolean ; sh:description "Whether to add primer features to the PCR product" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:add_primer_features ], - [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path schema1:identifier ], + [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 5 ; + sh:path schema1:object ], [ sh:datatype xsd:integer ; sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:boolean ; - sh:description "Whether the assembly is circular or not" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:circular ] ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:PCRSource . opencloning_linkml:PlannotateAnnotationReport a sh:NodeShape ; @@ -1220,13 +1220,8 @@ opencloning_linkml:PlannotateAnnotationReport a sh:NodeShape ; sh:property [ sh:datatype xsd:integer ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:strand ], - [ sh:datatype xsd:integer ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path opencloning_linkml:full_length_of_feature_in_db ], + sh:order 1 ; + sh:path opencloning_linkml:start_location ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -1237,52 +1232,36 @@ opencloning_linkml:PlannotateAnnotationReport a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:sseqid ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path opencloning_linkml:fragment ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 11 ; sh:path opencloning_linkml:Type ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 12 ; - sh:path opencloning_linkml:Description ], [ sh:datatype xsd:float ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path opencloning_linkml:percent_match_length ], - [ sh:datatype xsd:string ; - sh:description "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 14 ; - sh:path opencloning_linkml:type ], [ sh:datatype xsd:float ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; sh:path opencloning_linkml:percent_identity ], - [ sh:datatype xsd:string ; + [ sh:datatype xsd:integer ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path opencloning_linkml:Feature ], + sh:order 5 ; + sh:path opencloning_linkml:full_length_of_feature_in_db ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path opencloning_linkml:sequence ], - [ sh:datatype xsd:integer ; + sh:order 12 ; + sh:path opencloning_linkml:Description ], + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:start_location ], + sh:order 8 ; + sh:path opencloning_linkml:fragment ], [ sh:datatype xsd:integer ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -1292,60 +1271,122 @@ opencloning_linkml:PlannotateAnnotationReport a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; - sh:path opencloning_linkml:end_location ] ; + sh:path opencloning_linkml:end_location ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path opencloning_linkml:Feature ], + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 14 ; + sh:path opencloning_linkml:type ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 13 ; + sh:path opencloning_linkml:sequence ], + [ sh:datatype xsd:integer ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path opencloning_linkml:strand ] ; sh:targetClass opencloning_linkml:PlannotateAnnotationReport . opencloning_linkml:PolymeraseExtensionSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is generated by polymerase extension" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class schema1:Role ; + sh:property [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path opencloning_linkml:output_name ], + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path schema1:identifier ], + [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 3 ; sh:path schema1:object ], - [ sh:datatype xsd:integer ; + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path opencloning_linkml:type ] ; + sh:targetClass opencloning_linkml:PolymeraseExtensionSource . + +opencloning_linkml:RecombinaseSource a sh:NodeShape ; + sh:closed true ; + sh:description "Represents the source of a sequence that is generated by recombination using one or more recombinases" ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; + sh:order 6 ; sh:path schema1:identifier ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 5 ; + sh:path schema1:object ], + [ sh:class opencloning_linkml:Recombinase ; + sh:minCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 0 ; + sh:path opencloning_linkml:recombinases ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path schema1:identifier ], + sh:order 3 ; + sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; + sh:order 2 ; sh:path opencloning_linkml:type ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; + [ sh:datatype xsd:boolean ; + sh:description "Whether the assembly is circular or not" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; - sh:path opencloning_linkml:output_name ] ; - sh:targetClass opencloning_linkml:PolymeraseExtensionSource . + sh:path opencloning_linkml:circular ], + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path schema1:identifier ] ; + sh:targetClass opencloning_linkml:RecombinaseSource . opencloning_linkml:RepositoryIdSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is identified by a repository id" ; - sh:ignoredProperties ( rdf:type opencloning_linkml:locus_tag opencloning_linkml:sequence_file_url opencloning_linkml:assembly_accession opencloning_linkml:coordinates opencloning_linkml:addgene_sequence_type opencloning_linkml:gene_id ) ; + sh:ignoredProperties ( opencloning_linkml:addgene_sequence_type opencloning_linkml:sequence_file_url opencloning_linkml:coordinates opencloning_linkml:assembly_accession opencloning_linkml:gene_id opencloning_linkml:locus_tag rdf:type ) ; sh:property [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path schema1:object ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:string ; sh:description "The id of the sequence in the repository" ; sh:maxCount 1 ; @@ -1354,10 +1395,11 @@ opencloning_linkml:RepositoryIdSource a sh:NodeShape ; sh:order 0 ; sh:path opencloning_linkml:repository_id ], [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; + sh:order 5 ; sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; @@ -1366,87 +1408,97 @@ opencloning_linkml:RepositoryIdSource a sh:NodeShape ; sh:order 1 ; sh:path opencloning_linkml:type ], [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path schema1:identifier ] ; + sh:order 3 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:output_name ] ; sh:targetClass opencloning_linkml:RepositoryIdSource . opencloning_linkml:RestrictionAndLigationSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is generated by restriction and ligation" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; + sh:property [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 5 ; + sh:path schema1:object ], + [ sh:datatype xsd:integer ; sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:restriction_enzymes ], - [ sh:datatype xsd:string ; - sh:description "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:type ], [ sh:datatype xsd:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path opencloning_linkml:output_name ], + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path schema1:identifier ], [ sh:datatype xsd:boolean ; sh:description "Whether the assembly is circular or not" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path opencloning_linkml:circular ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 5 ; - sh:path schema1:object ], - [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:type ], + [ sh:datatype xsd:string ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path schema1:identifier ] ; + sh:order 0 ; + sh:path opencloning_linkml:restriction_enzymes ] ; sh:targetClass opencloning_linkml:RestrictionAndLigationSource . opencloning_linkml:RestrictionEnzymeDigestionSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is a subfragment of another sequence, generated by sequence cutting using restriction enzymes." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; + sh:property [ sh:class opencloning_linkml:RestrictionSequenceCut ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:output_name ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 5 ; - sh:path schema1:object ], + sh:order 1 ; + sh:path opencloning_linkml:right_edge ], [ sh:class opencloning_linkml:RestrictionSequenceCut ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 0 ; sh:path opencloning_linkml:left_edge ], [ sh:datatype xsd:string ; - sh:description "Designates the class" ; + sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:type ], + sh:order 3 ; + sh:path opencloning_linkml:output_name ], + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path schema1:identifier ], + [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 5 ; + sh:path schema1:object ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -1454,34 +1506,24 @@ opencloning_linkml:RestrictionEnzymeDigestionSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path schema1:identifier ], - [ sh:class opencloning_linkml:RestrictionSequenceCut ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 1 ; - sh:path opencloning_linkml:right_edge ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path schema1:identifier ] ; + sh:order 2 ; + sh:path opencloning_linkml:type ] ; sh:targetClass opencloning_linkml:RestrictionEnzymeDigestionSource . opencloning_linkml:ReverseComplementSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the in-silico transformation of a sequence into its reverse complement" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Designates the class" ; + sh:property [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:type ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path schema1:object ], + sh:order 2 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; @@ -1495,42 +1537,48 @@ opencloning_linkml:ReverseComplementSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 4 ; sh:path schema1:identifier ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path schema1:identifier ] ; + sh:order 0 ; + sh:path opencloning_linkml:type ], + [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path schema1:object ] ; sh:targetClass opencloning_linkml:ReverseComplementSource . opencloning_linkml:SEVASource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is identified by a SEVA id" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; + sh:property [ sh:datatype xsd:string ; + sh:description "Designates the class" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + sh:order 2 ; + sh:path opencloning_linkml:type ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path schema1:identifier ], + sh:order 3 ; + sh:path opencloning_linkml:output_name ], + [ sh:datatype xsd:string ; + sh:description "The SEVA plasmid name" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path opencloning_linkml:repository_id ; + sh:pattern "^pSEVA\\d+.*$" ], [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 5 ; sh:path schema1:object ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:string ; sh:description "The URL of the sequence file, which can refer to a a gb file hosted on the SEVA website or an entry in the NCBI." ; sh:maxCount 1 ; @@ -1538,50 +1586,31 @@ opencloning_linkml:SEVASource a sh:NodeShape ; sh:order 0 ; sh:path opencloning_linkml:sequence_file_url ; sh:pattern "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$" ], - [ sh:datatype xsd:string ; - sh:description "The SEVA plasmid name" ; + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:repository_id ; - sh:pattern "^pSEVA\\d+.*$" ], - [ sh:datatype xsd:string ; - sh:description "Designates the class" ; + sh:order 6 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:type ] ; + sh:order 4 ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:SEVASource . opencloning_linkml:SequenceCutSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is a subfragment of another sequence, generated by sequence cutting." ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path opencloning_linkml:output_name ], - [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path schema1:identifier ], - [ sh:class opencloning_linkml:SequenceCut ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 0 ; - sh:path opencloning_linkml:left_edge ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; @@ -1593,49 +1622,67 @@ opencloning_linkml:SequenceCutSource a sh:NodeShape ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 5 ; sh:path schema1:object ], + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path schema1:identifier ], [ sh:class opencloning_linkml:SequenceCut ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 1 ; - sh:path opencloning_linkml:right_edge ] ; + sh:path opencloning_linkml:right_edge ], + [ sh:class opencloning_linkml:SequenceCut ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 0 ; + sh:path opencloning_linkml:left_edge ] ; sh:targetClass opencloning_linkml:SequenceCutSource . opencloning_linkml:SequencingFile a sh:NodeShape ; sh:closed true ; sh:description "Represents a sequencing file and its alignment to a sequence" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "The type of file" ; - sh:in ( NCIT:C171177 ) ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 4 ; - sh:path opencloning_linkml:file_type ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:description "The alignment of the sequencing read to the sequence. List of strings representing aligned sequences." ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:alignment ], - [ sh:class bioschemas:DNA ; - sh:description "The sequence this file is associated with" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path opencloning_linkml:sequence_id ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path opencloning_linkml:type ], + [ sh:description "The type of file" ; + sh:in ( NCIT:C171177 ) ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 4 ; + sh:path opencloning_linkml:file_type ], [ sh:datatype xsd:string ; sh:description "The name of the file" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; - sh:path opencloning_linkml:file_name ] ; + sh:path opencloning_linkml:file_name ], + [ sh:class bioschemas:DNA ; + sh:description "The sequence this file is associated with" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path opencloning_linkml:sequence_id ] ; sh:targetClass opencloning_linkml:SequencingFile . opencloning_linkml:SnapGenePlasmidSource a sh:NodeShape ; @@ -1643,12 +1690,6 @@ opencloning_linkml:SnapGenePlasmidSource a sh:NodeShape ; sh:description "Represents the source of a sequence from the SnapGene plasmid library identified by a SnapGene subpath of https://www.snapgene.com/plasmids/" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:output_name ], - [ sh:datatype xsd:string ; sh:description "The subpath of the plasmid in the SnapGene plasmid library. Requesting the plasmid is possible with https://www.snapgene.com/local/fetch.php?set={category_path}&plasmid={plasmid['subpath']} where category_path is the left part of the subpath before the first / and plasmid is the subpath after the /." ; sh:maxCount 1 ; sh:minCount 1 ; @@ -1656,11 +1697,6 @@ opencloning_linkml:SnapGenePlasmidSource a sh:NodeShape ; sh:order 0 ; sh:path opencloning_linkml:repository_id ; sh:pattern "^[^\\/]+\\/[^\\/]+$" ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path schema1:object ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -1668,6 +1704,12 @@ opencloning_linkml:SnapGenePlasmidSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; @@ -1679,21 +1721,19 @@ opencloning_linkml:SnapGenePlasmidSource a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; - sh:path schema1:identifier ] ; + sh:path schema1:identifier ], + [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path schema1:object ] ; sh:targetClass opencloning_linkml:SnapGenePlasmidSource . opencloning_linkml:TemplateSequence a sh:NodeShape ; sh:closed true ; sh:description "Represents a sequence that is part of a template, where the actual sequence content will be determined by the user's actions" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:description "Can be used to indicate the intended primer design for this sequence in the template" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -1705,6 +1745,13 @@ opencloning_linkml:TemplateSequence a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:circular ], + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; @@ -1718,11 +1765,24 @@ opencloning_linkml:TextFileSequence a sh:NodeShape ; sh:description "A sequence (may have features) defined by the content of a text file" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:integer ; sh:description "The equivalent of `overhang_crick_3prime` but for the watson strand" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path opencloning_linkml:overhang_watson_3prime ], + [ sh:description "The format of a sequence file" ; + sh:in ( "fasta" "genbank" "snapgene" "embl" ) ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path opencloning_linkml:sequence_file_format ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; @@ -1734,25 +1794,12 @@ opencloning_linkml:TextFileSequence a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; - sh:path opencloning_linkml:overhang_crick_3prime ], - [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path schema1:identifier ], + sh:path opencloning_linkml:overhang_crick_3prime ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; - sh:path opencloning_linkml:file_content ], - [ sh:description "The format of a sequence file" ; - sh:in ( "fasta" "genbank" "snapgene" "embl" ) ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 0 ; - sh:path opencloning_linkml:sequence_file_format ] ; + sh:path opencloning_linkml:file_content ] ; sh:targetClass opencloning_linkml:TextFileSequence . opencloning_linkml:UploadedFileSource a sh:NodeShape ; @@ -1760,12 +1807,6 @@ opencloning_linkml:UploadedFileSource a sh:NodeShape ; sh:description "Represents the source of a sequence that is uploaded as a file" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path opencloning_linkml:output_name ], - [ sh:datatype xsd:string ; sh:description "The name of the file" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -1782,99 +1823,105 @@ opencloning_linkml:UploadedFileSource a sh:NodeShape ; sh:minCount 1 ; sh:order 0 ; sh:path opencloning_linkml:sequence_file_format ], - [ sh:datatype xsd:boolean ; - sh:description "Whether the sequence should be circularized (FASTA only)" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:circularize ], - [ sh:datatype xsd:integer ; - sh:description "The index of the sequence in the file" ; + [ sh:description "If provided, coordinates within the sequence of the file to extract a subsequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:index_in_file ], + sh:order 4 ; + sh:path opencloning_linkml:coordinates ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path opencloning_linkml:type ], + [ sh:datatype xsd:boolean ; + sh:description "Whether the sequence should be circularized (FASTA only)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path opencloning_linkml:circularize ], [ sh:datatype xsd:integer ; sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path schema1:identifier ], - [ sh:description "If provided, coordinates within the sequence of the file to extract a subsequence" ; + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path opencloning_linkml:coordinates ], + sh:order 6 ; + sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 9 ; - sh:path schema1:identifier ] ; + sh:path schema1:identifier ], + [ sh:datatype xsd:integer ; + sh:description "The index of the sequence in the file" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:index_in_file ] ; sh:targetClass opencloning_linkml:UploadedFileSource . opencloning_linkml:WekWikGeneIdSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is identified by a WeKwikGene id" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; + sh:property [ sh:datatype xsd:string ; + sh:description "The id of the gene in the WeKwikGene database" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + sh:order 1 ; + sh:path opencloning_linkml:repository_id ; + sh:pattern "^\\d+$" ], + [ sh:datatype xsd:string ; + sh:description "The URL of a sequence file" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path schema1:identifier ], + sh:order 0 ; + sh:path opencloning_linkml:sequence_file_url ; + sh:pattern "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$" ], [ sh:class schema1:Role ; sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 5 ; sh:path schema1:object ], - [ sh:datatype xsd:string ; - sh:description "Designates the class" ; + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:type ], + sh:order 4 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "The id of the gene in the WeKwikGene database" ; + sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:repository_id ; - sh:pattern "^\\d+$" ], + sh:order 3 ; + sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:string ; - sh:description "The URL of a sequence file" ; + sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:sequence_file_url ; - sh:pattern "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$" ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; + sh:order 2 ; + sh:path opencloning_linkml:type ], + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:output_name ] ; + sh:order 6 ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:WekWikGeneIdSource . opencloning_linkml:AnnotationReport a sh:NodeShape ; sh:closed true ; sh:description "Represents a report of an annotation step" ; - sh:ignoredProperties ( opencloning_linkml:start_location opencloning_linkml:Feature opencloning_linkml:sequence opencloning_linkml:length_of_found_feature opencloning_linkml:full_length_of_feature_in_db rdf:type opencloning_linkml:strand opencloning_linkml:end_location opencloning_linkml:Description opencloning_linkml:percent_identity opencloning_linkml:fragment opencloning_linkml:percent_match_length opencloning_linkml:database opencloning_linkml:sseqid opencloning_linkml:Type ) ; + sh:ignoredProperties ( opencloning_linkml:end_location opencloning_linkml:strand opencloning_linkml:percent_match_length opencloning_linkml:fragment opencloning_linkml:Description opencloning_linkml:length_of_found_feature opencloning_linkml:Type opencloning_linkml:percent_identity opencloning_linkml:start_location opencloning_linkml:database opencloning_linkml:sseqid rdf:type opencloning_linkml:full_length_of_feature_in_db opencloning_linkml:sequence opencloning_linkml:Feature ) ; sh:property [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; @@ -1886,7 +1933,7 @@ opencloning_linkml:AnnotationReport a sh:NodeShape ; opencloning_linkml:AssociatedFile a sh:NodeShape ; sh:closed true ; sh:description "Represents a file associated with a sequence" ; - sh:ignoredProperties ( rdf:type opencloning_linkml:alignment ) ; + sh:ignoredProperties ( opencloning_linkml:alignment rdf:type ) ; sh:property [ sh:class bioschemas:DNA ; sh:description "The sequence this file is associated with" ; sh:maxCount 1 ; @@ -1926,19 +1973,19 @@ opencloning_linkml:CollectionOption a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path opencloning_linkml:source ], + [ sh:class opencloning_linkml:CollectionOptionInfo ; + sh:description "Additional information about this option" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 2 ; + sh:path opencloning_linkml:info ], [ sh:datatype xsd:string ; sh:description "A human-readable name for a thing" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; - sh:path schema1:name ], - [ sh:class opencloning_linkml:CollectionOptionInfo ; - sh:description "Additional information about this option" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 2 ; - sh:path opencloning_linkml:info ] ; + sh:path schema1:name ] ; sh:targetClass opencloning_linkml:CollectionOption . opencloning_linkml:CollectionOptionInfo a sh:NodeShape ; @@ -1946,6 +1993,12 @@ opencloning_linkml:CollectionOptionInfo a sh:NodeShape ; sh:description "Additional information about a collection option" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:description "A description of the option" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path opencloning_linkml:description ], + [ sh:datatype xsd:string ; sh:description "A human-readable name for a thing" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -1957,23 +2010,17 @@ opencloning_linkml:CollectionOptionInfo a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path opencloning_linkml:resistance ], + [ sh:description "The type of the option, this is redundant with the type of the source, and could be removed." ; + sh:in ( "OligoPair" "AddgenePlasmid" ) ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path opencloning_linkml:type ], [ sh:datatype xsd:string ; sh:description "The well position in the kit plate" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; - sh:path opencloning_linkml:well ], - [ sh:datatype xsd:string ; - sh:description "A description of the option" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:description ], - [ sh:description "The type of the option, this is redundant with the type of the source, and could be removed." ; - sh:in ( "OligoPair" "AddgenePlasmid" ) ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path opencloning_linkml:type ] ; + sh:path opencloning_linkml:well ] ; sh:targetClass opencloning_linkml:CollectionOptionInfo . opencloning_linkml:Primer a sh:NodeShape ; @@ -1986,18 +2033,18 @@ opencloning_linkml:Primer a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 4 ; sh:path opencloning_linkml:type ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:sequence ; + sh:pattern "^[acgtACGT]+$" ], [ sh:datatype xsd:integer ; sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "A human-readable name for a thing" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -2006,59 +2053,97 @@ opencloning_linkml:Primer a sh:NodeShape ; sh:order 3 ; sh:path schema1:identifier ], [ sh:datatype xsd:string ; + sh:description "A human-readable name for a thing" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:sequence ; - sh:pattern "^[acgtACGT]+$" ] ; + sh:order 0 ; + sh:path schema1:name ] ; sh:targetClass opencloning_linkml:Primer . -schema1:CreateAction a sh:NodeShape ; - sh:closed false ; - sh:description "Represents the source of a sequence" ; - sh:ignoredProperties ( opencloning_linkml:annotation_tool opencloning_linkml:right_edge opencloning_linkml:annotation_tool_version opencloning_linkml:image opencloning_linkml:annotation_report opencloning_linkml:add_primer_features opencloning_linkml:restriction_enzymes opencloning_linkml:file_name opencloning_linkml:greedy opencloning_linkml:sequence_file_url opencloning_linkml:options opencloning_linkml:coordinates opencloning_linkml:category_id opencloning_linkml:addgene_sequence_type opencloning_linkml:gene_id opencloning_linkml:left_edge opencloning_linkml:circularize rdf:type opencloning_linkml:locus_tag opencloning_linkml:repository_id opencloning_linkml:reaction_type opencloning_linkml:title opencloning_linkml:circular opencloning_linkml:overhang_crick_3prime opencloning_linkml:description opencloning_linkml:assembly_accession opencloning_linkml:sequence_file_format opencloning_linkml:index_in_file ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; +opencloning_linkml:Recombinase a sh:NodeShape ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:datatype xsd:string ; + sh:defaultValue "site1"^^xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path opencloning_linkml:site1_name ], + [ sh:datatype xsd:string ; + sh:description "A human-readable name for a thing" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path opencloning_linkml:site1 ; + sh:pattern "^[A-Z]+[a-z]+[A-Z]+$" ], + [ sh:datatype xsd:string ; + sh:defaultValue "site2"^^xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; sh:order 4 ; - sh:path schema1:identifier ], - [ sh:class schema1:Role ; - sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path schema1:object ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + sh:path opencloning_linkml:site2_name ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; + sh:path opencloning_linkml:site2 ; + sh:pattern "^[A-Z]+[a-z]+[A-Z]+$" ] ; + sh:targetClass opencloning_linkml:Recombinase . + +schema1:CreateAction a sh:NodeShape ; + sh:closed false ; + sh:description "Represents the source of a sequence" ; + sh:ignoredProperties ( opencloning_linkml:options opencloning_linkml:circular opencloning_linkml:image opencloning_linkml:add_primer_features opencloning_linkml:description opencloning_linkml:file_name opencloning_linkml:gene_id opencloning_linkml:locus_tag opencloning_linkml:annotation_tool opencloning_linkml:overhang_crick_3prime rdf:type opencloning_linkml:recombinases opencloning_linkml:title opencloning_linkml:coordinates opencloning_linkml:annotation_tool_version opencloning_linkml:restriction_enzymes opencloning_linkml:left_edge opencloning_linkml:category_id opencloning_linkml:annotation_report opencloning_linkml:addgene_sequence_type opencloning_linkml:repository_id opencloning_linkml:sequence_file_url opencloning_linkml:circularize opencloning_linkml:sequence_file_format opencloning_linkml:assembly_accession opencloning_linkml:right_edge opencloning_linkml:reaction_type opencloning_linkml:greedy opencloning_linkml:index_in_file ) ; + sh:property [ sh:datatype xsd:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path opencloning_linkml:output_name ], + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; - sh:path opencloning_linkml:type ] ; + sh:path opencloning_linkml:type ], + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path schema1:identifier ], + [ sh:class schema1:Role ; + sh:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path schema1:object ] ; sh:targetClass schema1:CreateAction . opencloning_linkml:RestrictionSequenceCut a sh:NodeShape ; sh:closed true ; sh:description "Represents a cut in a DNA sequence that is made by a restriction enzyme" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:integer ; + sh:description "The length of the overhang that is left after the cut. It can be negative, same meaning as in pydna's `dseq::ovhg` and biopython's `Bio.Restriction.RestrictionType.ovhg`." ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:restriction_enzyme ], + sh:order 2 ; + sh:path opencloning_linkml:overhang ], [ sh:datatype xsd:integer ; sh:description "The position of the cut in the watson strand. The cut is made before the base at this position (zero-based), so that cut position 1 cuts after the first base." ; sh:maxCount 1 ; @@ -2066,13 +2151,12 @@ opencloning_linkml:RestrictionSequenceCut a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path opencloning_linkml:cut_watson ], - [ sh:datatype xsd:integer ; - sh:description "The length of the overhang that is left after the cut. It can be negative, same meaning as in pydna's `dseq::ovhg` and biopython's `Bio.Restriction.RestrictionType.ovhg`." ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:overhang ] ; + sh:order 0 ; + sh:path opencloning_linkml:restriction_enzyme ] ; sh:targetClass opencloning_linkml:RestrictionSequenceCut . opencloning_linkml:SequenceCut a sh:NodeShape ; @@ -2080,55 +2164,55 @@ opencloning_linkml:SequenceCut a sh:NodeShape ; sh:description "Represents a cut in a DNA sequence" ; sh:ignoredProperties ( opencloning_linkml:restriction_enzyme rdf:type ) ; sh:property [ sh:datatype xsd:integer ; - sh:description "The length of the overhang that is left after the cut. It can be negative, same meaning as in pydna's `dseq::ovhg` and biopython's `Bio.Restriction.RestrictionType.ovhg`." ; + sh:description "The position of the cut in the watson strand. The cut is made before the base at this position (zero-based), so that cut position 1 cuts after the first base." ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:overhang ], + sh:order 0 ; + sh:path opencloning_linkml:cut_watson ], [ sh:datatype xsd:integer ; - sh:description "The position of the cut in the watson strand. The cut is made before the base at this position (zero-based), so that cut position 1 cuts after the first base." ; + sh:description "The length of the overhang that is left after the cut. It can be negative, same meaning as in pydna's `dseq::ovhg` and biopython's `Bio.Restriction.RestrictionType.ovhg`." ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:cut_watson ] ; + sh:order 1 ; + sh:path opencloning_linkml:overhang ] ; sh:targetClass opencloning_linkml:SequenceCut . bioschemas:DNA a sh:NodeShape ; sh:closed false ; sh:description "Represents a sequence" ; - sh:ignoredProperties ( opencloning_linkml:file_content schema1:name opencloning_linkml:sequence rdf:type opencloning_linkml:circular opencloning_linkml:overhang_crick_3prime opencloning_linkml:sequence_file_format opencloning_linkml:primer_design opencloning_linkml:overhang_watson_3prime ) ; - sh:property [ sh:datatype xsd:integer ; + sh:ignoredProperties ( opencloning_linkml:overhang_watson_3prime opencloning_linkml:circular opencloning_linkml:sequence_file_format schema1:name rdf:type opencloning_linkml:overhang_crick_3prime opencloning_linkml:file_content opencloning_linkml:sequence opencloning_linkml:primer_design ) ; + sh:property [ sh:datatype xsd:string ; + sh:description "Designates the class" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path opencloning_linkml:type ], + [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:type ] ; + sh:path schema1:identifier ] ; sh:targetClass bioschemas:DNA . schema1:Role a sh:NodeShape ; sh:closed true ; sh:description "Represents an input to a source" ; - sh:ignoredProperties ( opencloning_linkml:reverse_complemented rdf:type opencloning_linkml:right_location opencloning_linkml:left_location ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:type ], - [ sh:class bioschemas:DNA ; + sh:ignoredProperties ( opencloning_linkml:reverse_complemented opencloning_linkml:left_location rdf:type opencloning_linkml:right_location ) ; + sh:property [ sh:class bioschemas:DNA ; sh:description "The input sequence" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:IRI ; sh:order 1 ; - sh:path opencloning_linkml:sequence ] ; + sh:path opencloning_linkml:sequence ], + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path opencloning_linkml:type ] ; sh:targetClass schema1:Role . diff --git a/project/shex/opencloning_linkml.shex b/project/shex/opencloning_linkml.shex index 654f6e6..57d6e21 100644 --- a/project/shex/opencloning_linkml.shex +++ b/project/shex/opencloning_linkml.shex @@ -102,7 +102,7 @@ linkml:Sparqlpath xsd:string ) } OR @ OR @ OR @ OR @ OR @ OR @ OR @ OR @ OR @ OR - @ + @ OR @ ) ( @@ -400,6 +400,26 @@ linkml:Sparqlpath xsd:string ) } + CLOSED { + ( $ ( schema1:name @linkml:String ? ; + @linkml:String ; + @linkml:String ; + @linkml:String ? ; + @linkml:String ? + ) ; + rdf:type [ ] ? + ) +} + + CLOSED { + ( $ ( & ; + rdf:type [ ] ? ; + @ + + ) ; + rdf:type [ ] + ) +} + ( CLOSED { ( $ ( & ; diff --git a/project/sqlschema/opencloning_linkml.sql b/project/sqlschema/opencloning_linkml.sql index 8ce73d6..8e609be 100644 --- a/project/sqlschema/opencloning_linkml.sql +++ b/project/sqlschema/opencloning_linkml.sql @@ -66,6 +66,7 @@ -- * Slot: CRISPRSource_id Description: Autocreated FK slot -- * Slot: OligoHybridizationSource_id Description: Autocreated FK slot -- * Slot: PolymeraseExtensionSource_id Description: Autocreated FK slot +-- * Slot: RecombinaseSource_id Description: Autocreated FK slot -- * Slot: AnnotationSource_id Description: Autocreated FK slot -- * Slot: ReverseComplementSource_id Description: Autocreated FK slot -- # Class: "SequenceCut" Description: "Represents a cut in a DNA sequence" @@ -308,6 +309,20 @@ -- * Slot: output_name Description: Used to specify the name of the output sequence -- * Slot: database_id Description: The id of an entity in a database -- * Slot: id Description: A unique identifier for a thing +-- # Class: "Recombinase" Description: "" +-- * Slot: id Description: +-- * Slot: name Description: A human-readable name for a thing +-- * Slot: site1 Description: +-- * Slot: site2 Description: +-- * Slot: site1_name Description: +-- * Slot: site2_name Description: +-- * Slot: RecombinaseSource_id Description: Autocreated FK slot +-- # Class: "RecombinaseSource" Description: "Represents the source of a sequence that is generated by recombination using one or more recombinases" +-- * Slot: circular Description: Whether the assembly is circular or not +-- * Slot: type Description: Designates the class +-- * Slot: output_name Description: Used to specify the name of the output sequence +-- * Slot: database_id Description: The id of an entity in a database +-- * Slot: id Description: A unique identifier for a thing -- # Class: "CloningStrategy" Description: "Represents a cloning strategy" -- * Slot: id Description: -- * Slot: description Description: A description of the cloning strategy @@ -670,6 +685,14 @@ CREATE TABLE "PolymeraseExtensionSource" ( id INTEGER NOT NULL, PRIMARY KEY (id) ); +CREATE TABLE "RecombinaseSource" ( + circular BOOLEAN, + type TEXT, + output_name TEXT, + database_id INTEGER, + id INTEGER NOT NULL, + PRIMARY KEY (id) +); CREATE TABLE "CloningStrategy" ( id INTEGER NOT NULL, description TEXT, @@ -761,6 +784,17 @@ CREATE TABLE "RestrictionEnzymeDigestionSource" ( FOREIGN KEY(left_edge_id) REFERENCES "RestrictionSequenceCut" (id), FOREIGN KEY(right_edge_id) REFERENCES "RestrictionSequenceCut" (id) ); +CREATE TABLE "Recombinase" ( + id INTEGER NOT NULL, + name TEXT, + site1 TEXT NOT NULL, + site2 TEXT NOT NULL, + site1_name TEXT, + site2_name TEXT, + "RecombinaseSource_id" INTEGER, + PRIMARY KEY (id), + FOREIGN KEY("RecombinaseSource_id") REFERENCES "RecombinaseSource" (id) +); CREATE TABLE "AnnotationReport" ( id INTEGER NOT NULL, type TEXT, @@ -816,6 +850,7 @@ CREATE TABLE "SourceInput" ( "CRISPRSource_id" INTEGER, "OligoHybridizationSource_id" INTEGER, "PolymeraseExtensionSource_id" INTEGER, + "RecombinaseSource_id" INTEGER, "AnnotationSource_id" INTEGER, "ReverseComplementSource_id" INTEGER, PRIMARY KEY (id), @@ -852,6 +887,7 @@ CREATE TABLE "SourceInput" ( FOREIGN KEY("CRISPRSource_id") REFERENCES "CRISPRSource" (id), FOREIGN KEY("OligoHybridizationSource_id") REFERENCES "OligoHybridizationSource" (id), FOREIGN KEY("PolymeraseExtensionSource_id") REFERENCES "PolymeraseExtensionSource" (id), + FOREIGN KEY("RecombinaseSource_id") REFERENCES "RecombinaseSource" (id), FOREIGN KEY("AnnotationSource_id") REFERENCES "AnnotationSource" (id), FOREIGN KEY("ReverseComplementSource_id") REFERENCES "ReverseComplementSource" (id) ); diff --git a/src/opencloning_linkml/datamodel/_models.py b/src/opencloning_linkml/datamodel/_models.py index fb202c6..d6487ed 100644 --- a/src/opencloning_linkml/datamodel/_models.py +++ b/src/opencloning_linkml/datamodel/_models.py @@ -461,7 +461,7 @@ class Primer(Sequence): json_schema_extra={ "linkml_meta": { "alias": "name", - "domain_of": ["Primer", "CollectionOption", "CollectionOptionInfo"], + "domain_of": ["Primer", "CollectionOption", "CollectionOptionInfo", "Recombinase"], "slot_uri": "schema:name", } }, @@ -846,7 +846,7 @@ class CollectionOption(ConfiguredBaseModel): json_schema_extra={ "linkml_meta": { "alias": "name", - "domain_of": ["Primer", "CollectionOption", "CollectionOptionInfo"], + "domain_of": ["Primer", "CollectionOption", "CollectionOptionInfo", "Recombinase"], "slot_uri": "schema:name", } }, @@ -874,6 +874,7 @@ class CollectionOption(ConfiguredBaseModel): RestrictionAndLigationSource, GatewaySource, CreLoxRecombinationSource, + RecombinaseSource, CRISPRSource, RestrictionEnzymeDigestionSource, AddgeneIdSource, @@ -916,7 +917,7 @@ class CollectionOptionInfo(ConfiguredBaseModel): json_schema_extra={ "linkml_meta": { "alias": "name", - "domain_of": ["Primer", "CollectionOption", "CollectionOptionInfo"], + "domain_of": ["Primer", "CollectionOption", "CollectionOptionInfo", "Recombinase"], "slot_uri": "schema:name", } }, @@ -3271,6 +3272,134 @@ class PolymeraseExtensionSource(Source): ) +class Recombinase(ConfiguredBaseModel): + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "https://opencloning.github.io/OpenCloning_LinkML"}) + + name: Optional[str] = Field( + default=None, + description="""A human-readable name for a thing""", + json_schema_extra={ + "linkml_meta": { + "alias": "name", + "domain_of": ["Primer", "CollectionOption", "CollectionOptionInfo", "Recombinase"], + "slot_uri": "schema:name", + } + }, + ) + site1: str = Field( + default=..., json_schema_extra={"linkml_meta": {"alias": "site1", "domain_of": ["Recombinase"]}} + ) + site2: str = Field( + default=..., json_schema_extra={"linkml_meta": {"alias": "site2", "domain_of": ["Recombinase"]}} + ) + site1_name: Optional[str] = Field( + default="site1", + json_schema_extra={ + "linkml_meta": {"alias": "site1_name", "domain_of": ["Recombinase"], "ifabsent": 'string("site1")'} + }, + ) + site2_name: Optional[str] = Field( + default="site2", + json_schema_extra={ + "linkml_meta": {"alias": "site2_name", "domain_of": ["Recombinase"], "ifabsent": 'string("site2")'} + }, + ) + + @field_validator("site1") + def pattern_site1(cls, v): + pattern = re.compile(r"^[A-Z]+[a-z]+[A-Z]+$") + if isinstance(v, list): + for element in v: + if isinstance(element, str) and not pattern.match(element): + err_msg = f"Invalid site1 format: {element}" + raise ValueError(err_msg) + elif isinstance(v, str) and not pattern.match(v): + err_msg = f"Invalid site1 format: {v}" + raise ValueError(err_msg) + return v + + @field_validator("site2") + def pattern_site2(cls, v): + pattern = re.compile(r"^[A-Z]+[a-z]+[A-Z]+$") + if isinstance(v, list): + for element in v: + if isinstance(element, str) and not pattern.match(element): + err_msg = f"Invalid site2 format: {element}" + raise ValueError(err_msg) + elif isinstance(v, str) and not pattern.match(v): + err_msg = f"Invalid site2 format: {v}" + raise ValueError(err_msg) + return v + + +class RecombinaseSource(AssemblySource): + """ + Represents the source of a sequence that is generated by recombination using one or more recombinases + """ + + linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({"from_schema": "https://opencloning.github.io/OpenCloning_LinkML"}) + + recombinases: list[Recombinase] = Field( + default=..., json_schema_extra={"linkml_meta": {"alias": "recombinases", "domain_of": ["RecombinaseSource"]}} + ) + circular: Optional[bool] = Field( + default=None, + description="""Whether the assembly is circular or not""", + json_schema_extra={ + "linkml_meta": { + "alias": "circular", + "domain_of": ["TemplateSequence", "ManuallyTypedSequence", "AssemblySource"], + } + }, + ) + type: Literal["RecombinaseSource"] = Field( + default="RecombinaseSource", + description="""Designates the class""", + json_schema_extra={ + "linkml_meta": { + "alias": "type", + "designates_type": True, + "domain_of": [ + "Sequence", + "SourceInput", + "Source", + "CollectionOptionInfo", + "AnnotationReport", + "AssociatedFile", + ], + } + }, + ) + output_name: Optional[str] = Field( + default=None, + description="""Used to specify the name of the output sequence""", + json_schema_extra={"linkml_meta": {"alias": "output_name", "domain_of": ["Source"]}}, + ) + database_id: Optional[int] = Field( + default=None, + description="""The id of an entity in a database""", + json_schema_extra={ + "linkml_meta": { + "alias": "database_id", + "domain_of": ["Primer", "Source", "DatabaseSource"], + "slot_uri": "schema:identifier", + } + }, + ) + input: Optional[list[Union[SourceInput, AssemblyFragment]]] = Field( + default_factory=list, + description="""The inputs to this source. If the source represents external import of a sequence, it's empty.""", + json_schema_extra={"linkml_meta": {"alias": "input", "domain_of": ["Source"], "slot_uri": "schema:object"}}, + ) + id: int = Field( + default=..., + description="""A unique identifier for a thing""", + json_schema_extra={ + "linkml_meta": {"alias": "id", "domain_of": ["NamedThing", "Sequence"], "slot_uri": "schema:identifier"} + }, + ) + + class CloningStrategy(ConfiguredBaseModel): """ Represents a cloning strategy @@ -3307,6 +3436,7 @@ class CloningStrategy(ConfiguredBaseModel): RestrictionAndLigationSource, GatewaySource, CreLoxRecombinationSource, + RecombinaseSource, CRISPRSource, RestrictionEnzymeDigestionSource, AddgeneIdSource, @@ -3743,6 +3873,8 @@ class SequencingFile(AssociatedFile): CRISPRSource.model_rebuild() OligoHybridizationSource.model_rebuild() PolymeraseExtensionSource.model_rebuild() +Recombinase.model_rebuild() +RecombinaseSource.model_rebuild() CloningStrategy.model_rebuild() AnnotationReport.model_rebuild() PlannotateAnnotationReport.model_rebuild() diff --git a/src/opencloning_linkml/schema/opencloning_linkml.yaml b/src/opencloning_linkml/schema/opencloning_linkml.yaml index 6a98a04..f75d3af 100644 --- a/src/opencloning_linkml/schema/opencloning_linkml.yaml +++ b/src/opencloning_linkml/schema/opencloning_linkml.yaml @@ -631,6 +631,36 @@ classes: # - Constrain to one input # - Constrain to having overhangs that can be filled + Recombinase: + slots: + - name + attributes: + - site1: + range: string + pattern: ^[A-Z]+[a-z]+[A-Z]+$ + required: true + - site2: + range: string + pattern: ^[A-Z]+[a-z]+[A-Z]+$ + required: true + - site1_name: + range: string + ifabsent: string("site1") + - site2_name: + range: string + ifabsent: string("site2") + + RecombinaseSource: + is_a: AssemblySource + description: >- + Represents the source of a sequence that is generated by recombination using one or more recombinases + attributes: + - recombinases: + range: Recombinase + required: true + multivalued: true + inlined_as_list: true + CloningStrategy: description: >- Represents a cloning strategy