Skip to content

Commit

Permalink
Upload tutorial/Fix #88
Browse files Browse the repository at this point in the history
  • Loading branch information
Kiri Choi committed Jan 26, 2017
1 parent eda70b2 commit ee9b69b
Show file tree
Hide file tree
Showing 33 changed files with 2,454 additions and 0 deletions.
453 changes: 453 additions & 0 deletions tutorial/buildCRISPR.tex

Large diffs are not rendered by default.

Binary file added tutorial/figures/addCrisprModel1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/addCrisprModel2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/addMavenDependency1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/addMavenDependency2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/addMavenDependency3.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/createNewMavenProject1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/createNewMavenProject10.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/createNewMavenProject2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/createNewMavenProject3.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/createNewMavenProject4.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/createNewMavenProject5.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/createNewMavenProject6.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/createNewMavenProject7.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/createNewMavenProject8.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/createNewMavenProject9.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added tutorial/figures/crispr_repression2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
332 changes: 332 additions & 0 deletions tutorial/otherMethodsInAPI.tex

Large diffs are not rendered by default.

41 changes: 41 additions & 0 deletions tutorial/pom.xml
@@ -0,0 +1,41 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>mySBOLexamples</groupId>
<artifactId>crispr</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>crispr</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
113 changes: 113 additions & 0 deletions tutorial/setupMavenPrj.tex
@@ -0,0 +1,113 @@
\noindent In this tutorial, we describe steps for setting up a Maven
project that uses {\tt libSBOLj} in Eclipse, and explain how we use SBOL
2.0 to represent the function of a state-of-the-art design, namely a
CRISPR-based repression module Kiani~\textit{et
al.}~\cite{kiani2014crispr} using the Java library.

