-
Notifications
You must be signed in to change notification settings - Fork 9
/
location.tex
58 lines (43 loc) · 4.47 KB
/
location.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
\subsubsection{Location}
\label{sec:Location}
The \sbol{Location} class (as shown in \ref{uml:location}) is used to represent the location of \sbol{Feature}s within \sbol{Sequence}s. This class is extended by the \sbol{Range}, \sbol{Cut}, and \sbol{EntireSequence} classes
\sbol{Location} is an abstract class; only its child classes are actually instantiated.
\begin{figure}[ht]
\begin{center}
\includegraphics[scale=0.6]{uml/location}
\caption[]{Diagram of the \sbol{Location} class and its associated properties.}
\label{uml:location}
\end{center}
\end{figure}
\subparagraph{The \sbolheading{orientation} property}
\label{sec:orientation:L}
The \sbolmult{orientation:L}{orientation} property is OPTIONAL and has a data type of \sbol{IRI}. All subclasses of \sbol{Location} share this property, which can be used to indicate how any associated double-stranded \sbol{Feature} is oriented on the \sbol{elements} of a \sbol{Sequence} from their parent \sbol{Component}.
If a \sbol{Location} object has an \sbolmult{orientation:F}{orientation}, then it is RECOMMENDED that it come from \ref{tbl:orientation_types}; for reasons of backwards compatability it MAY instead come from \ref{tbl:orientation_types_alternative}.
As is typical practice in biology, any change in orientation is applied after indices are interpreted.
Thus, for example, in a DNA \sbol{Sequence} with \sbol{elements} {\tt AAAAACCCCCTTTTTGGGGGTTTTTGGGGG},
indices 1-6 with a reverse orientation will select {\tt AAAAAC}, which would then be reverse complemented to obtain {\tt GTTTTT}.
\subparagraph{The \sbolheading{order} property}
\label{sec:order}
The \sbol{order} property is OPTIONAL and has a data type of \sbol{Integer}. If there are multiple \sbol{Location} objects associated with a \sbol{Feature}, the \sbol{order} property is used to specify the order (in increasing value) in which the specified \sbol{Location}s are to be joined to form the sequence of the \sbol{Feature}.
Note that order values MAY be non-sequential and non-positive, if desired.
\subparagraph{The \sbolheading{hasSequence} property}
\label{sec:hasSequence:L}
The \sbolmult{hasSequence:L}{hasSequence} property is REQUIRED and MUST contain the \sbol{IRI} of a \sbol{Sequence} object. All subclasses of \sbol{Location} share this property, which indicates which \sbol{Sequence} object referenced by the containing \sbol{Component} is referenced by the \sbol{Location}.
\paragraph{Range}
\label{sec:Range}
A \sbol{Range} object specifies a region via discrete, inclusive \sbol{start} and \sbol{end} positions that correspond to indices for characters in the \sbol{elements} \sbol{String} of a \sbol{Sequence}.
Note that the index of the first location is 1, as is typical practice in biology, rather than 0, as is typical practice in computer science.
\subparagraph{The \sbolheading{start} property}\label{sec:start}
The \sbol{start} property specifies the inclusive starting position of the \sbol{Range}. This property is REQUIRED and MUST contain an \sbol{Integer} value greater than zero.
\subparagraph{The \sbolheading{end} property}\label{sec:end}
The \sbol{end} property specifies the inclusive ending position of the \sbol{Range}. This property is REQUIRED and MUST contain an \sbol{Integer} value greater than zero. In addition, this \sbol{Integer} value MUST be greater than or equal to that of the \sbol{start} property.
\paragraph{Cut}
\label{sec:Cut}
The \sbol{Cut} class has been introduced to enable the specification of a region between two discrete positions.
This specification is accomplished using the \sbol{at} property, which specifies a discrete position that corresponds to the index of a character in the \sbol{elements} \sbol{String} of a \sbol{Sequence} (except in the case when \sbol{at} is equal to zero---see below).
\subparagraph{The \sbolheading{at} property}
\label{sec:at}
The \sbol{at} property is REQUIRED and MUST contain an \sbol{Integer} value greater than or equal to zero. The region specified by the \sbol{Cut} is between the position specified by this property and the position that immediately follows it. When the \sbol{at} property is equal to zero, the specified region is immediately before the first discrete position or character in the \sbol{elements} \sbol{String} of a \sbol{Sequence}.
\paragraph{EntireSequence}
\label{sec:EntireSequence}
The \sbol{EntireSequence} class does not have any additional properties. Use of this class indicates that the linked Sequence describes the entirety of the \sbol{Component} or \sbol{Feature} parent of this Location object.