% \VignetteIndexEntry{SQUADD HOW-TO} % \VignetteKeyword{logic} % \VignetteKeyword{network} \documentclass[a4paper]{article} \usepackage[latin1]{inputenc} \usepackage{url} \usepackage{Sweave} \usepackage{graphicx} \usepackage[normal,small,bf]{caption} \begin{document} \SweaveOpts{prefix.string = Fig/test, eps = FALSE, pdf = TRUE} \title{SQUAD simulation results analysis using the SQUADD package} \author{Martial Sankar} \maketitle \section{SQUADD: the SQUAD add-on} Logical modeling is increasingly popular method in system biology to explain and predict the behavior of a complex process (differentiation, cell growth, division etc\dots) through their regulatory and signalling mechanisms. The SQUAD software (Standardized Qualitative Dynamical Systems) is dedicated to the analysis of Boolean logical models \cite{DiCara}. It was the first tool to combine the traditional Boolean approach and a continuous system. This novel feature permits the dynamical analysis of regulatory network in the absence of kinetic data \cite{Sanchez-Corrales}, \cite{Philippi}, \cite{DiCara}. In order to improve this approach, we provide the R package SQUADD, the SQUAD add-on. This extension permits: (i) to simplify the visualization of the initial SQUAD simulation output, (ii) to generate qualitative predictions of the component change between two conditions and (iii) to assess the coherence of a network model using PCA analysis. \section{Example of SQUAD Simulation} \begin{enumerate} \item SQUAD software can be downloaded at \url{http://www.enfin.org/wiki/doku.php?id=enfin:squad:start}. \item Install and open it. \item Create a network model or use the xml file, containing a sample model \textit{complete\_model\_511.xml} for the following steps. Load it in SQUAD. \item To visualize the network, click on the \textsf{View} tab. \item Then \textsf{Advance}, then \textsf{Perturbator}. \item Click on \textsf{Edit Perturbator} to set the pertubation on your model or load the provided pertubation file, \textit{pert\_samples\_m511.prt} if you use the sample model. \item Click \textsf{Initialize}, then click \textsf{run} to run simulations with perturbations. \item When the simulation window appears, press \textsf{Ctrl+T} to open the result table and save it (\textsf{Ctrl+S}) into a folder. When naming files, \textbf{add an index number in the file name} (i.e. \textit{1\_lof.txt}, \textit{2\_rescue.txt} etc\dots). This folder should contain six files, one for each perturbated model simulation (for the sample network, folder and files can be found in the zip file, \textit{simRes.zip}, or in the data folder of the SQUADD package). \end{enumerate} \section{Example of SQUADD analysis} \label{sect1} <>= library(SQUADD) @ The package was built using S4 classes and methods. Before launching a function, the user should call the constructor to construct an instance of the Class \textsf{\textit{SquadSimResServiceImpl}}. The constructor is: \textsf{\textit{simResService()}}. Do not forget to use the \textsf{\textit{help()}} function to obtain R help. To obtain a table of fitted values, construct the object of Class \textsf{\textit{SquadSimResServiceImpl}}: <>= # construct instance of SquadSimResServiceImpl fpath <- system.file("extdata", package="SQUADD") folder <- file.path(fpath,"data_IAA") sim <- simResService (folder=folder, time= 45, ncolor=5, legend= c("ARF(a)", "ARF(i)", "AR_Genes", "Aux/IAA", "BES1/BZR1","BIN2","BR","BRI1BAK1","BRR_Genes","BRX","BR_Biosynthesis","BZR1","DO","IAA","IAA_Biosynthesis","NGA1", "PIN", "SCFTir1","StimAux", "StimBR"), indexDeno=1, method="lowess") @ \subsection{Display the simulation matrix} The \textsf{\textit{plotSimMatrix}} method permits to analyse the individual node's behavior during each perturbated condition. The shape of the response curve reflects the network topologies and the initial SQUAD parameters (Figure 1). The user can select the node to analyse by filling the \textsf{\textit{selectNode}} attribute of the object. \begin{figure} \begin{center} <>= sim["selectNode"] <-c("DO","IAA_Biosynthesis","BR_Biosynthesis", "IAA", "BR") plotSimMatrix(sim) @ \end{center} \caption{\label{fig:one} Simulation matrix for the selected five nodes, DO, IAA Biosynthesis, BR Biosynthesis, IAA and BR (respectively in black, red, green, blue, cyan). The columns represent the nodes, the rows represent the conditions. Each cell shows the specific response curve for the corresponding conditions. The red line is the least-square fitted line. It indicates the tendancy of the response.} \end{figure} \newpage \subsection{Obtain the matrix of fitted values} The \textsf{\textit{getFittedTable}} method permits to obtain a matrix of the interpolated value of the response curve at a user-defined time point. The interpolation can be done either linearly or locally (lowess). Users can choose one of them by filling the \textsf{\textit{method}} attribut of an object of Class \textsf{\textit{SquadSimResServiceImpl}}. In this example, the values were interpolated using the lowess method at t$=$45 (see section \ref{sect1}). <>= tab <- getFittedTable(sim) @ \subsection{Display the prediction heatmap} Biological experiments generate more and more quantitative data. However, classical logical models are prone to reflect the qualitative nature of a system, but fail to predict the outcome of biological experiments that yield quantitative data. SQUAD was the first software to assess this issue. It was built around a standardized method \cite{MendozaAndXenarios} that translate a Boolean model into a continuous one. \newline The SQUADD package through the \textsf{\textit{plotPredMap}} method takes full advantage of this novel feature. It generates a heatmap of predictions of the component's activation state change between two experiments. A ratio is therefore calculated between the interpolated values of the current condition (numerator) and a reference condition (denominator). The latter is chosen by setting the \textsf{\textit{indexDeno}} attribut. In this example we chose \textsf{\textit{indexDeno}}$=$1 (see section \ref{sect1}), which corresponds to the index of the first result file \textit{brx\_1\_normal.txt} (Figure 2). <>= plotPredMap(sim) @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{\label{fig:two} Prediction heatmap. The rows represent the ratios between conditions, the columns represent the network components. The blue intensities (from white to dark blue) show the activation patterns (respectively, from under-activated to over-activated).} \end{figure} \newpage \subsection{Display the correlation circle} We suggest to use a principal component analysis (PCA) to assess the coherance of the prediction supplied by one model. PCA can be visualized as a correlation circle, which can be displayed by applying the \textsf{\textit{plotCC}} method of the Class \textsf{\textit{SquadSimResServiceImpl}} (Figure 3).\newline <>= # Fill the field conditionList of the object sim sim["conditionList"] <- c("Normal", "brxlof", "BRrescue","brxarfilof","brxarfiBRrescue", "brxgof") plotCC(sim) @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{\label{fig:three} Correlation circle. The vectors represent the variables. The variables correspond to the perturbated conditions (Normal (wildtype), brxlof (brx loss of function), BRrescue (BR rescue the brx loss of function phenotype ), brxarfilof (double loss of function mutant brx arfi), brxarfiRescue (BR rescue the double mutant phenotype), brxgain (BRX gain of function)). The first two PCs explained 80.3\% of the variation. The angle between the vectors indicate the correlation between the variables. The closer two vectors are, the better the correlation is. In this figure, the angle between the wild type condition and the the BRX loss of function conditions (brxlof and brxarfilof) are very close meaning that the correlation exists between the two variables. This is contradictory with biological findings , where loss of function mutants display shorter root \cite{Scacchi}. Moreover, the angle between the normal and the rescue conditions is more than 90 degrees, meaning no correlation. These results demonstrate that the model coherence is weak, meaning that the model still needs to be refined (change interaction sign, remove or add nodes etc\ldots).} \end{figure} \newpage \section{Session info} <<>>= sessionInfo() @ \section{Perspectives} \begin{itemize} \item[*] better access to the plot function parameters \item[*] Improve plotCC: Title to define, label of vector to localize \item[*] Improve the simulation matrix: set row names (conditions) and column names (selected nodes). \end{itemize} \newpage \section{Reference} \bibliographystyle{plain} \bibliography{biblio} \end{document}