\section*{Set up Maven plugins in Eclipse}
In this section, we describe steps for installing Maven plugins in Eclipse. The Eclipse version used is Luna Service Release 2 (4.4.2). Here are the steps:
\begin{enumerate}
\item In Eclipse, go to Help and select Install New Software,
\item Add a new software site: Name = slf4j, URL = \url{http://www.fuin.org/p2-repository/},
\item Select this site to work with, expand Maven osgi-bundles, and select slf4j.api,
\item Click Next and follow the installation process,
\item Add a new software site: Name = Maven Plugins, URL = \url{http://download.eclipse.org/technology/m2e/releases},
\item Select this site to work with, expand Maven Integration for Eclipse, and select m2e - Maven Integration for Eclipse, and
\item Click Next and follow the installation process.
\end{enumerate}

\section*{Creating a new project}
After the Maven plugin is installed, we are now ready to create a new Maven project in Eclipse. The following text describe the necessary steps.

In the package explorer window, right click and select {\bf New $\rightarrow$ Other}.
\begin{center}
\includegraphics[width=0.8\textwidth]{figures/createNewMavenProject1}
\end{center}

Under the {\bf Maven} folder, choose {\bf Maven Project}, and then follow the default options for the project setup.
\begin{center}
\includegraphics[width=0.75\textwidth]{figures/createNewMavenProject2}
\end{center}

% \begin{center}
% \includegraphics[width=0.8\textwidth]{figures/createNewMavenProject3}
% \end{center}

\begin{center}
\includegraphics[width=0.75\textwidth]{figures/createNewMavenProject4}
\end{center}

In the window for specifying archetype parameters, you may type your group ID and artifact ID. In this tutorial, they are specified as shown below.
\begin{center}
\includegraphics[width=0.8\textwidth]{figures/createNewMavenProject5}
\end{center}

Once the project setup is finished, you should be able to see two Java source folders, a {\bf JRE System Library} and a {\bf Maven Dependencies} library, and a {\bf pom.xml} file.
\begin{center}
\includegraphics[width=0.8\textwidth]{figures/createNewMavenProject6}
\end{center}

It is possible that the JRE System Library created by Maven is not compatible with the installed JREs. In the screenshot shown below, it is set to {\bf J2SE-1.5}, but the Maven compiler is compatible with {\bf JavaSE-1.7} instead. To change it, right-click on JRE System Library, and select {\bf Build Path $\rightarrow$ Configure Build Path}.
\begin{center}
\includegraphics[width=0.8\textwidth]{figures/createNewMavenProject7}
\end{center}

In the popup properties window, select {\bf Edit} under {\bf Libraries}.
\begin{center}
\includegraphics[width=0.8\textwidth]{figures/createNewMavenProject8}
\end{center}

We can now change the execution environment to JavaSE-1.7 as shown below.
\begin{center}
\includegraphics[width=0.8\textwidth]{figures/createNewMavenProject9}
\end{center}

This solution, however, is temporary. If we right-click on the ``crispr'' project and then select {\bf Maven $\rightarrow$ Update Project}, the JRE will reset itself back to J2SE-1.5.
\begin{center}
\includegraphics[width=0.8\textwidth]{figures/createNewMavenProject10}
\end{center}

A permanent fix would be to manually add the plugin management information below to the pom.xml file.

\begin{minipage}{\textwidth}
\begin{lstlisting}[language=xml,basicstyle=\footnotesize\ttfamily]
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
\end{lstlisting}
\end{minipage}

The pom.xml should look like the one shown below after this modification. Remember to save the file and then do {\bf Maven $\rightarrow$ Update Project}.

\begin{minipage}{\textwidth}
\lstinputlisting[language=xml,basicstyle=\footnotesize\ttfamily]{pom.xml}
\end{minipage}

\section*{Adding {\tt libSBOLj} as dependency}
We are now ready to add libSBOLj as a Maven dependency. This can be easily done by right-clicking on the ``crispr'' project and then select {\bf Maven $\rightarrow$ Add Dependency}.
% \begin{center}
% \includegraphics[width=0.55\textwidth]{figures/addMavenDependency1}
% \end{center}
In the popup window shown below, fill in the information for the {\tt libSBOLj} library. The group ID is {\bf org.sbolstandard}, and the artifact ID is {\bf libSBOLj} and the version is {\bf 2.1.0}.
\begin{center}
\includegraphics[width=0.55\textwidth]{figures/addMavenDependency2}
\end{center}

After this dependency is added, Maven automatically brings in the {\tt libSBOLj-2.1.0.jar} and its dependencies from the Maven Central Repository, and places them under the {\bf Maven Dependencies} directory.
\begin{center}
\includegraphics[width=0.8\textwidth]{figures/addMavenDependency3}
\end{center}


39 changes: 39 additions & 0 deletions tutorial/top.aux
@@ -0,0 +1,39 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\citation{kiani2014crispr}
\citation{kiani2014crispr}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Illustration of a hierarchical CRISPR-based repression module represented in SBOL 2.0 (adapted from Figure\nobreakspace {}1a in \cite {kiani2014crispr}). The CRISPR-based Repression Template \textbf {ModuleDefinition} describes a generic CRISPR repression circuit that combines a Cas9 protein with a gRNA to form a complex (represented by the dashed arrows) that represses a target gene (represented by the arrow with the tee arrowhead). These relationships between these \textbf {FunctionalComponents} (instances of \textbf {ComponentDefinitions}) are represented in SBOL 2.0 using \textbf {Interactions}. This \textbf {Module} is instantiated in the outer CRPb Characterization Circuit \textbf {ModuleDefinition} in order to specify the precise (including \textbf {Sequences} when provided) \textbf {FunctionalComponents} used for each generic \textbf {FunctionalComponent}. The undirected dashed lines going into the template \textbf {Module} represent \textbf {MapsTo} objects that specify how specific \textbf {FunctionalComponents} replace the generic ones.}}{2}{figure.1}}
\newlabel{fig:fig-CRPb}{{1}{2}{Illustration of a hierarchical CRISPR-based repression module represented in SBOL 2.0 (adapted from Figure~1a in \cite {kiani2014crispr}). The CRISPR-based Repression Template \sbol {ModuleDefinition} describes a generic CRISPR repression circuit that combines a Cas9 protein with a gRNA to form a complex (represented by the dashed arrows) that represses a target gene (represented by the arrow with the tee arrowhead). These relationships between these \sbol {FunctionalComponents} (instances of \sbol {ComponentDefinitions}) are represented in SBOL 2.0 using \sbol {Interactions}. This \sbol {Module} is instantiated in the outer CRPb Characterization Circuit \sbol {ModuleDefinition} in order to specify the precise (including \sbol {Sequences} when provided) \sbol {FunctionalComponents} used for each generic \sbol {FunctionalComponent}. The undirected dashed lines going into the template \sbol {Module} represent \sbol {MapsTo} objects that specify how specific \sbol {FunctionalComponents} replace the generic ones}{figure.1}{}}
\citation{Courtot2011}
\citation{kiani2014crispr}
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces \textbf {ComponentDefinition} objects}}{8}{table.1}}
\newlabel{tbl:tbl-ComponentDef}{{1}{8}{\sbol {ComponentDefinition} objects}{table.1}{}}
\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces \textbf {SequenceConstraint} objects}}{8}{table.2}}
\newlabel{tbl:tbl-SeqConstraint}{{2}{8}{\sbol {SequenceConstraint} objects}{table.2}{}}
\citation{kiani2014crispr}
\@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces \textbf {Interaction} objects}}{9}{table.3}}
\newlabel{tbl:tbl-Interaction}{{3}{9}{\sbol {Interaction} objects}{table.3}{}}
\citation{SBML}
\citation{roehner2015generating}
\bibstyle{ieeetr}
\bibdata{top}
\bibcite{kiani2014crispr}{1}
\bibcite{Courtot2011}{2}
\bibcite{SBML}{3}
\bibcite{roehner2015generating}{4}
28 changes: 28 additions & 0 deletions tutorial/top.bbl
@@ -0,0 +1,28 @@
\begin{thebibliography}{1}

