libSBOL
2.3.3
|
The SequenceAnnotation class describes one or more regions of interest on the Sequence objects referred to by its parent ComponentDefinition. In addition, SequenceAnnotation objects can describe the substructure of their parent ComponentDefinition through association with the Component objects contained by this ComponentDefinition.
Public Attributes | |
ReferencedObject | component |
The component property is OPTIONAL and has a data type of URI. This URI MUST refer to a Component that is contained by the same parent ComponentDefinition that contains the SequenceAnnotation. In this way, the properties of the SequenceAnnotation, such as its description and locations, are associated with part of the substructure of its parent ComponentDefinition. | |
OwnedObject< Location > | locations |
The locations property is a REQUIRED set of one or more Location objects that indicate which elements of a Sequence are described by the SequenceAnnotation. More... | |
URIProperty | roles |
Alternatively to describing substructure, a SequenceAnnotation can be utilized to identify a feature, such as a GenBank feature, of a specified Sequence. More... | |
URIProperty | persistentIdentity |
The persistentIdentity property is OPTIONAL and has a data type of URI. This URI serves to uniquely refer to a set of SBOL objects that are different versions of each other. An Identified object MUST be referred to using either its identity URI or its persistentIdentity URI. | |
TextProperty | displayId |
The displayId property is an OPTIONAL identifier with a data type of String. This property is intended to be an intermediate between name and identity that is machine-readable, but more human-readable than the full URI of an identity. If the displayId property is used, then its String value SHOULD be locally unique (global uniqueness is not necessary) and MUST be composed of only alphanumeric or underscore characters and MUST NOT begin with a digit. | |
VersionProperty | version |
If the version property is used, then it is RECOMMENDED that version numbering follow the conventions of semantic versioning, particularly as implemented by Maven. This convention represents versions as sequences of numbers and qualifiers that are separated by the characters “.” and “-” and are compared in lexicographical order (for example, 1 < 1.3.1 < 2.0-beta). For a full explanation, see the linked resources. | |
URIProperty | wasDerivedFrom |
The wasDerivedFrom property is OPTIONAL and has a data type of URI. An SBOL object with this property refers to another SBOL object or non-SBOL resource from which this object was derived. If the wasDerivedFrom property of an SBOL object A that refers to an SBOL object B has an identical persistentIdentity, and both A and B have a version, then the version of B MUST precede that of A. In addition, an SBOL object MUST NOT refer to itself via its own wasDerivedFrom property or form a cyclical chain of references via its wasDerivedFrom property and those of other SBOL objects. For example, the reference chain “ A was derived from B and B was derived from A” is cyclical. | |
ReferencedObject | wasGeneratedBy |
An Activity which generated this ComponentDefinition, eg., a design process like codon-optimization or a construction process like Gibson Assembly. | |
TextProperty | name |
The name property is OPTIONAL and has a data type of String. This property is intended to be displayed to a human when visualizing an Identified object. If an Identified object lacks a name, then software tools SHOULD instead display the object’s displayId or identity. It is RECOMMENDED that software tools give users the ability to switch perspectives between name properties that are human-readable and displayId properties that are less human-readable, but are more likely to be unique. | |
TextProperty | description |
The description property is OPTIONAL and has a data type of String. This property is intended to contain a more thorough text description of an Identified object. | |
URIProperty | identity |
The identity property is REQUIRED by all Identified objects and has a data type of URI. A given Identified object’s identity URI MUST be globally unique among all other identity URIs. The identity of a compliant SBOL object MUST begin with a URI prefix that maps to a domain over which the user has control. Namely, the user can guarantee uniqueness of identities within this domain. For other best practices regarding URIs see Section 11.2 of the SBOL specification doucment. | |
Public Member Functions | |
SequenceAnnotation (std::string uri="example", std::string version=VERSION_STRING) | |
Construct a ComponentDefinition. More... | |
bool | precedes (SequenceAnnotation &comparand) |
Tests if the comparand SequenceAnnotation precedes this one according to base coordinates. More... | |
bool | follows (SequenceAnnotation &comparand) |
Tests if the comparand SequenceAnnotation follows this one according to base coordinates. More... | |
bool | contains (SequenceAnnotation &comparand) |
Tests if the comparand SequenceAnnotation is contained within the same start and end base coordinates as this one. More... | |
bool | overlaps (SequenceAnnotation &comparand) |
Tests if the comparand SequenceAnnotation overlaps with this one in the primary sequence. More... | |
ComponentDefinition & | extract (int start_reference=1) |
Convert a SequenceAnnotation to a subcomponent. More... | |
int | length () |
The length of a SequenceAnnotation in base coordinates. | |
virtual rdf_type | getTypeURI () |
std::string | getClassName (std::string type) |
SBOLObject * | find (std::string uri) |
Search this object recursively to see if an object or any child object with URI already exists. More... | |
SBOLObject * | find_property (std::string uri) |
Search this object recursively to see if it contains a member property with the given RDF type. More... | |
std::vector< SBOLObject * > | find_property_value (std::string uri, std::string value, std::vector< SBOLObject *> matches={}) |
Search this object recursively to see if it contains a member property with the given RDF type and indicated property value. More... | |
std::vector< SBOLObject * > | find_reference (std::string uri) |
Search this object recursively to see if it contains a member property with the given RDF type and indicated property value. More... | |
int | compare (SBOLObject *comparand) |
Compare two SBOL objects or Documents. More... | |
std::string | getPropertyValue (std::string property_uri) |
Get the value of a custom annotation property by its URI. More... | |
std::vector< std::string > | getPropertyValues (std::string property_uri) |
Get all values of a custom annotation property by its URI. More... | |
std::vector< std::string > | getProperties () |
Gets URIs for all properties contained by this object. More... | |
void | setPropertyValue (std::string property_uri, std::string val) |
Set and overwrite the value for a user-defined annotation property. More... | |
void | addPropertyValue (std::string property_uri, std::string val) |
Append a value to a user-defined annotation property. More... | |
void | setAnnotation (std::string property_uri, std::string val) |
Set the value for a user-defined annotation property. More... | |
std::string | getAnnotation (std::string property_uri) |
Get the value of a custom annotation property by its URI. More... | |
virtual void | close () |
Use this method to destroy an SBOL object that is not contained by a parent Document. More... | |
Protected Member Functions | |
Identified & | copy (Document *target_doc=NULL, std::string ns="", std::string version="") |
Copy an object and automatically increment its version. More... | |
template<class ExtensionClass > | |
void | register_extension_class (std::string ns, std::string ns_prefix, std::string class_name) |
Register an extension class and its namespace, so custom data can be embedded into and read from SBOL files. More... | |
|
inline |
Construct a ComponentDefinition.
uri | A full URI including a scheme, namespace, and identifier. If SBOLCompliance configuration is enabled, then this argument is simply the displayId for the new object and a full URI will automatically be constructed. |
version | An arbitrary version string. If SBOLCompliance is enabled, this should be a Maven version string of the form "major.minor.patch". |
|
inherited |
Append a value to a user-defined annotation property.
Either a literal or URI value
|
virtualinherited |
|
inherited |
Compare two SBOL objects or Documents.
The behavior is currently undefined for objects with custom annotations or extension classes.
comparand | A pointer to the object being compared to this one. |
bool contains | ( | SequenceAnnotation & | comparand | ) |
Tests if the comparand SequenceAnnotation is contained within the same start and end base coordinates as this one.
This is mutually exclusive with overlaps.
comparand | Another SequenceAnnotation |
|
protectedinherited |
Copy an object and automatically increment its version.
If the optional version argument is specified, it will be used instead of incrementing the copied object's version. An object may also be copied into a new document and a new namespace, assuming compliant URIs.
SBOLClass | The type of SBOL object being copied |
new_doc | The new copies will be attached to this Document. NULL by default. |
ns | This namespace will be substituted for the current namespace (as configured by setHomespace) in all SBOL-compliat URIs. |
version | A new version |
ComponentDefinition & extract | ( | int | start_reference = 1 | ) |
Convert a SequenceAnnotation to a subcomponent.
|
inherited |
Search this object recursively to see if an object or any child object with URI already exists.
uri | The URI to search for. |
|
inherited |
Search this object recursively to see if it contains a member property with the given RDF type.
uri | The RDF type of the property to search for. |
|
inherited |
Search this object recursively to see if it contains a member property with the given RDF type and indicated property value.
uri | The RDF type of the property to search for. |
value | The property value to match |
|
inherited |
Search this object recursively to see if it contains a member property with the given RDF type and indicated property value.
uri | A URI, either an ontology term or an object reference, to search for |
bool follows | ( | SequenceAnnotation & | comparand | ) |
Tests if the comparand SequenceAnnotation follows this one according to base coordinates.
comparand | Another SequenceAnnotation |
|
inherited |
Get the value of a custom annotation property by its URI.
Synonymous with getPropertyValue
property_uri | The URI for the property |
|
inherited |
|
inherited |
Gets URIs for all properties contained by this object.
This includes SBOL core properties as well as custom annotations. Use this to find custom extension data in an SBOL file.
|
inherited |
Get the value of a custom annotation property by its URI.
property_uri | The URI for the property |
|
inherited |
Get all values of a custom annotation property by its URI.
property_uri | The URI for the property |
|
virtualinherited |
bool overlaps | ( | SequenceAnnotation & | comparand | ) |
Tests if the comparand SequenceAnnotation overlaps with this one in the primary sequence.
comparand | Another SequenceAnnotation |
bool precedes | ( | SequenceAnnotation & | comparand | ) |
Tests if the comparand SequenceAnnotation precedes this one according to base coordinates.
comparand | Another SequenceAnnotation |
|
protectedinherited |
Register an extension class and its namespace, so custom data can be embedded into and read from SBOL files.
ExtensionClass | The new class |
ns | The extension namespace, eg, http://myhome.org/my_extension#. It's important that the namespace ends in a forward-slash or hash |
ns_prefix | A shorthand symbol for the full namespace as it will appear in the output file, eg, my_extension |
|
inherited |
Set the value for a user-defined annotation property.
Synonymous with setPropertyValue If the value is a URI, it should be surrounded by angle brackets, else it will be interpreted as a literal value
|
inherited |
Set and overwrite the value for a user-defined annotation property.
Either a literal or URI value
OwnedObject<Location> locations |
The locations property is a REQUIRED set of one or more Location objects that indicate which elements of a Sequence are described by the SequenceAnnotation.
Allowing multiple Location objects on a single SequenceAnnotation is intended to enable representation of discontinuous regions (for example, a Component encoded across a set of exons with interspersed introns). As such, the Location objects of a single SequenceAnnotation SHOULD NOT specify overlapping regions, since it is not clear what this would mean. There is no such concern with different SequenceAnnotation objects, however, which can freely overlap in Location (for example, specifying overlapping linkers for sequence assembly).
URIProperty roles |
Alternatively to describing substructure, a SequenceAnnotation can be utilized to identify a feature, such as a GenBank feature, of a specified Sequence.
In this use case, the SequenceAnnotation MUST NOT have a component property, but instead it would have a roles property. The roles property comprises an OPTIONAL set of zero or more URIs describing the specified sequence feature being annotated. If provided, these role URIs MUST identify terms from appropriate ontologies. Roles are not restricted to describing biological function; they may annotate Sequences’ function in any domain for which an ontology exists. It is RECOMMENDED that these role URIs identify terms that are compatible with the type properties of this SequenceAnnotation’s parent ComponentDefinition. For example, a role of a SequenceAnnotation which belongs to a ComponentDefinition of type DNA might refer to terms from the Sequence Ontology. See documentation for ComponentDefinition for a table of recommended ontology terms.