diff --git a/Presentation/Presentation.pdf b/Presentation/Presentation.pdf new file mode 100644 index 0000000..8878cd0 Binary files /dev/null and b/Presentation/Presentation.pdf differ diff --git a/Presentation/content.tex b/Presentation/content.tex index be029ee..735bc96 100644 --- a/Presentation/content.tex +++ b/Presentation/content.tex @@ -2,30 +2,67 @@ % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ - \begin{frame} - Two Rust crates have been developed to model, analyze and design Reaction Systems. + \begin{frame}\frametitle{Reaction Systems} + \begin{tblr}{colspec={X[5,b]X[4,h]}, measure = vbox} + {\begin{minipage}{\dimexpr\linewidth-\tabcolsep}\raggedright% + RS is a qualitative model: + \begin{itemize} + \item[-] no permanency, + \item[-] no counting. + \end{itemize} - \vspace{1em} + \vspace{1em} - \begin{itemize} - \item ReactionSystems - \item ReactionSystemsGUI - \end{itemize} + Key concepts: \textit{Facilitation} and \textit{Inhibition} - \vspace{1em} + \vspace{1em} - ReactionSystemsGUI implements a custom visual language using the libraries \(\texttt{egui}\) and \(\texttt{egui\_node\_graph2}\). + A reaction \((R, I, P)\) is composed by reactants, inhibitors and products. - \vspace{1em} + Reaction System: \(\mathcal{A} = (S, A)\) - A web version is also provided that runs locally using WebAssembly. + \vspace{1em} - % A CLI is implemented in ReactionSystems too + Behavior is not monotone. + \end{minipage}} & {\captionsetup[figure]{font=tiny}\begin{figure} + \includegraphics[clip, trim=20mm 110mm 85mm 40mm, width=0.8\linewidth, ]{figures/Molecular_Biology.pdf} + \caption{Principle of Positive and Negative Regulation} + \end{figure}} \\ + \end{tblr} + + % Reaction System (RS) is a successful computational framework inspired by biological systems. + % S is called the background set of A and its elements are called entities + % A is a set of reactions \end{frame} % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ \begin{frame} + \begin{itemize} + \item[-] Modeling and \textit{in silico} experiments, + \item[-] Visualizing of LTS % labelled transition systems + \item[-] Verifying properties: reachability, model checking, equivalence. + \item[-] Analysis: causality, slicing, attractors, profiling. + \item[-] Transformations: positive form, minimization. + \end{itemize} + \end{frame} + + % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ + + \begin{frame}\frametitle{Contribution} + The main contribution is a rewrite of previous Prolog code in Rust. + + \vspace{1em} + + \begin{itemize} + \item[-] ReactionSystems: contains the basic structures, parsers and a CLI.% + \item[-] ReactionSystemsGUI:\ implements a native and web application with a custom visual language to interact with RS.% + \end{itemize} + \end{frame} + + % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ + + \begin{frame}\frametitle{Example} \begin{figure}[h] \includegraphics[width=0.9\textwidth]{figures/instructions_medical.png} \end{figure} @@ -40,8 +77,8 @@ \begin{section}{Design} % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ - \begin{frame} - The libraries are more than 30k lines of code, organized in workspaces that allow easy development; the GUI has 29 types and more than 70 node operations. + \begin{frame}\frametitle{Structure} + The libraries are more than 30k lines of code, organized in workspaces that allow easy development; the visual language has 29 types and more than 70 node operations. \begin{figure}[!h] \centering @@ -123,67 +160,6 @@ Grammars have been specified and developed for the RS structures using \(\texttt{lalrpop}\). \end{frame} - % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ - - \begin{frame}\frametitle{Reaction Systems} - \begin{tblr}{colspec={X[b]X[h]}, measure = vbox} - {\begin{minipage}{\dimexpr\linewidth-\tabcolsep}\raggedright% - Reaction System (RS) is a successful computational framework inspired by biological systems. - - \vspace{1em} - - Key concepts: \textit{Facilitation} and \textit{Inhibition} - - \vspace{1em} - - Reaction: \((R, I, P)\) - - Reaction System: \(\mathcal{A} = (S, A)\) - \end{minipage}} & {\captionsetup[figure]{font=tiny}\begin{figure} - \includegraphics[clip, trim=20mm 110mm 85mm 40mm, width=0.8\linewidth, ]{figures/Molecular_Biology.pdf} - \caption{Principle of Positive and Negative Regulation\cite{Clark_Pazdernik_McGehee_2018}} - \end{figure}} \\ - \end{tblr} - - % S is called the background set of A and its elements are called entities - % A is a set of reactions - \end{frame} - - % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ - - \begin{frame} - Three key properties: - \begin{enumerate}[label= (\roman*)] - \item no permanency: entities vanish unless sustained by a reaction; - \item no counting: the exact quantity of each entity is irrelevant; - \item threshold nature of resources: if an entity is present, it is present for all possible reactions. - \end{enumerate} - \end{frame} - - % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ - - \begin{frame}\frametitle{Interactive Process} - The behavior of a RS is formalized through the notion of an interactive process: - - \begin{center} - \begin{tblr}{colspec={rll}, colsep=1pt} - Context Sequence: & \(\gamma\) & \(= {\{ C_i \}}_{i \in [0,n]}\), \\ - Result Sequence: & \(\delta\) & {\(= {\{ D_i \}}_{i \in [0, n]}\) with \text{\tikz[baseline={(char.base)}]{ - \node[anchor=base] (char) {\(D_{i+1} := res_A(D_i \cup C_i)\)}; - \draw[thick,blue!50,decorate,decoration={coil,aspect=0,pre length=4pt,post length=0pt, amplitude=1pt}] (char.south west) to (char.south east); -}}} - \end{tblr} - \end{center} - \begin{figure}[h] - \def\svgwidth{0.7\linewidth} - \import{figures}{reaction_system.pdf_tex} - \end{figure} - % A Reaction System is then modeled as a process, with a externally given - % context, from which the result is calculated: given a set given from the - % context, it is summed to the previous result and for each reaction that is - % activated the products are then summed and are the next result - \end{frame} - % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ \begin{frame}\frametitle{SOS rules} \begin{tblr}{colspec={Q[c,m]Q[l,m]}} @@ -218,6 +194,7 @@ Context: [k1, k2]\\ Reactions: (}\(\ldots\){\tt)}}\\ % chktex 9 \end{tblr} + % structured operational semantics % The behavior of a RS could be defined as a discrete time interactive % process: a finite context sequence describes the entities provided by the % environment at each step, the current state is determined by the union of @@ -374,6 +351,7 @@ \end{frame} % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ + \begin{frame}\frametitle{Paige and Tarjan} The algorithm by Kanellakis and Smolka has time complexity \(O(n \cdot m)\). % where n is the number of states and m is the number of transitions @@ -382,7 +360,7 @@ \vspace{1em} - The algorithm is specified over systems with only one action, but other systems can be translated into equivalent ones. + The algorithm is specified over systems with only one action, but other systems can be transformed into equivalent ones. \begin{tblr}{width=\linewidth, colspec={X[r]Q[c]X[l]}} @@ -462,6 +440,18 @@ % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ + \begin{frame}\frametitle{Testing} + During the development to validate the program automated tests and manual integration have been used. + + \begin{figure}[h] + \includegraphics[scale=0.2]{figures/flamegraph_mex10.pdf} + \caption{Profiling using \(\texttt{perf}\) and \(\texttt{flamegraph}\).} + \end{figure} + % 3k lines of tests + \end{frame} + + % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ + \end{section} % ============================================================================== @@ -473,12 +463,16 @@ \begin{frame}\frametitle{Conclusion} Key contributions: \begin{itemize} - \item[$\bullet$] New RS Modeling Platform that aids in analysis and design, implemented in Rust. Provided both a CLI and a GUI.% + \item[$\bullet$] New RS modeling platform that aids in analysis and design, implemented in 30k lines of Rust. Provides a CLI and a GUI.% \item[$\bullet$] Comprehensive Feature Set: simulation of RS, bisimulation of graphs, trace slicing, graph generation with Dot, GraphML and SVG outputs, loop analysis, automated conversion between RS types. - \item[$\bullet$] Improved performance and usability compared to previous software written in prolog and python. + \item[$\bullet$] Improved performance and usability compared to previous software written in Prolog and Python. \end{itemize} \end{frame} % §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ \end{section} + +\begin{frame} + +\end{frame} diff --git a/Presentation/document.pdf b/Presentation/document.pdf index 8878cd0..76856ad 100644 Binary files a/Presentation/document.pdf and b/Presentation/document.pdf differ diff --git a/Presentation/document.tex b/Presentation/document.tex index c8f3eba..156fddb 100644 --- a/Presentation/document.tex +++ b/Presentation/document.tex @@ -84,7 +84,7 @@ %% usage: \ieb{Class:} for simple item %% \ieb[4cm]{Class:} for specific size of box \newcommand{\ieb}[2][2cm]{ - \makebox[#1][l]{\emph{#2}} + \makebox[#1][l]{\emph{#2}} } %% TODO: replace with description environment (? maybe) % section not in table of contents @@ -201,17 +201,17 @@ \titlepage{} \end{frame} -\section*{Table of Contents} -\begin{frame}[allowframebreaks] - \frametitle{Table of Contents} - \tableofcontents -\end{frame} +% \section*{Table of Contents} +% \begin{frame}[allowframebreaks] +% \frametitle{Table of Contents} +% \tableofcontents +% \end{frame} \include{content.tex} -\begin{frame}[allowframebreaks]\frametitle{References} - \printbibliography{} -\end{frame} +% \begin{frame}[allowframebreaks]\frametitle{References} +% \printbibliography{} +% \end{frame} \end{document} diff --git a/Presentation/figures/flamegraph_mex10.pdf b/Presentation/figures/flamegraph_mex10.pdf new file mode 100644 index 0000000..0dd8858 Binary files /dev/null and b/Presentation/figures/flamegraph_mex10.pdf differ