\bibitem{kiani2014crispr}
S.~Kiani, J.~Beal, M.~Ebrahimkhani, J.~Huh, R.~Hall, Z.~Xie, Y.~Li, and
R.~Weiss, ``Crispr transcriptional repression devices and layered circuits in
mammalian cells,'' {\em Nature Methods}, vol.~11, no.~7, pp.~723--726, 2014.

\bibitem{Courtot2011}
M.~Courtot, N.~Juty, C.~Kn\"{u}pfer, D.~Waltemath, A.~Zhukova, A.~Dr\"{a}ger,
M.~Dumontier, A.~Finney, M.~Golebiewski, J.~Hastings, S.~Hoops, S.~Keating,
D.~Kell, S.~Kerrien, J.~Lawson, A.~Lister, J.~Lu, R.~Machne, P.~Mendes,
M.~Pocock, N.~Rodriguez, A.~Villeger, D.~Wilkinson, S.~Wimalaratne, C.~Laibe,
M.~Hucka, and N.~{Le Nov\`{e}re}, ``{Controlled vocabularies and semantics in
systems biology},'' {\em Molecular Systems Biology}, vol.~7, 2011.

\bibitem{SBML}
M.~Hucka, A.~Finney, H.~Sauro, H.~Bolouri, J.~Doyle, H.~Kitano, A.~Arkin,
B.~Bornstein, D.~Bray, A.~Cornish-Bowden, {\em et~al.}, ``The systems biology
markup language (sbml): a medium for representation and exchange of
biochemical network models,'' {\em Bioinformatics}, vol.~19, no.~4,
pp.~524--531, 2003.

\bibitem{roehner2015generating}
N.~Roehner, Z.~Zhang, T.~Nguyen, and C.~Myers, ``Generating systems biology
markup language models from the synthetic biology open language,'' {\em ACS
Synthetic Biology}, vol.~4, no.~8, pp.~873--879, 2015.

\end{thebibliography}

0 comments on commit ee9b69b

Please sign in to comment.