Skip to content

Commit

Permalink
Final updates for 2.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
cjmyers committed Dec 31, 2017
1 parent fb5f01d commit 2992706
Show file tree
Hide file tree
Showing 11 changed files with 4,038 additions and 27 deletions.
4 changes: 3 additions & 1 deletion copyright.tex
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ \section{Copyright and License Statement}
In addition to the listed authors, the following people are specifically recognized as additional contributors sharing in the copyright (alphabetically by institution):
Douglas Densmore (Boston University, USA),
Jacqueline Quinn (Google, USA), and
Guy-Bart Stan (Imperial College London, UK).
Guy-Bart Stan (Imperial College London, UK).

The authors would also like to thank Michael Hucka for developing the LaTeX style file used to develop this document~\citep{hucka2017sbmlpkgspec}.
10 changes: 7 additions & 3 deletions examples_model.tex
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ \section{Data Model Examples}
With repressors LacI and TetR, this results in a bi-stable system that will tend to settle into a state where precisely one of the two repressors is strongly expressed, repressing the other.
Each of these repressors can have its activity disrupted by a small molecule (IPTG for LacI, aTc for TetR), which enables the system to be ``toggled'' from one state to the other by dosing it with the appropriate small molecule.

\twotwozero{
\begin{figure}[ht]
\begin{center}
\includegraphics[scale=1.0]{images/toggle-highlevel.pdf}
\includegraphics[width=0.33\textwidth]{images/toggle-highlevel2.pdf}
\caption[]{Conceptual diagram of LacI/TetR toggle switch: the LacI
and TetR transcription factors are arranged to mutually repress each other's expression,
creating a bi-stable system. Transition between the two states
Expand All @@ -22,14 +23,17 @@ \section{Data Model Examples}
\label{images:toggle}
\end{center}
\end{figure}
}

\twotwozero{
\begin{figure}[ht]
\begin{center}
\includegraphics[scale=0.4]{images/toggleswitch_modular}
\includegraphics[width=\textwidth]{images/toggleswitch_modular2}
\caption[]{Design of a LacI/TetR toggle switch. This design is composed of two inverter sub-designs, each containing a single gene. These genes mutually repress each other's expression via their encoded protein transcription factors, LacI and TetR. Furthermore, both LacI and TetR are bound by specific small molecules that sequester them and prevent them from acting as repressors. In this design, arrows represent different molecular interactions, including the repression of pLac via LacI, the non-covalent binding of IPTG to LacI, the transcription of TetR mRNA, and the translation of TetR. Dashed lines serve to map between transcription factors in the inverter sub-designs and those in the overall toggle switch design.}
\label{images:toggleswitch_modular}
\end{center}
\end{figure}
}

The LacI/TetR toggle switch is modeled in SBOL as two parallel hierarchies of structure and function. The structural hierarchy of the toggle switch is represented using \sbol{ComponentDefinition}s:
\begin{itemize}
Expand Down Expand Up @@ -87,4 +91,4 @@ \section{Data Model Examples}

% The first use case is to indicate with greater fidelity how a module describes the function of a composite component, namely by asserting that particular component instantiations within the module correspond to particular component instantiations within the component.

% As an example of this use case, one might compose the structure and function of the LacI-repressible gene of the genetic toggle switch. In this example, the LacI-repressible gene and two of its subcomponents, the pLac promoter and cTetR CDS, are to be composed with the LacI inverter module. In order to compose these components with the LacI inverter module and indicate that it describes their behavior, they are instantiated inside the module. In addition, port maps are placed on the instantiation of the LacI-repressible gene to connect between its pLac plus cTetR subcomponent instantiations and the corresponding component instantiations in the module. Doing so makes it clear which subcomponent instantiations in the gene are being described by which component instantiations in the module. In this way, GDA tools for sequence editing and biochemical modeling can guarantee that their users are handling corresponding elements of a given genetic design, while GDA tools for genetic technology mapping can make explicit connections between the structural and functional elements of a design.
% As an example of this use case, one might compose the structure and function of the LacI-repressible gene of the genetic toggle switch. In this example, the LacI-repressible gene and two of its subcomponents, the pLac promoter and cTetR CDS, are to be composed with the LacI inverter module. In order to compose these components with the LacI inverter module and indicate that it describes their behavior, they are instantiated inside the module. In addition, port maps are placed on the instantiation of the LacI-repressible gene to connect between its pLac plus cTetR subcomponent instantiations and the corresponding component instantiations in the module. Doing so makes it clear which subcomponent instantiations in the gene are being described by which component instantiations in the module. In this way, GDA tools for sequence editing and biochemical modeling can guarantee that their users are handling corresponding elements of a given genetic design, while GDA tools for genetic technology mapping can make explicit connections between the structural and functional elements of a design.
3,979 changes: 3,979 additions & 0 deletions images/standard-evolution.ai

Large diffs are not rendered by default.

Binary file added images/standard-evolution.pdf
Binary file not shown.
Binary file added images/toggle-highlevel2.pdf
Binary file not shown.
Binary file added images/toggleswitch_modular2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 7 additions & 7 deletions model.tex
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,9 @@ \subsubsection*{The \sbolheading{version} property}
\subsubsection*{The \sbolheading{wasDerivedFroms} property}
\label{sec:wasDerivedFroms}

The \twotwozero{\sbol{wasDerivedFroms}} property is OPTIONAL \twotwozero{and MAY specify a set of \sbol{URI}s}. An SBOL object with this property refers to \twotwozero{one or more SBOL objects or non-SBOL resources} from which this object was derived.

\twotwozero{
The \sbol{wasDerivedFroms} property is OPTIONAL and MAY specify a set of \sbol{URI}s. An SBOL object with this property refers to one or more SBOL objects or non-SBOL resources from which this object was derived.

\twozeroone{The \sbol{wasDerivedFroms} property of a \sbol{TopLevel} SBOL object is subject to the following rules.}
If any members of the \sbol{wasDerivedFroms} property of an SBOL object $A$ that refers to an SBOL object $B$ has an identical \sbol{persistentIdentity}, and both $A$ and $B$ have a \sbol{version}, then the \sbol{version} of $B$ MUST precede that of $A$.
In addition, an SBOL object MUST NOT refer to itself via its own \sbol{wasDerivedFroms} property or form a cyclical chain of references via its \sbol{wasDerivedFroms} 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.
Expand Down Expand Up @@ -1151,7 +1151,7 @@ \subsubsection*{The \sbolheading{interactions} property}\label{sec:interactions}

The \sbol{interactions} property is OPTIONAL and MAY specify a set of \sbol{Interaction} objects within the \sbol{ModuleDefinition}.

The \sbol{Interaction} class provides an abstract, machine-readable representation of entity behavior within a \sbol{ModuleDefinition} (whereas a more detailed model of the system might not be suited to machine reasoning, depending on its implementation).
The \sbol{Interaction} class provides an abstract, machine-readable representation of entity behavior within a\\ \sbol{ModuleDefinition} (whereas a more detailed model of the system might not be suited to machine reasoning, depending on its implementation).
Each \sbol{Interaction} contains \sbol{Participation} objects that indicate the roles of the \sbol{FunctionalComponent} objects involved in the \sbol{Interaction}.

\subsubsection*{The \sbolheading{models} property}\label{sec:models}
Expand Down Expand Up @@ -1328,7 +1328,7 @@ \subsubsection{Interaction}
\end{center}
\end{figure}

The \sbol{Interaction} class provides more detailed description of how the \sbol{FunctionalComponent} objects of a \sbol{ModuleDefinition} are intended to work together.
The \sbol{Interaction} class provides more detailed description of how the \sbol{FunctionalComponent} objects of a\\ \sbol{ModuleDefinition} are intended to work together.
For example, this class can be used to represent different forms of genetic regulation (e.g., transcriptional activation or repression), processes from the central dogma of biology (e.g. transcription and translation), and other basic molecular interactions (e.g., non-covalent binding or enzymatic phosphorylation).
Each \sbol{Interaction} includes a \sbolmult{types:I}{types} property that refers to descriptive ontology terms and a \sbol{participations} property that describes which \sbol{FunctionalComponent} objects participate in the \sbol{Interaction}.

Expand Down Expand Up @@ -1666,7 +1666,7 @@ \subsubsection*{ The \sbolheading{variantCollections} property}\label{sec:varian

\subsubsection*{ The \sbolheading{variantDerivations} property}\label{sec:variantDerivations}

The \sbol{variantDerivations} property is OPTIONAL and MAY contain zero or more URIs that each refer to a\\ \sbol{CombinatorialDerivation}. This property enables the convenient specification of \sbol{ComponentDefinition} objects derived in accordance with another \sbol{CombinatorialDerivation} to serve as options when deriving a new \sbol{Component} from the template \sbol{Component}. The \sbol{variantDerivations} property of a \sbol{VariableComponent} MUST NOT refer to the \sbol{CombinatorialDerivation} that contains this \sbol{VariableComponent}. Furthermore, \sbol{VariableComponent} objects MUST NOT form a cyclical chain of references via their \sbol{variantDerivations} properties and the \sbol{CombinatorialDerivation} objects that contain them. For example, consider the \sbol{VariableComponent} objects A and B and the \sbol{CombinatorialDerivation} objects X and Y. The reference chain X contains A, A has variant derivation Y, Y contains B, and B has variant derivation X is cyclical.
The \sbol{variantDerivations} property is OPTIONAL and MAY contain zero or more URIs that each refer to a\\ \sbol{CombinatorialDerivation}. This property enables the convenient specification of \sbol{ComponentDefinition} objects derived in accordance with another \sbol{CombinatorialDerivation} to serve as options when deriving a new \sbol{Component} from the template \sbol{Component}. The \sbol{variantDerivations} property of a \sbol{VariableComponent} MUST NOT refer to the \sbol{CombinatorialDerivation} that contains this \sbol{VariableComponent}. Furthermore, \sbol{VariableComponent} objects MUST NOT form a cyclical chain of references via their \sbol{variantDerivations} properties and the\\ \sbol{CombinatorialDerivation} objects that contain them. For example, consider the \sbol{VariableComponent} objects A and B and the \sbol{CombinatorialDerivation} objects X and Y. The reference chain X contains A, A has variant derivation Y, Y contains B, and B has variant derivation X is cyclical.

\subsubsection*{ The \sbolheading{operator} property}\label{sec:operator}

Expand Down Expand Up @@ -1799,7 +1799,7 @@ \subsubsection*{ The \sbolheading{hash} property}\label{sec:hash}

\subsubsection*{Serialization}

The serialization of a \sbol{Attachment} MUST have the following form:
The serialization of an \sbol{Attachment} MUST have the following form:

}

Expand All @@ -1815,7 +1815,7 @@ \subsubsection*{Serialization}
\end{lstlisting}

\twotwozero{
The example below shows the serialization of a \sbol{Attachment} object that refers to a PNG file containing a plot of simulation data. The attachment in this example can be retrieved from a repository via its \sbolmult{source:A}{source} \sbol{URI}, which is a \external{URL}.
The example below shows the serialization of an \sbol{Attachment} object that refers to a PNG file containing a plot of simulation data. The attachment in this example can be retrieved from a repository via its \sbolmult{source:A}{source} \sbol{URI}, which is a \external{URL}.
}
\lstsetsbol
\begin{lstlisting}
Expand Down
34 changes: 23 additions & 11 deletions practices.tex
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ \subsection{Recommended Ontologies for External Terms}
& \textbf{More Information} \\
\midrule
\textbf{ComponentDefinition} & types & BioPAX & \url{http://www.biopax.org}\\
& types & SequenceOntology (nucleic acid topology)& \url{http://www.sequenceontology.org}\\
& types & SO (nucleic acid topology)& \url{http://www.sequenceontology.org}\\
& roles & SO (\textit{DNA} or \textit{RNA}) & \url{http://www.sequenceontology.org} \\
& roles & CHEBI (\textit{small molecule}) & \url{https://www.ebi.ac.uk/chebi/} \\
% & roles & UniProt (if type is \textit{protein}??) \\
Expand Down Expand Up @@ -147,7 +147,7 @@ \subsection{Recommended Ontologies for External Terms}
\begin{center}
\includegraphics[scale=0.6]{uml/provenance}
\caption[]{Relationships between SBOL and PROV-O classes. The PROV-O classes \external{Activity}, \external{Plan}, and \external{Agent} are all serialized as \sbol{TopLevel} classes in an SBOL document.
\label{uml:provenance}
\label{uml:provenance}}
\end{center}
\end{figure}
}
Expand All @@ -171,7 +171,7 @@ \subsubsection{Activity}
The \sbol{startedAtTime} property is OPTIONAL and contains a DateTime (see section \ref{sec:DateTime}) value, indicating when the activity started. If this property is present, then the \sbol{endedAtTime} property is REQUIRED.

\paragraph{The \sbolheading{wasInformedBys} property}\label{sec:wasInformedBys}
The \sbol{wasInformedBys} property is OPTIONAL and contains a URI of another activity.
The \sbol{wasInformedBys} property is OPTIONAL and MAY contain a set of \sbol{URI}s that refers to other \sbol{Activity} objects.

\paragraph{Serialization}
The serialization of an \sbol{Activity} MUST have the following form:
Expand All @@ -190,10 +190,14 @@ \subsubsection{Activity}
</prov:qualifiedUsage> [\emph{elements}]
[\emph{zero or one}] <prov:startedAtTime>...</prov:startedAtTime> [\emph{element}]
[\emph{zero or one}] <prov:endedAtTime>...</prov:startedAtTime> [\emph{element}]
[\emph{zero or one}] <prov:wasInformedBy rdf:resource="..."/> [\emph{element}]
[\emph{zero or more}] <prov:wasInformedBy rdf:resource="..."/> [\emph{element}]
</prov:Activity>
\end{lstlisting}

\twotwozero{
Note that the tags prov:qualifiedUsage and prov:qualifiedAssociation are used for \sbol{usages} and \sbol{associations}, respectively.
}

\twoonezero{
\subsubsection{Association}
\label{sec:Association}
Expand Down Expand Up @@ -239,12 +243,16 @@ \subsubsection{Association}
\begin{lstlisting}
<prov:Association rdf:about="...">
... [\emph{properties inherited from identified}] ...
[\emph{zero or more}] <prov:hadRole rdf:resource="..."/> [\emph{element}]
[\emph{zero or one}] <prov:hadPlan rdf:resource="..."/> [\emph{element}]
[\emph{one}] <prov:agent rdf:resource="..."/> [\emph{element}]
[\emph{zero or more}] <prov:hadRole rdf:resource="..."/> [\emph{element}]
[\emph{zero or one}] <prov:hadPlan rdf:resource="..."/> [\emph{element}]
[\emph{one}] <prov:agent rdf:resource="..."/> [\emph{element}]
</prov:Association>
\end{lstlisting}

\twotwozero{
Note that the tags prov:hadRole and prov:hadPlan are used for \sbolmult{roles:A}{roles} and \sbol{plan}, respectively.
}

\twoonezero{
\subsubsection{Usage}
\label{sec:Usage}
Expand Down Expand Up @@ -284,13 +292,17 @@ \subsubsection{Usage}

\lstsetsbol
\begin{lstlisting}
<prov:Association rdf:about="...">
<prov:Usage rdf:about="...">
... [\emph{properties inherited from identified}] ...
[\emph{zero or more}] <prov:hadRole rdf:resource="..."/> [\emph{element}]
[\emph{one}] <prov:entity rdf:resource="..."/> [\emph{element}]
</prov:Association>
[\emph{zero or more}] <prov:hadRole rdf:resource="..."/> [\emph{element}]
[\emph{one}] <prov:entity rdf:resource="..."/> [\emph{element}]
</prov:Usage>
\end{lstlisting}

\twotwozero{
Note that the tag prov:hadPlan is used for \sbolmult{roles:U}{roles}.
}

\twoonezero{
\subsubsection{Plan}
\label{sec:Plan}
Expand Down
6 changes: 4 additions & 2 deletions purpose.tex
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,14 @@ \section{Purpose}
\end{itemize}
Taken together, these extensions enable SBOL to support the description and exchange of hierarchical, modular representations of both the intended structure and function of designed biological systems.

\begin{figure}
\twotwozero{
\begin{figure}[htbp]
\centering
\includegraphics[width=5in]{images/standard-evolution.pdf}
\includegraphics[width=\textwidth]{images/standard-evolution.pdf}
\caption{SBOL 2 extends prior sequence description formats to represent both the structure and function of a genetic design in a modular, hierarchical manner.}
\label{f:sequence}
\end{figure}
}

While the ultimate goal of SBOL is to describe synthetic biological designs such that they can be reproduced in the lab with a high degree of fidelity, SBOL 2 does not yet provide a complete catalog of the different classes of data that are necessary to achieve this goal.
For example, SBOL 2 does not yet include data on environmental and host context, or details on how the performance of a design is measured.
Expand Down
12 changes: 12 additions & 0 deletions sbol.bib
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,18 @@ @article{galdzicki2014synthetic
publisher={Nature Publishing Group}
}

@article{hucka2017sbmlpkgspec,
title={SBMLPkgSpec: a LaTeX style file for SBML package
specification documents},
author={Hucka, Michael},
journal={BMC research notes},
volume={10},
number={1},
pages={451},
year={2017},
publisher={BioMed Central}
}

@article{canton-natbio-2008,
author = "Barry Canton and Anna Labno and Drew Endy",
title = "Refinement and standardization of synthetic biological parts and devices",
Expand Down
6 changes: 3 additions & 3 deletions sbol2.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
\usepackage{microtype}
\usepackage{color}
\usepackage{todonotes}
\usepackage{changebar}
\usepackage[color]{changebar}
\usepackage{xcolor}
\usepackage{soul}
%% ============================================================================
Expand Down Expand Up @@ -63,7 +63,7 @@
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{light-gray}{gray}{0.97}
\lstdefinelanguage{sbol}
{morekeywords={xmlns:sbol,rdf:about,sbol:displayId,sbol:persistentIdentity,sbol:version,sbol:timeStamp,sbol:name,sbol:description,sbol:member,sbol:Collection,sbol:type,
{morekeywords={xmlns:sbol,xmlns:prov,xmlns:rdf,xmlns:dcterms,xmlns:myapp,rdf:RDF,rdf:resource,rdf:about,sbol:displayId,sbol:persistentIdentity,sbol:version,sbol:timeStamp,sbol:name,sbol:description,sbol:member,sbol:Collection,sbol:type,
sbol:role, sbol:roleIntegration, sbol:ComponentDefinition, sbol:MapsTo, sbol:sequence,sbol:wasDerivedFrom,sbol:Component,sbol:subComponent,sbol:SequenceAnnotation,sbol:component,sbol:location, sbol:sequenceAnnotation, sbol:Range, sbol:start, sbol:end, sbol:orientation,sbol:SequenceConstraint, sbol:restriction, sbol:subject, sbol:object,sbol:Sequence, sbol:elements, sbol:encoding,sbol:Model, sbol:source, sbol:language, sbol:framework,sbol:FunctionalComponent, sbol:Module, sbol:Interaction, sbol:interaction, sbol:module, sbol:model,sbol:Model,sbol:definition, sbol:access, sbol:direction, sbol:mapsTo, sbol:refinement, sbol:local, sbol:remote, sbol:participation, sbol:Participation, sbol:participant,sbol:sequenceConstraint,sbol:at,sbol:Cut,sbol:functionalComponent,sbol:ModuleDefinition,prov:wasDerivedFrom,dcterms:title,dcterms:description,sbol:Implementation,sbol:built,sbol:CombinatorialDerivation,sbol:template,sbol:strategy,sbol:variableComponent,sbol:VariableComponent,sbol:operator,sbol:variable,sbol:variant,sbol:variantCollection,sbol:variantDerivations,sbol:format,sbol:size,sbol:hash,sbol:Attachment,prov:wasGeneratedBy,prov:Activity,prov:startedAtTime,prov:endedAtTime,prov:wasInformedBy,prov:qualifiedUsage,prov:Usage,prov:entity,prov:qualifiedAssociation,prov:Association,prov:hadRole,prov:hadPlan,prov:Plan,prov:agent,prov:Agent},
basicstyle=\fontsize{7}{9}\selectfont\ttfamily,
backgroundcolor=\color{light-gray},
Expand Down Expand Up @@ -395,4 +395,4 @@ \section{...}
%
%
%
qualifiedUsage
qualifiedUsage

0 comments on commit 2992706

Please sign in to comment.