diff --git a/project/excel/opencloning_linkml.xlsx b/project/excel/opencloning_linkml.xlsx index 847e515..1be39a9 100644 Binary files a/project/excel/opencloning_linkml.xlsx and b/project/excel/opencloning_linkml.xlsx differ diff --git a/project/jsonld/opencloning_linkml.context.jsonld b/project/jsonld/opencloning_linkml.context.jsonld index b1baea7..20b625f 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-11-26T10:36:02", + "generation_date": "2025-11-27T13:31:19", "source": "opencloning_linkml.yaml" }, "@context": { diff --git a/project/jsonld/opencloning_linkml.jsonld b/project/jsonld/opencloning_linkml.jsonld index eafc8fa..adaf183 100644 --- a/project/jsonld/opencloning_linkml.jsonld +++ b/project/jsonld/opencloning_linkml.jsonld @@ -2021,7 +2021,7 @@ "usage_slot_name": "repository_id", "range": "string", "required": true, - "pattern": "^.+\\/.+$", + "pattern": "^[^\\/]+\\/[^\\/]+$", "@type": "SlotDefinition" }, { @@ -2047,7 +2047,7 @@ { "name": "IGEMSource_repository_id", "definition_uri": "https://opencloning.github.io/OpenCloning_LinkML/repository_id", - "description": "The unique identifier of the sequence in the iGEM collection (for now, {part_id}-{plasmid_backbone})", + "description": "The unique identifier of the sequence in the iGEM collection (for now, {part_id}-{plasmid_backbone}) pattern: ^[^-]+-[^-]+$", "from_schema": "https://opencloning.github.io/OpenCloning_LinkML", "is_a": "repository_id", "domain": "IGEMSource", @@ -2080,7 +2080,7 @@ "usage_slot_name": "sequence_file_url", "range": "string", "required": true, - "pattern": "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$", + "pattern": "^.*.gb$", "@type": "SlotDefinition" }, { @@ -2100,6 +2100,7 @@ "usage_slot_name": "repository_id", "range": "string", "required": true, + "pattern": "^[^\\/]+\\/[^\\/]+$", "@type": "SlotDefinition" }, { @@ -3541,9 +3542,9 @@ ], "metamodel_version": "1.7.0", "source_file": "opencloning_linkml.yaml", - "source_file_date": "2025-11-26T10:35:56", - "source_file_size": 26028, - "generation_date": "2025-11-26T10:36:03", + "source_file_date": "2025-11-27T13:31:15", + "source_file_size": 26128, + "generation_date": "2025-11-27T13:31:19", "@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 f670e1e..98efd97 100644 --- a/project/jsonschema/opencloning_linkml.schema.json +++ b/project/jsonschema/opencloning_linkml.schema.json @@ -1471,7 +1471,7 @@ ] }, "repository_id": { - "description": "The unique identifier of the sequence in the iGEM collection (for now, {part_id}-{plasmid_backbone})", + "description": "The unique identifier of the sequence in the iGEM collection (for now, {part_id}-{plasmid_backbone}) pattern: ^[^-]+-[^-]+$", "type": "string" }, "repository_name": { @@ -1479,7 +1479,7 @@ }, "sequence_file_url": { "description": "The URL of the sequence file, for now github repository", - "pattern": "^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$", + "pattern": "^.*.gb$", "type": "string" }, "type": { @@ -1895,6 +1895,7 @@ }, "repository_id": { "description": "Subpath of the sequence in the Open DNA collections repository", + "pattern": "^[^\\/]+\\/[^\\/]+$", "type": "string" }, "repository_name": { @@ -2836,7 +2837,7 @@ }, "repository_id": { "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 /.", - "pattern": "^.+\\/.+$", + "pattern": "^[^\\/]+\\/[^\\/]+$", "type": "string" }, "repository_name": { diff --git a/project/owl/opencloning_linkml.owl.ttl b/project/owl/opencloning_linkml.owl.ttl index 979c248..2455b83 100644 --- a/project/owl/opencloning_linkml.owl.ttl +++ b/project/owl/opencloning_linkml.owl.ttl @@ -15,65 +15,65 @@ opencloning_linkml:CloningStrategy a owl:Class, linkml:ClassDefinition ; rdfs:label "CloningStrategy" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:Sequence ; - owl:onProperty opencloning_linkml:sequences ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:schema_version ], [ a owl:Restriction ; owl:allValuesFrom opencloning_linkml:version_number ; owl:onProperty opencloning_linkml:frontend_version ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:frontend_version ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:description ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:description ], + owl:onProperty opencloning_linkml:files ], [ a owl:Restriction ; owl:allValuesFrom opencloning_linkml:version_number ; - owl:onProperty opencloning_linkml:backend_version ], + owl:onProperty opencloning_linkml:schema_version ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:backend_version ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:version_number ; - owl:onProperty opencloning_linkml:schema_version ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:primers ], [ a owl:Restriction ; owl:maxCardinality 1 ; 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 linkml:String ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:description ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:files ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:frontend_version ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:schema_version ], - [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:Source ; - owl:onProperty opencloning_linkml:sources ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:sources ], + owl:allValuesFrom opencloning_linkml:Sequence ; + owl:onProperty opencloning_linkml:sequences ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:backend_version ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:sequences ], [ a owl:Restriction ; owl:allValuesFrom opencloning_linkml:AssociatedFile ; owl:onProperty opencloning_linkml:files ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:sequences ], + owl:allValuesFrom opencloning_linkml:Primer ; + owl:onProperty opencloning_linkml:primers ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:primers ] ; + owl:onProperty opencloning_linkml:frontend_version ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:Source ; + owl:onProperty opencloning_linkml:sources ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:sources ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:description ] ; skos:definition "Represents a cloning strategy" ; skos:inScheme . @@ -91,31 +91,31 @@ opencloning_linkml:CollectionOption a owl:Class, linkml:ClassDefinition ; rdfs:label "CollectionOption" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:info ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:CollectionOptionInfo ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:source ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:info ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:source ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:info ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:name ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:Source ; - owl:onProperty opencloning_linkml:source ], + owl:allValuesFrom opencloning_linkml:CollectionOptionInfo ; + owl:onProperty opencloning_linkml:info ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom opencloning_linkml:Source ; owl:onProperty opencloning_linkml:source ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:name ] ; skos:definition "Represents an option in a collection" ; skos:inScheme . @@ -124,35 +124,29 @@ opencloning_linkml:CollectionOptionInfo a owl:Class, linkml:ClassDefinition ; rdfs:label "CollectionOptionInfo" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:resistance ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:description ], - [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:type ], - [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:CollectionOptionType ; - owl:onProperty opencloning_linkml:type ], + owl:onProperty opencloning_linkml:resistance ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:well ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:description ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:name ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:resistance ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom opencloning_linkml:CollectionOptionType ; + owl:onProperty opencloning_linkml:type ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:resistance ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:name ], + owl:onProperty opencloning_linkml:description ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:type ], @@ -160,14 +154,20 @@ opencloning_linkml:CollectionOptionInfo a owl:Class, owl:minCardinality 0 ; owl:onProperty opencloning_linkml:well ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:description ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:well ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:name ] ; + owl:onProperty opencloning_linkml:type ] ; skos:definition "Additional information about a collection option" ; skos:inScheme . @@ -176,7 +176,7 @@ opencloning_linkml:AddgeneIdSource a owl:Class, rdfs:label "AddgeneIdSource" ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:addgene_sequence_type ], + owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; owl:allValuesFrom [ a rdfs:Datatype ; owl:intersectionOf ( linkml:String [ a rdfs:Datatype ; @@ -184,17 +184,17 @@ 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:allValuesFrom opencloning_linkml:AddgeneSequenceType ; + owl:maxCardinality 1 ; 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:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:addgene_sequence_type ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:AddgeneSequenceType ; + 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" ; skos:inScheme . @@ -213,11 +213,11 @@ opencloning_linkml:AnnotationSource a owl:Class, linkml:ClassDefinition ; rdfs:label "AnnotationSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:AnnotationTool ; - owl:onProperty opencloning_linkml:annotation_tool ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:annotation_tool_version ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:annotation_report ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:annotation_tool ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:annotation_tool_version ], @@ -225,16 +225,16 @@ opencloning_linkml:AnnotationSource a owl:Class, owl:minCardinality 1 ; owl:onProperty opencloning_linkml:annotation_tool ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom opencloning_linkml:AnnotationReport ; + owl:onProperty opencloning_linkml:annotation_report ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:AnnotationTool ; owl:onProperty opencloning_linkml:annotation_tool ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:annotation_tool_version ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:annotation_tool_version ], - [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:AnnotationReport ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:annotation_report ], opencloning_linkml:Source ; skos:definition "Represents a computational step in which sequence features are annotated in a sequence" ; @@ -244,32 +244,32 @@ 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:right_location ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:right_location ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:left_location ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:reverse_complemented ], - [ 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 ], + owl:allValuesFrom linkml:Boolean ; + owl:onProperty opencloning_linkml:reverse_complemented ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:reverse_complemented ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:reverse_complemented ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:sequence_range ; owl:onProperty opencloning_linkml:left_location ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:reverse_complemented ], + owl:onProperty opencloning_linkml:right_location ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty opencloning_linkml:reverse_complemented ], + owl:allValuesFrom opencloning_linkml:sequence_range ; + owl:onProperty opencloning_linkml:right_location ], opencloning_linkml:SourceInput ; skos:definition "Represents a fragment in an assembly" ; skos:inScheme . @@ -278,6 +278,9 @@ opencloning_linkml:BenchlingUrlSource a owl:Class, linkml:ClassDefinition ; rdfs:label "BenchlingUrlSource" ; rdfs:subClassOf [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:repository_id ], + [ a owl:Restriction ; owl:allValuesFrom [ a rdfs:Datatype ; owl:onDatatype xsd:string ; owl:withRestrictions ( [ xsd:pattern "^https:\\/\\/benchling\\.com\\/.+\\.gb$" ] ) ] ; @@ -285,9 +288,6 @@ opencloning_linkml:BenchlingUrlSource a owl:Class, [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], - [ a owl:Restriction ; - owl:maxCardinality 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" ; skos:inScheme . @@ -323,23 +323,29 @@ opencloning_linkml:CollectionSource a owl:Class, linkml:ClassDefinition ; rdfs:label "CollectionSource" ; rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:image ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:description ], + [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:description ], [ 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: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 ], [ a owl:Restriction ; - owl:minCardinality 0 ; + 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:minCardinality 1 ; owl:onProperty opencloning_linkml:title ], @@ -347,17 +353,11 @@ opencloning_linkml:CollectionSource a owl:Class, owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:title ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:CollectionOption ; - owl:onProperty opencloning_linkml:options ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:category_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:description ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:image ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:description ], + owl:onProperty opencloning_linkml:options ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:category_id ], @@ -376,13 +376,13 @@ opencloning_linkml:DatabaseSource a owl:Class, linkml:ClassDefinition ; rdfs:label "DatabaseSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom linkml:Integer ; 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:minCardinality 1 ; owl:onProperty opencloning_linkml:database_id ], opencloning_linkml:Source ; skos:definition "Represents the source of a sequence that is identified by a database id" ; @@ -392,15 +392,15 @@ opencloning_linkml:EuroscarfSource a owl:Class, linkml:ClassDefinition ; rdfs:label "EuroscarfSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:withRestrictions ( [ xsd:pattern "^P\\d+$" ] ) ] ; owl:onProperty opencloning_linkml:repository_id ], [ 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+$" ] ) ] ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], opencloning_linkml:RepositoryIdSource ; skos:definition "Represents the source of a sequence from the Euroscarf plasmid library" ; @@ -420,23 +420,23 @@ 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 ], - [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:greedy ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:greedy ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:reaction_type ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:greedy ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:GatewayReactionType ; + owl:onProperty opencloning_linkml:reaction_type ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:reaction_type ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Boolean ; + owl:onProperty opencloning_linkml:greedy ], opencloning_linkml:AssemblySource ; skos:definition "Represents the source of a sequence that is generated by Gateway cloning" ; skos:inScheme . @@ -445,68 +445,68 @@ opencloning_linkml:GenomeCoordinatesSource a owl:Class, linkml:ClassDefinition ; rdfs:label "GenomeCoordinatesSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:locus_tag ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:gene_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:strand ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:sequence_accession ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:strand ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:sequence_accession ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:end ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:locus_tag ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:gene_id ], + owl:onProperty opencloning_linkml:start ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:start ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:assembly_accession ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:gene_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:gene_id ], + owl:onProperty opencloning_linkml:end ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:start ], + [ a owl:Restriction ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:strand ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:assembly_accession ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:locus_tag ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:start ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:gene_id ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:locus_tag ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:end ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:assembly_accession ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:end ], + owl:onProperty opencloning_linkml:assembly_accession ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:sequence_accession ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:strand ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:start ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:locus_tag ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:gene_id ], + owl:onProperty opencloning_linkml:assembly_accession ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:end ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:assembly_accession ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:sequence_accession ], opencloning_linkml:Source ; skos:definition "Represents the source of a sequence that is identified by genome coordinates, requested from NCBI" ; skos:inScheme . @@ -522,26 +522,26 @@ opencloning_linkml:IGEMSource a owl:Class, linkml:ClassDefinition ; rdfs:label "IGEMSource" ; rdfs:subClassOf [ 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:minCardinality 1 ; owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:sequence_file_url ], + owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom linkml:String ; 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 "^.*.gb$" ] ) ] ) ] ; + owl:onProperty opencloning_linkml:sequence_file_url ], opencloning_linkml:RepositoryIdSource ; skos:definition "Represents the source of a sequence from an iGEM collection" ; skos:inScheme . @@ -571,44 +571,44 @@ opencloning_linkml:ManuallyTypedSource a owl:Class, linkml:ClassDefinition ; rdfs:label "ManuallyTypedSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:circular ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:circular ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty opencloning_linkml:overhang_watson_3prime ], [ 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:minCardinality 1 ; owl:onProperty opencloning_linkml:user_input ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:circular ], + 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:user_input ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:user_input ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:overhang_watson_3prime ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:overhang_watson_3prime ], + owl:onProperty opencloning_linkml:user_input ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:user_input ], + owl:onProperty opencloning_linkml:circular ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Boolean ; + owl:onProperty opencloning_linkml:circular ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:overhang_watson_3prime ], opencloning_linkml:Source ; skos:definition "Represents the source of a sequence that is manually typed by the user" ; skos:inScheme . @@ -632,13 +632,13 @@ opencloning_linkml:OligoHybridizationSource a owl:Class, linkml:ClassDefinition ; rdfs:label "OligoHybridizationSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; - owl:minCardinality 0 ; + 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" ; @@ -651,13 +651,12 @@ opencloning_linkml:OpenDNACollectionsSource a owl:Class, owl:minCardinality 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:minCardinality 0 ; owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:onDatatype xsd:string ; + owl:withRestrictions ( [ xsd:pattern "^[^\\/]+\\/[^\\/]+$" ] ) ] ; owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; @@ -666,7 +665,10 @@ opencloning_linkml:OpenDNACollectionsSource a owl:Class, owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; - owl:minCardinality 0 ; + 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 ], opencloning_linkml:RepositoryIdSource ; skos:definition "Represents the source of a sequence from the Open DNA collections" ; @@ -683,13 +685,13 @@ opencloning_linkml:PCRSource a owl:Class, linkml:ClassDefinition ; rdfs:label "PCRSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:add_primer_features ], [ a owl:Restriction ; 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" ; @@ -700,130 +702,130 @@ opencloning_linkml:PlannotateAnnotationReport a owl:Class, rdfs:label "PlannotateAnnotationReport" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:percent_identity ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:database ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:start_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 ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:Type ], + owl:onProperty opencloning_linkml:sseqid ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:Description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:strand ], + owl:onProperty opencloning_linkml:fragment ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:sequence ], + owl:onProperty opencloning_linkml:end_location ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:sseqid ], + owl:onProperty opencloning_linkml:database ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:percent_identity ], + owl:onProperty opencloning_linkml:strand ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:Feature ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:fragment ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:Description ], + owl:onProperty opencloning_linkml:sequence ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:length_of_found_feature ], + owl:allValuesFrom linkml:Float ; + owl:onProperty opencloning_linkml:percent_identity ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:full_length_of_feature_in_db ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:full_length_of_feature_in_db ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:length_of_found_feature ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:Description ], + owl:onProperty opencloning_linkml:Feature ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:start_location ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:end_location ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:Boolean ; owl:onProperty opencloning_linkml:fragment ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:end_location ], + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:Type ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:Description ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Float ; - owl:onProperty opencloning_linkml:percent_identity ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:full_length_of_feature_in_db ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:end_location ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:length_of_found_feature ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:sequence ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:strand ], + owl:onProperty opencloning_linkml:start_location ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:percent_match_length ], + owl:onProperty opencloning_linkml:full_length_of_feature_in_db ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:database ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:sseqid ], + owl:onProperty opencloning_linkml:percent_identity ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:Type ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:sseqid ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:Feature ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:database ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:Feature ], + owl:onProperty opencloning_linkml:length_of_found_feature ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:sequence ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:length_of_found_feature ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:percent_match_length ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:full_length_of_feature_in_db ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Float ; owl:onProperty opencloning_linkml:percent_match_length ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; - owl:onProperty opencloning_linkml:fragment ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:Type ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:strand ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:end_location ], + owl:onProperty opencloning_linkml:Feature ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:percent_identity ], + owl:onProperty opencloning_linkml:fragment ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:database ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:Type ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:strand ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:sseqid ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:start_location ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:database ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:length_of_found_feature ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:Description ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:start_location ], + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:strand ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:sseqid ], opencloning_linkml:AnnotationReport ; skos:definition "Represents a report of an annotation step using Plannotate" ; skos:inScheme . @@ -899,6 +901,9 @@ opencloning_linkml:RestrictionEnzymeDigestionSource a owl:Class, rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom opencloning_linkml:RestrictionSequenceCut ; owl:onProperty opencloning_linkml:left_edge ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:left_edge ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:right_edge ], @@ -911,9 +916,6 @@ opencloning_linkml:RestrictionEnzymeDigestionSource a owl:Class, [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:right_edge ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:left_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." ; skos:inScheme . @@ -922,13 +924,13 @@ opencloning_linkml:RestrictionSequenceCut a owl:Class, linkml:ClassDefinition ; rdfs:label "RestrictionSequenceCut" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:restriction_enzyme ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + 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" ; @@ -945,12 +947,6 @@ opencloning_linkml:SEVASource a owl:Class, linkml:ClassDefinition ; rdfs:label "SEVASource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:sequence_file_url ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - 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 ; @@ -958,14 +954,20 @@ opencloning_linkml:SEVASource a owl:Class, owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; owl:maxCardinality 1 ; + 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:allValuesFrom [ a rdfs:Datatype ; owl:onDatatype xsd:string ; owl:withRestrictions ( [ xsd:pattern "^pSEVA\\d+.*$" ] ) ] ; owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], opencloning_linkml:RepositoryIdSource ; skos:definition "Represents the source of a sequence that is identified by a SEVA id" ; @@ -1010,13 +1012,13 @@ opencloning_linkml:SnapGenePlasmidSource a owl:Class, rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom [ a rdfs:Datatype ; owl:onDatatype xsd:string ; - owl:withRestrictions ( [ xsd:pattern "^.+\\/.+$" ] ) ] ; + owl:withRestrictions ( [ xsd:pattern "^[^\\/]+\\/[^\\/]+$" ] ) ] ; 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 from the SnapGene plasmid library identified by a SnapGene subpath of https://www.snapgene.com/plasmids/" ; @@ -1026,22 +1028,22 @@ opencloning_linkml:TemplateSequence a owl:Class, linkml:ClassDefinition ; rdfs:label "TemplateSequence" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:circular ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:circular ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:primer_design ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:primer_design ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:Boolean ; owl:onProperty opencloning_linkml:circular ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:circular ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:primer_design ], opencloning_linkml:Sequence ; skos:definition "Represents a sequence that is part of a template, where the actual sequence content will be determined by the user's actions" ; @@ -1052,40 +1054,40 @@ opencloning_linkml:TextFileSequence a owl:Class, rdfs:label "TextFileSequence" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:file_content ], + [ a owl:Restriction ; + 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:onProperty opencloning_linkml:overhang_watson_3prime ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:sequence_file_format ], [ 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 0 ; - owl:onProperty opencloning_linkml:file_content ], + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom opencloning_linkml:SequenceFileFormat ; owl:onProperty opencloning_linkml:sequence_file_format ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:sequence_file_format ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; 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:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:overhang_watson_3prime ], - [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:overhang_crick_3prime ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:file_content ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:overhang_watson_3prime ], opencloning_linkml:Sequence ; skos:definition "A sequence (may have features) defined by the content of a text file" ; skos:inScheme . @@ -1094,6 +1096,12 @@ opencloning_linkml:UploadedFileSource a owl:Class, linkml:ClassDefinition ; rdfs:label "UploadedFileSource" ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:sequence_range ; + owl:onProperty opencloning_linkml:coordinates ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:index_in_file ], + [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:coordinates ], [ a owl:Restriction ; @@ -1104,7 +1112,13 @@ opencloning_linkml:UploadedFileSource a owl:Class, owl:onProperty opencloning_linkml:circularize ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:circularize ], + owl:onProperty opencloning_linkml:file_name ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:file_name ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:sequence_file_format ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:coordinates ], @@ -1112,32 +1126,20 @@ opencloning_linkml:UploadedFileSource a owl:Class, owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:circularize ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:index_in_file ], + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:sequence_file_format ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:index_in_file ], + owl:onProperty opencloning_linkml:circularize ], [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:file_name ], - [ 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 opencloning_linkml:SequenceFileFormat ; owl:onProperty opencloning_linkml:sequence_file_format ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:sequence_range ; - owl:onProperty opencloning_linkml:coordinates ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:sequence_file_format ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:file_name ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:index_in_file ], opencloning_linkml:Source ; skos:definition "Represents the source of a sequence that is uploaded as a file" ; skos:inScheme . @@ -1146,22 +1148,22 @@ 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 ], + 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:maxCardinality 1 ; owl:onProperty opencloning_linkml:sequence_file_url ], [ a owl:Restriction ; - owl:minCardinality 1 ; + 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 ], + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; owl:allValuesFrom [ a rdfs:Datatype ; owl:intersectionOf ( linkml:String [ a rdfs:Datatype ; @@ -1261,34 +1263,34 @@ opencloning_linkml:Primer a owl:Class, linkml:ClassDefinition ; rdfs:label "Primer" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:name ], + 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:sequence ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:name ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:database_id ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:name ], - [ 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:minCardinality 0 ; owl:onProperty opencloning_linkml:sequence ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:database_id ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:database_id ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:name ], opencloning_linkml:Sequence ; skos:definition "An oligonucleotide or primer" ; @@ -1298,22 +1300,22 @@ opencloning_linkml:SequenceCut a owl:Class, linkml:ClassDefinition ; rdfs:label "SequenceCut" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:Integer ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:cut_watson ], [ a owl:Restriction ; owl:allValuesFrom linkml:Integer ; - owl:onProperty opencloning_linkml:overhang ], + owl:onProperty opencloning_linkml:cut_watson ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom linkml:Integer ; owl:onProperty opencloning_linkml:overhang ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:cut_watson ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:cut_watson ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:overhang ], + [ a owl:Restriction ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:overhang ] ; skos:definition "Represents a cut in a DNA sequence" ; skos:inScheme . @@ -1322,23 +1324,23 @@ opencloning_linkml:SequenceCutSource a owl:Class, linkml:ClassDefinition ; rdfs:label "SequenceCutSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:SequenceCut ; - owl:onProperty opencloning_linkml:right_edge ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:left_edge ], - [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:SequenceCut ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:left_edge ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:right_edge ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:SequenceCut ; + 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:minCardinality 0 ; owl:onProperty opencloning_linkml:left_edge ], + [ a owl:Restriction ; + owl:allValuesFrom opencloning_linkml:SequenceCut ; + 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." ; skos:inScheme . @@ -1621,10 +1623,10 @@ opencloning_linkml:AnnotationReport a owl:Class, linkml:ClassDefinition ; rdfs:label "AnnotationReport" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; owl:maxCardinality 1 ; @@ -1636,38 +1638,38 @@ opencloning_linkml:AssociatedFile a owl:Class, linkml:ClassDefinition ; rdfs:label "AssociatedFile" ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; + 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:allValuesFrom linkml:String ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:file_name ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:AssociatedFileType ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:file_type ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; 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:type ], [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:Sequence ; - owl:onProperty opencloning_linkml:sequence_id ], + owl:allValuesFrom opencloning_linkml:AssociatedFileType ; + owl:onProperty opencloning_linkml:file_type ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:file_name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:file_name ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:file_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:type ], + owl:onProperty opencloning_linkml:sequence_id ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty opencloning_linkml:sequence_id ] ; @@ -1684,23 +1686,23 @@ opencloning_linkml:SourceInput a owl:Class, linkml:ClassDefinition ; rdfs:label "SourceInput" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom opencloning_linkml:Sequence ; - owl:onProperty opencloning_linkml:sequence ], + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:sequence ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom opencloning_linkml:Sequence ; owl:onProperty opencloning_linkml:sequence ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:type ] ; + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:sequence ] ; skos:definition "Represents an input to a source" ; skos:exactMatch schema1:Role ; skos:inScheme . @@ -1760,9 +1762,6 @@ opencloning_linkml:Sequence a owl:Class, linkml:ClassDefinition ; rdfs:label "Sequence" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:type ], - [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; @@ -1772,10 +1771,13 @@ opencloning_linkml:Sequence a owl:Class, owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:String ; + owl:onProperty opencloning_linkml:type ], + [ a owl:Restriction ; + owl:minCardinality 1 ; owl:onProperty opencloning_linkml:id ], opencloning_linkml:NamedThing ; skos:definition "Represents a sequence" ; @@ -1816,11 +1818,8 @@ opencloning_linkml:RepositoryIdSource a owl:Class, linkml:ClassDefinition ; rdfs:label "RepositoryIdSource" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:repository_id ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty opencloning_linkml:repository_name ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:repository_name ], @@ -1828,11 +1827,14 @@ opencloning_linkml:RepositoryIdSource a owl:Class, owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:repository_id ], [ a owl:Restriction ; - owl:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:repository_id ], + owl:minCardinality 1 ; + owl:onProperty opencloning_linkml:repository_name ], [ a owl:Restriction ; owl:allValuesFrom opencloning_linkml:RepositoryName ; owl:onProperty opencloning_linkml:repository_name ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + 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 . @@ -1852,10 +1854,10 @@ opencloning_linkml:AssemblySource a owl:Class, owl:minCardinality 0 ; owl:onProperty opencloning_linkml:circular ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom linkml:Boolean ; owl:onProperty opencloning_linkml:circular ], [ a owl:Restriction ; - owl:allValuesFrom linkml:Boolean ; + 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" ; @@ -1875,17 +1877,29 @@ opencloning_linkml:Source a owl:Class, linkml:ClassDefinition ; rdfs:label "Source" ; rdfs:subClassOf [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty opencloning_linkml:database_id ], + [ a owl:Restriction ; owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:output_name ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:Integer ; + owl:onProperty opencloning_linkml:database_id ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:output_name ], + [ a owl:Restriction ; + owl:allValuesFrom linkml:String ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty opencloning_linkml:type ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty opencloning_linkml:output_name ], + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:type ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty opencloning_linkml:database_id ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty opencloning_linkml:input ], @@ -1894,19 +1908,7 @@ opencloning_linkml:Source a owl:Class, owl:onProperty opencloning_linkml:input ], [ 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:allValuesFrom linkml:String ; - owl:onProperty opencloning_linkml:type ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty opencloning_linkml:output_name ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty opencloning_linkml:database_id ], opencloning_linkml:NamedThing ; skos:definition "Represents the source of a sequence" ; skos:exactMatch schema1:CreateAction ; @@ -1948,216 +1950,216 @@ opencloning_linkml:type a owl:ObjectProperty, skos:definition "A LinkML data model for OpenCloning" . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:SequenceCutSource ; + rdfs:subClassOf opencloning_linkml:OligoHybridizationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:SequenceCutSource . + owl:someValuesFrom opencloning_linkml:OligoHybridizationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:AddgeneIdSource ; + rdfs:subClassOf opencloning_linkml:PCRSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:AddgeneIdSource . + owl:someValuesFrom opencloning_linkml:PCRSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:IGEMSource ; + rdfs:subClassOf opencloning_linkml:CreLoxRecombinationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:IGEMSource . + owl:someValuesFrom opencloning_linkml:CreLoxRecombinationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:InVivoAssemblySource ; + rdfs:subClassOf opencloning_linkml:GibsonAssemblySource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:InVivoAssemblySource . + owl:someValuesFrom opencloning_linkml:GibsonAssemblySource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:ReverseComplementSource ; + rdfs:subClassOf opencloning_linkml:PolymeraseExtensionSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:ReverseComplementSource . + owl:someValuesFrom opencloning_linkml:PolymeraseExtensionSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:AnnotationSource ; + rdfs:subClassOf opencloning_linkml:BenchlingUrlSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:AnnotationSource . + owl:someValuesFrom opencloning_linkml:BenchlingUrlSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:LigationSource ; + rdfs:subClassOf opencloning_linkml:WekWikGeneIdSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:LigationSource . + owl:someValuesFrom opencloning_linkml:WekWikGeneIdSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:SEVASource ; + rdfs:subClassOf opencloning_linkml:AddgeneIdSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:SEVASource . + owl:someValuesFrom opencloning_linkml:AddgeneIdSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:RestrictionEnzymeDigestionSource ; + rdfs:subClassOf opencloning_linkml:SnapGenePlasmidSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:RestrictionEnzymeDigestionSource . + owl:someValuesFrom opencloning_linkml:SnapGenePlasmidSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:CreLoxRecombinationSource ; + rdfs:subClassOf opencloning_linkml:InFusionSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:CreLoxRecombinationSource . + owl:someValuesFrom opencloning_linkml:InFusionSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:HomologousRecombinationSource ; + rdfs:subClassOf opencloning_linkml:AnnotationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:HomologousRecombinationSource . + owl:someValuesFrom opencloning_linkml:AnnotationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:SourceInput ; + rdfs:subClassOf opencloning_linkml:Sequence ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:SourceInput . + owl:someValuesFrom opencloning_linkml:Sequence . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:WekWikGeneIdSource ; + rdfs:subClassOf opencloning_linkml:SEVASource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:WekWikGeneIdSource . + owl:someValuesFrom opencloning_linkml:SEVASource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:EuroscarfSource ; + rdfs:subClassOf opencloning_linkml:ReverseComplementSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:EuroscarfSource . + owl:someValuesFrom opencloning_linkml:ReverseComplementSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:Sequence ; + rdfs:subClassOf opencloning_linkml:TemplateSequence ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:Sequence . + owl:someValuesFrom opencloning_linkml:TemplateSequence . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:OpenDNACollectionsSource ; + rdfs:subClassOf opencloning_linkml:Source ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:OpenDNACollectionsSource . + owl:someValuesFrom opencloning_linkml:Source . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:DatabaseSource ; + rdfs:subClassOf opencloning_linkml:OverlapExtensionPCRLigationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:DatabaseSource . + owl:someValuesFrom opencloning_linkml:OverlapExtensionPCRLigationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:AssociatedFile ; + rdfs:subClassOf opencloning_linkml:HomologousRecombinationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:AssociatedFile . + owl:someValuesFrom opencloning_linkml:HomologousRecombinationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:AnnotationReport ; + rdfs:subClassOf opencloning_linkml:GatewaySource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:AnnotationReport . + owl:someValuesFrom opencloning_linkml:GatewaySource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:GibsonAssemblySource ; + rdfs:subClassOf opencloning_linkml:AssociatedFile ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:GibsonAssemblySource . + owl:someValuesFrom opencloning_linkml:AssociatedFile . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:SequencingFile ; + rdfs:subClassOf opencloning_linkml:SequenceCutSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:SequencingFile . + owl:someValuesFrom opencloning_linkml:SequenceCutSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:SnapGenePlasmidSource ; + rdfs:subClassOf opencloning_linkml:Primer ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:SnapGenePlasmidSource . + owl:someValuesFrom opencloning_linkml:Primer . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:RestrictionAndLigationSource ; + rdfs:subClassOf opencloning_linkml:GenomeCoordinatesSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:RestrictionAndLigationSource . + owl:someValuesFrom opencloning_linkml:GenomeCoordinatesSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:AssemblySource ; + rdfs:subClassOf opencloning_linkml:OpenDNACollectionsSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:AssemblySource . + owl:someValuesFrom opencloning_linkml:OpenDNACollectionsSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:OverlapExtensionPCRLigationSource ; + rdfs:subClassOf opencloning_linkml:PlannotateAnnotationReport ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:OverlapExtensionPCRLigationSource . + owl:someValuesFrom opencloning_linkml:PlannotateAnnotationReport . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:BenchlingUrlSource ; + rdfs:subClassOf opencloning_linkml:AssemblyFragment ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:BenchlingUrlSource . + owl:someValuesFrom opencloning_linkml:AssemblyFragment . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:CollectionSource ; + rdfs:subClassOf opencloning_linkml:LigationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:CollectionSource . + owl:someValuesFrom opencloning_linkml:LigationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:RepositoryIdSource ; + rdfs:subClassOf opencloning_linkml:DatabaseSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:RepositoryIdSource . + owl:someValuesFrom opencloning_linkml:DatabaseSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:GenomeCoordinatesSource ; + rdfs:subClassOf opencloning_linkml:SequencingFile ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:GenomeCoordinatesSource . + owl:someValuesFrom opencloning_linkml:SequencingFile . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:PlannotateAnnotationReport ; + rdfs:subClassOf opencloning_linkml:IGEMSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:PlannotateAnnotationReport . + owl:someValuesFrom opencloning_linkml:IGEMSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:Source ; + rdfs:subClassOf opencloning_linkml:InVivoAssemblySource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:Source . + owl:someValuesFrom opencloning_linkml:InVivoAssemblySource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:Primer ; + rdfs:subClassOf opencloning_linkml:RepositoryIdSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:Primer . + owl:someValuesFrom opencloning_linkml:RepositoryIdSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:AssemblyFragment ; + rdfs:subClassOf opencloning_linkml:SourceInput ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:AssemblyFragment . + owl:someValuesFrom opencloning_linkml:SourceInput . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:CRISPRSource ; + rdfs:subClassOf opencloning_linkml:RestrictionEnzymeDigestionSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:CRISPRSource . + owl:someValuesFrom opencloning_linkml:RestrictionEnzymeDigestionSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:InFusionSource ; + rdfs:subClassOf opencloning_linkml:AnnotationReport ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:InFusionSource . + owl:someValuesFrom opencloning_linkml:AnnotationReport . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:OligoHybridizationSource ; + rdfs:subClassOf opencloning_linkml:RestrictionAndLigationSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:OligoHybridizationSource . + owl:someValuesFrom opencloning_linkml:RestrictionAndLigationSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:TextFileSequence ; + rdfs:subClassOf opencloning_linkml:UploadedFileSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:TextFileSequence . + owl:someValuesFrom opencloning_linkml:UploadedFileSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:GatewaySource ; + rdfs:subClassOf opencloning_linkml:CRISPRSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:GatewaySource . + owl:someValuesFrom opencloning_linkml:CRISPRSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:PCRSource ; + rdfs:subClassOf opencloning_linkml:EuroscarfSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:PCRSource . + owl:someValuesFrom opencloning_linkml:EuroscarfSource . [] 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:TemplateSequence ; + rdfs:subClassOf opencloning_linkml:AssemblySource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:TemplateSequence . + owl:someValuesFrom opencloning_linkml:AssemblySource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:PolymeraseExtensionSource ; + rdfs:subClassOf opencloning_linkml:CollectionSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:PolymeraseExtensionSource . + owl:someValuesFrom opencloning_linkml:CollectionSource . [] a owl:Restriction ; - rdfs:subClassOf opencloning_linkml:UploadedFileSource ; + rdfs:subClassOf opencloning_linkml:ManuallyTypedSource ; owl:onProperty opencloning_linkml:type ; - owl:someValuesFrom opencloning_linkml:UploadedFileSource . + owl:someValuesFrom opencloning_linkml:ManuallyTypedSource . diff --git a/project/python/opencloning_linkml.py b/project/python/opencloning_linkml.py index 0e722b9..ea7b0b9 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-11-26T10:36:04 +# Generation date: 2025-11-27T13:31:19 # Schema: OpenCloning_LinkML # # id: https://opencloning.github.io/OpenCloning_LinkML @@ -2991,7 +2991,7 @@ class slots: model_uri=OPENCLONING_LINKML.SnapGenePlasmidSource_repository_id, domain=SnapGenePlasmidSource, range=str, - pattern=re.compile(r"^.+\/.+$"), + pattern=re.compile(r"^[^\/]+\/[^\/]+$"), ) slots.EuroscarfSource_repository_id = Slot( @@ -3020,9 +3020,7 @@ class slots: model_uri=OPENCLONING_LINKML.IGEMSource_sequence_file_url, domain=IGEMSource, range=str, - pattern=re.compile( - r"^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$" - ), + pattern=re.compile(r"^.*.gb$"), ) slots.OpenDNACollectionsSource_repository_id = Slot( @@ -3032,6 +3030,7 @@ class slots: model_uri=OPENCLONING_LINKML.OpenDNACollectionsSource_repository_id, domain=OpenDNACollectionsSource, range=str, + pattern=re.compile(r"^[^\/]+\/[^\/]+$"), ) slots.RestrictionAndLigationSource_restriction_enzymes = Slot( diff --git a/project/shacl/opencloning_linkml.shacl.ttl b/project/shacl/opencloning_linkml.shacl.ttl index b1eb962..6e8bb75 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:restriction_enzymes opencloning_linkml:left_edge opencloning_linkml:repository_name opencloning_linkml:sequence_accession opencloning_linkml:greedy opencloning_linkml:reaction_type opencloning_linkml:locus_tag schema1:name opencloning_linkml:overhang_watson_3prime opencloning_linkml:sequence_file_format opencloning_linkml:image opencloning_linkml:category_id opencloning_linkml:gene_id schema1:object opencloning_linkml:overhang_crick_3prime opencloning_linkml:add_primer_features opencloning_linkml:start opencloning_linkml:output_name opencloning_linkml:description opencloning_linkml:user_input rdf:type opencloning_linkml:end opencloning_linkml:assembly_accession opencloning_linkml:repository_id opencloning_linkml:options opencloning_linkml:sequence opencloning_linkml:annotation_tool_version opencloning_linkml:sequence_file_url opencloning_linkml:type opencloning_linkml:annotation_report opencloning_linkml:right_edge opencloning_linkml:title opencloning_linkml:coordinates opencloning_linkml:addgene_sequence_type opencloning_linkml:annotation_tool opencloning_linkml:primer_design opencloning_linkml:file_content opencloning_linkml:circularize opencloning_linkml:index_in_file opencloning_linkml:file_name opencloning_linkml:strand opencloning_linkml:circular ) ; + sh:ignoredProperties ( opencloning_linkml:description opencloning_linkml:repository_name opencloning_linkml:reaction_type opencloning_linkml:sequence opencloning_linkml:type schema1:object opencloning_linkml:greedy opencloning_linkml:options rdf:type opencloning_linkml:coordinates schema1:name opencloning_linkml:sequence_accession opencloning_linkml:overhang_watson_3prime opencloning_linkml:end opencloning_linkml:strand opencloning_linkml:annotation_tool_version opencloning_linkml:user_input opencloning_linkml:repository_id opencloning_linkml:annotation_report opencloning_linkml:add_primer_features opencloning_linkml:gene_id opencloning_linkml:index_in_file opencloning_linkml:left_edge opencloning_linkml:annotation_tool opencloning_linkml:output_name opencloning_linkml:sequence_file_format opencloning_linkml:category_id opencloning_linkml:primer_design opencloning_linkml:file_name opencloning_linkml:restriction_enzymes opencloning_linkml:assembly_accession opencloning_linkml:circularize opencloning_linkml:start opencloning_linkml:title opencloning_linkml:addgene_sequence_type opencloning_linkml:locus_tag opencloning_linkml:sequence_file_url opencloning_linkml:file_content opencloning_linkml:right_edge opencloning_linkml:overhang_crick_3prime opencloning_linkml:circular opencloning_linkml:image ) ; sh:property [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -21,46 +21,30 @@ 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 "A unique identifier for a thing" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 8 ; - 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 "Designates the class" ; + 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:type ], + sh:order 5 ; + 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 7 ; 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 5 ; - sh:path opencloning_linkml:output_name ], - [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; + sh:order 4 ; + sh:path opencloning_linkml:type ], + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; sh:minCount 1 ; - sh:order 3 ; - sh:path opencloning_linkml:repository_name ], + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; sh:description "The id of the sequence in the repository" ; sh:maxCount 1 ; @@ -73,51 +57,67 @@ opencloning_linkml:AddgeneIdSource a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 6 ; - sh:path schema1:identifier ] ; + 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:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 3 ; + sh:path opencloning_linkml:repository_name ] ; sh:targetClass opencloning_linkml:AddgeneIdSource . opencloning_linkml:AnnotationSource a sh:NodeShape ; sh:closed true ; sh:description "Represents a computational step in which sequence features are annotated in a sequence" ; 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 5 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; + sh:property [ sh:in ( "plannotate" ) ; 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:annotation_tool ], [ sh:datatype xsd:string ; - sh:description "The version of the annotation tool" ; + sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:annotation_tool_version ], + sh:order 3 ; + sh:path opencloning_linkml:type ], [ sh:class opencloning_linkml:AnnotationReport ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 2 ; sh:path opencloning_linkml:annotation_report ], - [ sh:in ( "plannotate" ) ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 0 ; - sh:path opencloning_linkml:annotation_tool ], [ 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 3 ; - sh:path opencloning_linkml:type ], + 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: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: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:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -131,17 +131,23 @@ opencloning_linkml:AssemblyFragment a sh:NodeShape ; sh:closed true ; sh:description "Represents a fragment in an assembly" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:left_location ], - [ sh:datatype xsd:boolean ; + sh:property [ 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:class bioschemas:DNA ; sh:description "The input sequence" ; sh:maxCount 1 ; @@ -152,30 +158,18 @@ opencloning_linkml:AssemblyFragment a sh:NodeShape ; [ sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; - sh:path opencloning_linkml:right_location ], - [ 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:path opencloning_linkml:right_location ] ; 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 ( opencloning_linkml:restriction_enzymes opencloning_linkml:add_primer_features opencloning_linkml:greedy opencloning_linkml:reaction_type rdf:type ) ; + sh:ignoredProperties ( opencloning_linkml:restriction_enzymes opencloning_linkml:reaction_type opencloning_linkml:add_primer_features opencloning_linkml:greedy 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 "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 ; @@ -189,18 +183,24 @@ opencloning_linkml:AssemblySource 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: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: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:AssemblySource . opencloning_linkml:BenchlingUrlSource a sh:NodeShape ; @@ -214,11 +214,12 @@ opencloning_linkml:BenchlingUrlSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path schema1:identifier ], - [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 1 ; - sh:path opencloning_linkml:repository_name ], + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:type ], [ sh:datatype xsd:string ; sh:description "The url of the gb file associated with the sequence" ; sh:maxCount 1 ; @@ -227,41 +228,35 @@ opencloning_linkml:BenchlingUrlSource a sh:NodeShape ; sh:order 0 ; sh:path opencloning_linkml:repository_id ; sh:pattern "^https:\\/\\/benchling\\.com\\/.+\\.gb$" ], + [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 1 ; + sh:path opencloning_linkml:repository_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: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 "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - 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: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: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:property [ sh:datatype xsd:integer ; sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -274,12 +269,6 @@ opencloning_linkml:CRISPRSource 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 ; @@ -291,56 +280,67 @@ opencloning_linkml:CRISPRSource a sh:NodeShape ; 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: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:CRISPRSource . opencloning_linkml:CloningStrategy a sh:NodeShape ; sh:closed true ; sh:description "Represents a cloning strategy" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class bioschemas:DNA ; - sh:description "The sequences that are used in the cloning strategy" ; + sh:property [ sh:class schema1:CreateAction ; + sh:description "The sources of 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: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:order 1 ; + sh:path opencloning_linkml:sources ], [ 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: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: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: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:description "The version of the schema that was used to generate this cloning strategy" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path opencloning_linkml:schema_version ], - [ sh:class schema1:CreateAction ; - sh:description "The sources of the sequences that are used in the cloning strategy" ; + [ sh:class bioschemas:DNA ; + sh:description "The sequences that are used in the cloning strategy" ; sh:minCount 1 ; sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path opencloning_linkml:sources ], - [ 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:order 0 ; + sh:path opencloning_linkml:sequences ], + [ 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:targetClass opencloning_linkml:CloningStrategy . opencloning_linkml:CollectionSource a sh:NodeShape ; @@ -348,28 +348,21 @@ 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 "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 "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 3 ; sh:path opencloning_linkml:image ], - [ 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 7 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "A description of the category" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:description ], + sh:order 5 ; + sh:path opencloning_linkml:type ], + [ sh:class opencloning_linkml:CollectionOption ; + sh:description "The options available in this category." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path opencloning_linkml:options ], [ sh:datatype xsd:string ; sh:description "The title of the category" ; sh:maxCount 1 ; @@ -377,35 +370,42 @@ opencloning_linkml:CollectionSource a sh:NodeShape ; 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:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "The identifier of the category of the part in the template" ; + sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:category_id ], + sh:order 6 ; + sh:path opencloning_linkml:output_name ], [ sh:datatype xsd:string ; - sh:description "Designates the class" ; + sh:description "A description of the category" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path opencloning_linkml:type ], + sh:order 2 ; + sh:path opencloning_linkml:description ], [ 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 9 ; + sh:order 7 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "The identifier of the category of the part in the template" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path opencloning_linkml:category_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:class opencloning_linkml:CollectionOption ; - sh:description "The options available in this category." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path opencloning_linkml:options ] ; + sh:path schema1:object ] ; sh:targetClass opencloning_linkml:CollectionSource . opencloning_linkml:CreLoxRecombinationSource a sh:NodeShape ; @@ -413,17 +413,24 @@ opencloning_linkml:CreLoxRecombinationSource a sh:NodeShape ; sh:description "Represents the source of a sequence that is generated by Cre - Lox recombination" ; sh:ignoredProperties ( rdf:type ) ; sh:property [ 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: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 "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 ; @@ -435,18 +442,11 @@ opencloning_linkml:CreLoxRecombinationSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:circular ], - [ 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 id of an entity in a database" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; + sh:order 3 ; sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:CreLoxRecombinationSource . @@ -454,7 +454,24 @@ 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:integer ; + 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: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: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:minCount 1 ; @@ -467,47 +484,26 @@ opencloning_linkml:DatabaseSource a sh:NodeShape ; 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 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 3 ; - 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:path schema1:identifier ] ; sh:targetClass opencloning_linkml:DatabaseSource . opencloning_linkml:EuroscarfSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence from the Euroscarf plasmid library" ; 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 3 ; - sh:path opencloning_linkml:output_name ], - [ 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 5 ; sh:path schema1:object ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + [ sh:datatype xsd:string ; + sh:description "The id of the plasmid in the Euroscarf plasmid library" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path schema1:identifier ], + sh:order 0 ; + sh:path opencloning_linkml:repository_id ; + sh:pattern "^P\\d+$" ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -515,37 +511,63 @@ opencloning_linkml:EuroscarfSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "The id of the plasmid in the Euroscarf plasmid library" ; + [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; sh:maxCount 1 ; sh:minCount 1 ; + sh:order 1 ; + sh:path opencloning_linkml:repository_name ], + [ 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:repository_id ; - sh:pattern "^P\\d+$" ], + 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 2 ; sh:path opencloning_linkml:type ], - [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; + [ sh:datatype xsd:string ; + sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 1 ; - sh:path opencloning_linkml:repository_name ] ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path opencloning_linkml:output_name ] ; 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:string ; + 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 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: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:in ( "LR" "BP" ) ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 0 ; + sh:path opencloning_linkml:reaction_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 "Used to specify the name of the output sequence" ; sh:maxCount 1 ; @@ -558,48 +580,26 @@ opencloning_linkml:GatewaySource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path opencloning_linkml:circular ], - [ 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 1 ; - sh:path opencloning_linkml:greedy ], [ 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: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: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:in ( "LR" "BP" ) ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 0 ; - sh:path opencloning_linkml:reaction_type ] ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:GatewaySource . opencloning_linkml:GenomeCoordinatesSource a sh:NodeShape ; sh:closed true ; 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 "A unique identifier for a thing" ; + sh:property [ sh:datatype xsd:string ; + sh:description "The accession of the sequence" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path schema1:identifier ], + sh:order 1 ; + sh:path opencloning_linkml:sequence_accession ], [ sh:datatype xsd:integer ; sh:description "The ending coordinate (1-based) of the sequence in the sequence accession" ; sh:maxCount 1 ; @@ -613,6 +613,12 @@ opencloning_linkml:GenomeCoordinatesSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 9 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path opencloning_linkml:type ], [ sh:datatype xsd:string ; sh:description "The locus tag of the sequence" ; sh:maxCount 1 ; @@ -624,39 +630,19 @@ opencloning_linkml:GenomeCoordinatesSource a sh:NodeShape ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 10 ; sh:path schema1:object ], - [ sh:datatype xsd:string ; - sh:description "The accession of the sequence" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:sequence_accession ], [ sh:datatype xsd:integer ; - sh:description "The strand of the sequence in the sequence accession, should be 1 or -1" ; + sh:description "The starting coordinate (1-based) of the sequence in the sequence accession" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path opencloning_linkml:strand ], + sh:order 4 ; + sh:path opencloning_linkml:start ], [ sh:datatype xsd:integer ; sh:description "The gene id of the sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path opencloning_linkml:gene_id ], - [ sh:datatype xsd:integer ; - sh:description "The starting coordinate (1-based) of the sequence in the sequence accession" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path opencloning_linkml:start ], - [ sh:datatype xsd:string ; - sh:description "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path opencloning_linkml:type ], [ sh:datatype xsd:string ; sh:description "The accession of the assembly" ; sh:maxCount 1 ; @@ -668,7 +654,21 @@ opencloning_linkml:GenomeCoordinatesSource a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 8 ; - sh:path opencloning_linkml:output_name ] ; + sh:path opencloning_linkml:output_name ], + [ sh:datatype xsd:integer ; + sh:description "The strand of the sequence in the sequence accession, should be 1 or -1" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path opencloning_linkml:strand ], + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:GenomeCoordinatesSource . opencloning_linkml:GibsonAssemblySource a sh:NodeShape ; @@ -676,23 +676,22 @@ opencloning_linkml:GibsonAssemblySource a sh:NodeShape ; sh:description "Represents the source of a sequence that is generated by Gibson assembly" ; 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: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 ; + 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 "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -700,11 +699,12 @@ opencloning_linkml:GibsonAssemblySource 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: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:maxCount 1 ; @@ -717,49 +717,67 @@ 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:integer ; + 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 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 ; - 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 ; 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: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 ; + sh:order 4 ; + sh:path schema1:object ] ; 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: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 6 ; + 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:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path opencloning_linkml:repository_id ], + [ 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:integer ; sh:description "The id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -772,6 +790,11 @@ opencloning_linkml:IGEMSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path schema1:identifier ], + [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 2 ; + sh:path opencloning_linkml:repository_name ], [ sh:datatype xsd:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; @@ -785,41 +808,24 @@ opencloning_linkml:IGEMSource a sh:NodeShape ; 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: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:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 2 ; - sh:path opencloning_linkml:repository_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 unique identifier of the sequence in the iGEM collection (for now, {part_id}-{plasmid_backbone})" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:repository_id ] ; + sh:pattern "^.*.gb$" ] ; 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:integer ; - sh:description "The id of an entity in a database" ; + 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:integer ; + 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" ; @@ -827,11 +833,12 @@ opencloning_linkml:InFusionSource a sh:NodeShape ; sh:nodeKind sh:Literal ; 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: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 ; @@ -839,18 +846,11 @@ opencloning_linkml:InFusionSource a sh:NodeShape ; 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 5 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "Used to specify the name of the output sequence" ; + 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:targetClass opencloning_linkml:InFusionSource . opencloning_linkml:InVivoAssemblySource a sh:NodeShape ; @@ -870,11 +870,6 @@ opencloning_linkml:InVivoAssemblySource 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:boolean ; sh:description "Whether the assembly is circular or not" ; sh:maxCount 1 ; @@ -892,32 +887,24 @@ opencloning_linkml:InVivoAssemblySource a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; - sh:path opencloning_linkml:output_name ] ; + 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:targetClass opencloning_linkml:InVivoAssemblySource . opencloning_linkml:LigationSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence that is generated by ligation with sticky or blunt ends." ; 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 5 ; - sh:path schema1:identifier ], - [ 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 ; sh:order 0 ; sh:path opencloning_linkml:circular ], - [ 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:description "The inputs to this source. If the source represents external import of a sequence, it's empty." ; sh:nodeKind sh:BlankNodeOrIRI ; @@ -929,6 +916,19 @@ opencloning_linkml:LigationSource a sh:NodeShape ; 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 ; + 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:datatype xsd:integer ; sh:description "The id of an entity in a database" ; sh:maxCount 1 ; @@ -941,29 +941,42 @@ 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 7 ; - sh:path schema1:object ], - [ sh:datatype xsd:integer ; + 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 6 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "Designates the class" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + 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:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; 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 7 ; + sh:path schema1:object ], [ sh:datatype xsd:string ; - sh:description "Designates the class" ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path opencloning_linkml:type ], + sh:order 2 ; + sh:path opencloning_linkml:user_input ; + sh:pattern "^[acgtACGT]+$" ], [ sh:datatype xsd:boolean ; sh:description "Whether the sequence is circular or not" ; sh:maxCount 1 ; @@ -976,26 +989,13 @@ opencloning_linkml:ManuallyTypedSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path opencloning_linkml:overhang_watson_3prime ], - [ 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 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 8 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:user_input ; - sh:pattern "^[acgtACGT]+$" ] ; + sh:path schema1:identifier ] ; sh:targetClass opencloning_linkml:ManuallyTypedSource . opencloning_linkml:OligoHybridizationSource a sh:NodeShape ; @@ -1003,11 +1003,29 @@ 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 "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: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: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:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; @@ -1015,97 +1033,74 @@ opencloning_linkml:OligoHybridizationSource a sh:NodeShape ; sh:order 2 ; 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 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:integer ; - sh:description "The id of an entity in a database" ; + 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: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:path schema1:identifier ] ; sh:targetClass opencloning_linkml:OligoHybridizationSource . opencloning_linkml:OpenDNACollectionsSource a sh:NodeShape ; sh:closed true ; sh:description "Represents the source of a sequence from the Open DNA collections" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; + sh:property [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 2 ; + sh:path opencloning_linkml:repository_name ], + [ 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: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: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 "Subpath of the sequence in the Open DNA collections repository" ; + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:repository_id ], + sh:order 5 ; + sh:path schema1:identifier ], [ sh:datatype xsd:string ; - sh:description "The URL of a sequence file" ; + sh:description "Used to specify the name of the output sequence" ; 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 ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 2 ; - sh:path opencloning_linkml:repository_name ], + 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:integer ; - sh:description "The id of an entity in a database" ; + [ sh:datatype xsd:string ; + sh:description "The URL of a sequence file" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - 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: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: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: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 4 ; @@ -1122,6 +1117,12 @@ opencloning_linkml:OverlapExtensionPCRLigationSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:circular ], + [ 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 ; @@ -1129,41 +1130,24 @@ opencloning_linkml:OverlapExtensionPCRLigationSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path schema1:identifier ], - [ 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: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 "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:boolean ; + sh:property [ 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: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:maxCount 1 ; @@ -1177,119 +1161,123 @@ opencloning_linkml:PCRSource a sh:NodeShape ; 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:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; - sh:path opencloning_linkml:type ] ; + 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: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:targetClass opencloning_linkml:PCRSource . opencloning_linkml:PlannotateAnnotationReport a sh:NodeShape ; sh:closed true ; sh:description "Represents a report of an annotation step using Plannotate" ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:end_location ], - [ sh:datatype xsd:integer ; + 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:start_location ], - [ sh:datatype xsd:integer ; + sh:order 14 ; + sh:path opencloning_linkml:type ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:strand ], - [ sh:datatype xsd:string ; + sh:order 13 ; + sh:path opencloning_linkml:sequence ], + [ sh:datatype xsd:float ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path opencloning_linkml:Feature ], + sh:order 4 ; + sh:path opencloning_linkml:percent_identity ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 12 ; sh:path opencloning_linkml:Description ], - [ sh:datatype xsd:float ; + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path opencloning_linkml:percent_identity ], + sh:order 8 ; + sh:path opencloning_linkml:fragment ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:sseqid ], - [ sh:datatype xsd:string ; + [ sh:datatype xsd:float ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path opencloning_linkml:sequence ], + sh:order 7 ; + sh:path opencloning_linkml:percent_match_length ], + [ sh:datatype xsd:integer ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path opencloning_linkml:strand ], [ 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:order 11 ; + sh:path opencloning_linkml:Type ], [ sh:datatype xsd:integer ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path opencloning_linkml:length_of_found_feature ], - [ sh:datatype xsd:boolean ; + [ sh:datatype xsd:integer ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path opencloning_linkml:fragment ], - [ sh:datatype xsd:string ; + sh:order 1 ; + sh:path opencloning_linkml:start_location ], + [ sh:datatype xsd:integer ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path opencloning_linkml:database ], - [ sh:datatype xsd:float ; + 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 7 ; - sh:path opencloning_linkml:percent_match_length ], + sh:order 10 ; + sh:path opencloning_linkml:Feature ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path opencloning_linkml:Type ], + sh:order 9 ; + sh:path opencloning_linkml:database ], [ 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 2 ; + sh:path opencloning_linkml:end_location ] ; 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: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: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: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 ; @@ -1300,121 +1288,122 @@ opencloning_linkml:PolymeraseExtensionSource 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 3 ; - sh:path schema1:object ] ; - sh:targetClass opencloning_linkml:PolymeraseExtensionSource . - -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 ( opencloning_linkml:addgene_sequence_type rdf:type opencloning_linkml:sequence_file_url ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "The id of the sequence in the repository" ; + sh:path schema1:object ], + [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - 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 5 ; - sh:path schema1:object ], + sh:order 2 ; + 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 6 ; - sh:path schema1:identifier ], - [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; + sh:order 4 ; + sh:path schema1:identifier ] ; + sh:targetClass opencloning_linkml:PolymeraseExtensionSource . + +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 ( opencloning_linkml:sequence_file_url rdf:type opencloning_linkml:addgene_sequence_type ) ; + sh:property [ sh:datatype xsd:integer ; + sh:description "The id of an entity in a database" ; sh:maxCount 1 ; - sh:minCount 1 ; - sh:order 1 ; - sh:path opencloning_linkml:repository_name ], + 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 2 ; sh:path opencloning_linkml:type ], + [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:order 1 ; + sh:path opencloning_linkml:repository_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 4 ; + sh:order 6 ; sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:description "The id of the sequence in the repository" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path opencloning_linkml:repository_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 3 ; - sh:path opencloning_linkml:output_name ] ; + 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: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:string ; - sh:description "Used to specify the name of the output sequence" ; + sh:property [ sh:datatype xsd:boolean ; + sh:description "Whether the assembly is circular or not" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:output_name ], + sh:order 1 ; + sh:path opencloning_linkml:circular ], [ 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: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: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: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 0 ; - sh:path opencloning_linkml:restriction_enzymes ] ; + sh:path opencloning_linkml:restriction_enzymes ], + [ 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: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 "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - 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 4 ; - sh:path schema1:identifier ], - [ sh:class opencloning_linkml:RestrictionSequenceCut ; + sh:property [ sh:class opencloning_linkml:RestrictionSequenceCut ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 1 ; @@ -1430,6 +1419,18 @@ opencloning_linkml:RestrictionEnzymeDigestionSource a sh:NodeShape ; sh:nodeKind sh:Literal ; 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 2 ; + 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 4 ; + sh:path schema1:identifier ], [ sh:class opencloning_linkml:RestrictionSequenceCut ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; @@ -1454,71 +1455,71 @@ opencloning_linkml:ReverseComplementSource a sh:NodeShape ; 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: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:datatype xsd:string ; - sh:description "Designates the class" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - 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 4 ; - sh:path schema1:identifier ] ; + 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 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: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:string ; + 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 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 "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 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:description "Used to specify the name of the output sequence" ; 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: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:order 4 ; + 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 5 ; + sh:order 7 ; sh:path schema1:identifier ], [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 2 ; sh:path opencloning_linkml:repository_name ], - [ 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 "The SEVA plasmid name" ; sh:maxCount 1 ; @@ -1527,13 +1528,13 @@ opencloning_linkml:SEVASource a sh:NodeShape ; sh:order 1 ; sh:path opencloning_linkml:repository_id ; sh:pattern "^pSEVA\\d+.*$" ], - [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; + [ 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 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 7 ; - 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:targetClass opencloning_linkml:SEVASource . opencloning_linkml:SequenceCutSource a sh:NodeShape ; @@ -1547,64 +1548,58 @@ opencloning_linkml:SequenceCutSource a sh:NodeShape ; 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 1 ; - 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: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: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:class opencloning_linkml:SequenceCut ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 0 ; + sh:path opencloning_linkml:left_edge ], + [ sh:class opencloning_linkml:SequenceCut ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 1 ; + sh:path opencloning_linkml:right_edge ], [ 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: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: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: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: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:string ; - sh:description "The alignment of the sequencing read to the sequence. List of strings representing aligned sequences." ; + sh:description "The name of the file" ; + sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path opencloning_linkml:alignment ], + sh:order 3 ; + sh:path opencloning_linkml:file_name ], [ sh:description "The type of file" ; sh:in ( NCIT:C171177 ) ; sh:maxCount 1 ; @@ -1612,38 +1607,25 @@ opencloning_linkml:SequencingFile a sh:NodeShape ; sh:order 4 ; sh:path opencloning_linkml:file_type ], [ sh:datatype xsd:string ; - sh:description "The name of the file" ; - sh:maxCount 1 ; + 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 3 ; - sh:path opencloning_linkml:file_name ] ; + 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:targetClass opencloning_linkml:SequencingFile . opencloning_linkml:SnapGenePlasmidSource a sh:NodeShape ; sh:closed true ; 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: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: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:property [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -1656,72 +1638,86 @@ opencloning_linkml:SnapGenePlasmidSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:repository_id ; - sh:pattern "^.+\\/.+$" ], + sh:pattern "^[^\\/]+\\/[^\\/]+$" ], [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; sh:maxCount 1 ; sh:minCount 1 ; sh:order 1 ; sh:path opencloning_linkml:repository_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: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: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: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: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 ; - sh:order 1 ; - sh:path opencloning_linkml:primer_design ], - [ sh:datatype xsd:boolean ; + sh:property [ sh:datatype xsd:boolean ; sh:description "Whether the sequence is circular or linear" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path opencloning_linkml:circular ], - [ 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: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:path schema1:identifier ], + [ 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 ; + sh:order 1 ; + sh:path opencloning_linkml:primer_design ], + [ 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:targetClass opencloning_linkml:TemplateSequence . opencloning_linkml:TextFileSequence a sh:NodeShape ; sh:closed true ; sh:description "A sequence (may have features) defined by the content of a text file" ; sh:ignoredProperties ( rdf:type ) ; - 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 "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 1 ; - sh:path opencloning_linkml:overhang_crick_3prime ], - [ sh:description "The format of a sequence file" ; - sh:in ( "fasta" "genbank" "snapgene" "embl" ) ; + sh:property [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; sh:minCount 1 ; - sh:order 0 ; - sh:path opencloning_linkml:sequence_file_format ], + 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 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 ; @@ -1734,36 +1730,28 @@ opencloning_linkml:TextFileSequence a sh:NodeShape ; sh:order 3 ; sh:path opencloning_linkml:file_content ], [ sh:datatype xsd:integer ; - sh:description "A unique identifier for a thing" ; + 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:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path schema1:identifier ] ; + sh:order 1 ; + sh:path opencloning_linkml:overhang_crick_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:targetClass opencloning_linkml:TextFileSequence . opencloning_linkml:UploadedFileSource a sh:NodeShape ; sh:closed true ; 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: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:datatype xsd:boolean ; - sh:description "Whether the sequence should be circularized (FASTA only)" ; + sh:property [ sh:description "If provided, coordinates within the sequence of the file to extract a subsequence" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path opencloning_linkml:circularize ], + sh:order 4 ; + sh:path opencloning_linkml:coordinates ], [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -1771,53 +1759,64 @@ opencloning_linkml:UploadedFileSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 9 ; 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:datatype xsd:string ; sh:description "The name of the file" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path opencloning_linkml:file_name ], + [ 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: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: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 8 ; + 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 7 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; - sh:description "Designates the class" ; + sh:order 6 ; + sh:path opencloning_linkml:output_name ], + [ sh:datatype xsd:boolean ; + sh:description "Whether the sequence should be circularized (FASTA only)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path opencloning_linkml:type ], - [ sh:description "If provided, coordinates within the sequence of the file to extract a subsequence" ; + 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 4 ; - sh:path opencloning_linkml:coordinates ], - [ 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:order 7 ; + sh:path schema1:identifier ] ; 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:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path schema1:identifier ], + 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 6 ; + sh:path schema1:object ], [ sh:datatype xsd:string ; sh:description "The id of the gene in the WeKwikGene database" ; sh:maxCount 1 ; @@ -1826,12 +1825,11 @@ opencloning_linkml:WekWikGeneIdSource a sh:NodeShape ; sh:order 1 ; sh:path opencloning_linkml:repository_id ; sh:pattern "^\\d+$" ], - [ sh:datatype xsd:integer ; - sh:description "The id of an entity in a database" ; + [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path schema1:identifier ], + sh:minCount 1 ; + sh:order 2 ; + sh:path opencloning_linkml:repository_name ], [ sh:datatype xsd:string ; sh:description "Used to specify the name of the output sequence" ; sh:maxCount 1 ; @@ -1844,29 +1842,32 @@ opencloning_linkml:WekWikGeneIdSource a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path opencloning_linkml:type ], - [ sh:in ( "addgene" "genbank" "benchling" "snapgene" "euroscarf" "igem" "wekwikgene" "seva" "open_dna_collections" ) ; + [ sh:datatype xsd:integer ; + sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; sh:minCount 1 ; - sh:order 2 ; - sh:path opencloning_linkml:repository_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:nodeKind sh:Literal ; + sh:order 7 ; + 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: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 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + 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:percent_identity opencloning_linkml:start_location opencloning_linkml:fragment rdf:type opencloning_linkml:length_of_found_feature opencloning_linkml:sequence opencloning_linkml:sseqid opencloning_linkml:end_location opencloning_linkml:percent_match_length opencloning_linkml:full_length_of_feature_in_db opencloning_linkml:Description opencloning_linkml:Feature opencloning_linkml:strand opencloning_linkml:database opencloning_linkml:Type ) ; + sh:ignoredProperties ( opencloning_linkml:Type opencloning_linkml:full_length_of_feature_in_db opencloning_linkml:start_location opencloning_linkml:sseqid opencloning_linkml:percent_match_length opencloning_linkml:Description opencloning_linkml:strand opencloning_linkml:length_of_found_feature opencloning_linkml:Feature rdf:type opencloning_linkml:fragment opencloning_linkml:percent_identity opencloning_linkml:end_location opencloning_linkml:sequence opencloning_linkml:database ) ; sh:property [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; @@ -1878,15 +1879,8 @@ 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 ( opencloning_linkml:alignment rdf:type ) ; + sh:ignoredProperties ( rdf:type opencloning_linkml:alignment ) ; sh:property [ sh:datatype xsd:string ; - sh:description "The name of the file" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path opencloning_linkml:file_name ], - [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -1899,6 +1893,13 @@ opencloning_linkml:AssociatedFile a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path opencloning_linkml:sequence_id ], + [ sh:datatype xsd:string ; + sh:description "The name of the file" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:file_name ], [ sh:description "The type of file" ; sh:in ( NCIT:C171177 ) ; sh:maxCount 1 ; @@ -1918,19 +1919,19 @@ opencloning_linkml:CollectionOption a sh:NodeShape ; 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:class schema1:CreateAction ; sh:description "The source of the sequence for this option" ; sh:maxCount 1 ; sh:minCount 1 ; 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:path opencloning_linkml:source ] ; sh:targetClass opencloning_linkml:CollectionOption . opencloning_linkml:CollectionOptionInfo a sh:NodeShape ; @@ -1943,12 +1944,6 @@ opencloning_linkml:CollectionOptionInfo a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path schema1:name ], - [ 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 "The antibiotic resistance of the plasmid" ; sh:maxCount 1 ; @@ -1965,32 +1960,25 @@ opencloning_linkml:CollectionOptionInfo a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; - sh:path opencloning_linkml:description ] ; + sh:path opencloning_linkml:description ], + [ 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:targetClass opencloning_linkml:CollectionOptionInfo . opencloning_linkml:Primer a sh:NodeShape ; sh:closed true ; sh:description "An oligonucleotide or primer" ; 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 3 ; - sh:path schema1:identifier ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:description "Designates the class" ; sh:maxCount 1 ; 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 ; @@ -2002,14 +1990,40 @@ opencloning_linkml:Primer a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; - sh:path schema1:name ] ; + sh:path schema1: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 3 ; + sh:path schema1:identifier ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path opencloning_linkml:sequence ; + sh:pattern "^[acgtACGT]+$" ] ; 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:restriction_enzymes opencloning_linkml:left_edge opencloning_linkml:repository_name opencloning_linkml:sequence_accession opencloning_linkml:greedy opencloning_linkml:reaction_type opencloning_linkml:locus_tag opencloning_linkml:overhang_watson_3prime opencloning_linkml:sequence_file_format opencloning_linkml:image opencloning_linkml:category_id opencloning_linkml:gene_id opencloning_linkml:overhang_crick_3prime opencloning_linkml:add_primer_features opencloning_linkml:start opencloning_linkml:description opencloning_linkml:user_input rdf:type opencloning_linkml:end opencloning_linkml:assembly_accession opencloning_linkml:repository_id opencloning_linkml:options opencloning_linkml:annotation_tool_version opencloning_linkml:sequence_file_url opencloning_linkml:annotation_report opencloning_linkml:right_edge opencloning_linkml:title opencloning_linkml:coordinates opencloning_linkml:addgene_sequence_type opencloning_linkml:annotation_tool opencloning_linkml:circularize opencloning_linkml:index_in_file opencloning_linkml:file_name opencloning_linkml:strand opencloning_linkml:circular ) ; - sh:property [ sh:datatype xsd:integer ; + sh:ignoredProperties ( opencloning_linkml:description opencloning_linkml:repository_name opencloning_linkml:reaction_type opencloning_linkml:greedy opencloning_linkml:options rdf:type opencloning_linkml:coordinates opencloning_linkml:sequence_accession opencloning_linkml:overhang_watson_3prime opencloning_linkml:end opencloning_linkml:strand opencloning_linkml:annotation_tool_version opencloning_linkml:user_input opencloning_linkml:repository_id opencloning_linkml:annotation_report opencloning_linkml:add_primer_features opencloning_linkml:gene_id opencloning_linkml:index_in_file opencloning_linkml:left_edge opencloning_linkml:annotation_tool opencloning_linkml:sequence_file_format opencloning_linkml:category_id opencloning_linkml:file_name opencloning_linkml:restriction_enzymes opencloning_linkml:assembly_accession opencloning_linkml:circularize opencloning_linkml:start opencloning_linkml:title opencloning_linkml:addgene_sequence_type opencloning_linkml:locus_tag opencloning_linkml:sequence_file_url opencloning_linkml:right_edge opencloning_linkml:overhang_crick_3prime opencloning_linkml:circular opencloning_linkml:image ) ; + 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: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 id of an entity in a database" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -2025,20 +2039,7 @@ schema1:CreateAction a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; - 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: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 4 ; - sh:path schema1:identifier ] ; + sh:path opencloning_linkml:output_name ] ; sh:targetClass schema1:CreateAction . opencloning_linkml:RestrictionSequenceCut a sh:NodeShape ; @@ -2046,6 +2047,13 @@ opencloning_linkml:RestrictionSequenceCut a sh:NodeShape ; 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: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 ; + sh:minCount 1 ; + 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:maxCount 1 ; sh:minCount 1 ; @@ -2057,40 +2065,33 @@ opencloning_linkml:RestrictionSequenceCut a sh:NodeShape ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; - sh:path opencloning_linkml:restriction_enzyme ], - [ 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 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path opencloning_linkml:cut_watson ] ; + sh:path opencloning_linkml:restriction_enzyme ] ; sh:targetClass opencloning_linkml:RestrictionSequenceCut . opencloning_linkml:SequenceCut a sh:NodeShape ; sh:closed true ; sh:description "Represents a cut in a DNA sequence" ; - sh:ignoredProperties ( rdf:type opencloning_linkml:restriction_enzyme ) ; + 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:overhang_crick_3prime opencloning_linkml:file_content opencloning_linkml:primer_design opencloning_linkml:sequence schema1:name opencloning_linkml:overhang_watson_3prime opencloning_linkml:sequence_file_format rdf:type opencloning_linkml:circular ) ; + sh:ignoredProperties ( opencloning_linkml:overhang_watson_3prime opencloning_linkml:sequence_file_format rdf:type opencloning_linkml:file_content opencloning_linkml:primer_design schema1:name opencloning_linkml:overhang_crick_3prime opencloning_linkml:circular opencloning_linkml:sequence ) ; sh:property [ sh:datatype xsd:integer ; sh:description "A unique identifier for a thing" ; sh:maxCount 1 ; @@ -2109,18 +2110,18 @@ bioschemas:DNA a sh:NodeShape ; schema1:Role a sh:NodeShape ; sh:closed true ; sh:description "Represents an input to a source" ; - sh:ignoredProperties ( opencloning_linkml:right_location rdf:type opencloning_linkml:reverse_complemented opencloning_linkml:left_location ) ; - sh:property [ sh:class bioschemas:DNA ; + sh:ignoredProperties ( opencloning_linkml:right_location rdf:type opencloning_linkml:left_location opencloning_linkml:reverse_complemented ) ; + 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:description "The input sequence" ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:IRI ; sh:order 1 ; - 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:path opencloning_linkml:sequence ] ; sh:targetClass schema1:Role . diff --git a/project/sqlschema/opencloning_linkml.sql b/project/sqlschema/opencloning_linkml.sql index bedecda..4b7bdb4 100644 --- a/project/sqlschema/opencloning_linkml.sql +++ b/project/sqlschema/opencloning_linkml.sql @@ -175,7 +175,7 @@ -- * Slot: id Description: A unique identifier for a thing -- # Class: "IGEMSource" Description: "Represents the source of a sequence from an iGEM collection" -- * Slot: sequence_file_url Description: The URL of the sequence file, for now github repository --- * Slot: repository_id Description: The unique identifier of the sequence in the iGEM collection (for now, {part_id}-{plasmid_backbone}) +-- * Slot: repository_id Description: The unique identifier of the sequence in the iGEM collection (for now, {part_id}-{plasmid_backbone}) pattern: ^[^-]+-[^-]+$ -- * Slot: repository_name Description: -- * Slot: type Description: Designates the class -- * Slot: output_name Description: Used to specify the name of the output sequence diff --git a/src/opencloning_linkml/datamodel/_models.py b/src/opencloning_linkml/datamodel/_models.py index a49c282..a0ac6bf 100644 --- a/src/opencloning_linkml/datamodel/_models.py +++ b/src/opencloning_linkml/datamodel/_models.py @@ -1597,7 +1597,7 @@ class SnapGenePlasmidSource(RepositoryIdSource): "plasmid is the subpath after " "the /.", "name": "repository_id", - "pattern": "^.+\\/.+$", + "pattern": "^[^\\/]+\\/[^\\/]+$", } }, } @@ -1661,7 +1661,7 @@ class SnapGenePlasmidSource(RepositoryIdSource): @field_validator("repository_id") def pattern_repository_id(cls, v): - pattern = re.compile(r"^.+\/.+$") + pattern = re.compile(r"^[^\/]+\/[^\/]+$") if isinstance(v, list): for element in v: if isinstance(element, str) and not pattern.match(element): @@ -1774,12 +1774,14 @@ class IGEMSource(RepositoryIdSource): "description": "The unique identifier of the " "sequence in the iGEM " "collection (for now, " - "{part_id}-{plasmid_backbone})", + "{part_id}-{plasmid_backbone}) " + "pattern: ^[^-]+-[^-]+$", "name": "repository_id", }, "sequence_file_url": { "description": "The URL of the sequence " "file, for now github " "repository", "name": "sequence_file_url", + "pattern": "^.*.gb$", "required": True, }, }, @@ -1804,7 +1806,7 @@ class IGEMSource(RepositoryIdSource): ) repository_id: str = Field( default=..., - description="""The unique identifier of the sequence in the iGEM collection (for now, {part_id}-{plasmid_backbone})""", + description="""The unique identifier of the sequence in the iGEM collection (for now, {part_id}-{plasmid_backbone}) pattern: ^[^-]+-[^-]+$""", json_schema_extra={"linkml_meta": {"alias": "repository_id", "domain_of": ["RepositoryIdSource"]}}, ) repository_name: RepositoryName = Field( @@ -1860,9 +1862,7 @@ class IGEMSource(RepositoryIdSource): @field_validator("sequence_file_url") def pattern_sequence_file_url(cls, v): - pattern = re.compile( - r"^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$" - ) + pattern = re.compile(r"^.*.gb$") if isinstance(v, list): for element in v: if isinstance(element, str) and not pattern.match(element): @@ -1886,6 +1886,7 @@ class OpenDNACollectionsSource(RepositoryIdSource): "repository_id": { "description": "Subpath of the sequence in " "the Open DNA collections " "repository", "name": "repository_id", + "pattern": "^[^\\/]+\\/[^\\/]+$", } }, } @@ -1978,6 +1979,19 @@ def pattern_sequence_file_url(cls, v): raise ValueError(err_msg) return v + @field_validator("repository_id") + def pattern_repository_id(cls, v): + pattern = re.compile(r"^[^\/]+\/[^\/]+$") + if isinstance(v, list): + for element in v: + if isinstance(element, str) and not pattern.match(element): + err_msg = f"Invalid repository_id format: {element}" + raise ValueError(err_msg) + elif isinstance(v, str) and not pattern.match(v): + err_msg = f"Invalid repository_id format: {v}" + raise ValueError(err_msg) + return v + class GenomeCoordinatesSource(Source): """ diff --git a/src/opencloning_linkml/schema/opencloning_linkml.yaml b/src/opencloning_linkml/schema/opencloning_linkml.yaml index 5c97a2b..6e2e962 100644 --- a/src/opencloning_linkml/schema/opencloning_linkml.yaml +++ b/src/opencloning_linkml/schema/opencloning_linkml.yaml @@ -390,7 +390,7 @@ classes: 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 /. - pattern: ^.+\/.+$ + pattern: ^[^\/]+\/[^\/]+$ EuroscarfSource: is_a: RepositoryIdSource @@ -412,10 +412,12 @@ classes: repository_id: description: >- The unique identifier of the sequence in the iGEM collection (for now, {part_id}-{plasmid_backbone}) + pattern: ^[^-]+-[^-]+$ sequence_file_url: required: true description: >- The URL of the sequence file, for now github repository + pattern: ^.*.gb$ OpenDNACollectionsSource: is_a: RepositoryIdSource @@ -427,6 +429,7 @@ classes: repository_id: description: >- Subpath of the sequence in the Open DNA collections repository + pattern: ^[^\/]+\/[^\/]+$ GenomeCoordinatesSource: is_a: Source