Home » Research

Category: Research

Research related category.

How do you validate a computational model of a system evolving in time and space?

To be more specific the question should be how do you validate a computational model of a system evolving in time and space relative to a specification describing its expected behaviour? One possible answer to this question is multidimensional spatio-temporal model checking.

To explain what I mean by this let us first describe “traditional” model checking.

Model checking

What?

Model checking is a method for automatically validating a computational model relative to a specification.

How?

The computational model is an abstract representation of a real life system which describes how the system changes its state over time. The state of the system is described by the values of a set of state variables. Therefore in more abstract terms a computational model describes how a set of state variables change their value over time.

The specification comprises a collection of statements encoded in formal languages which can describe how the state of a system changes over time. Such languages are called temporal logics. The reason for employing temporal logics instead of natural languages (e.g. English) is that the former have a fixed syntax and semantics while the latter do not (e.g. metaphors use the same words/syntax but have different semantics depending on the context in which they are used).

Each statement in the specification describes how a subset of state variables are expected to change their value over time. Therefore the model checking problem is to verify if the state variables of a system change their value over time as described in the specification by verifying all possible states of the system.

Why?

Model checking is a method employed for proving that a model is (in)valid relative to a specification because it considers all possible states of the system. This is in contrast to testing based approaches which can only show the presence but not the absence of errors in a model because they usually consider only a subset of the possible system states.

Multidimensional model checking

Traditional model checking approaches usually assume that the state of the system can be represented by a set of real-valued state variables. Consequently the employed temporal logics contain language constructs which enable reasoning about real values (e.g. arithmetic operators +, -, *, /).

However in case of systems which evolve both in time and space there is an additional need to represent the state of the system using multidimensional state variables (e.g. a matrix representing a discretised 2D space). Moreover the employed temporal logic should additionally contain spatial functions which enable reasoning about how geometric properties (e.g. area) of the systems change over time.

In order to address this issue multidimensional spatio-temporal model checking was developed. The main extra features of multidimensional spatio-temporal compared to traditional model checking are:

  • Multidimensional state variables for encoding space;
  • Functions for automatically computing geometric properties of the system at a given state;
  • A quantitative spatio-temporal logic which extends traditional temporal logics with space related functions.

If interested in a more rigurous scientific description of multidimensional model checking please visit the recently published open access paper and website. Examples of the potential impact multidimensional model checking could have on industry are given on my personal PhD project research website.

Linear minimum area enclosing triangle implementation

Problem

Given an arbitrary set of points in the 2D Euclidean plane compute the enclosing triangle having the minimum area.

Minimal area enclosing triangle example
Figure 1: An example of a set of points in the 2D Euclidean plane (highlighted in green) and the corresponding minimal area enclosing triangle (highlighted in red).

Theoretical solution

Based on an elegant geometric characterization provided by Klee and Laskowski O’Rourke developed a linear algorithm for addressing the above problem; see the An optimal algorithm for finding minimal enclosing triangles paper for more details.

Implementation

A detailed description of all required algorithms is provided in the Implementation of linear minimum area enclosing triangle algorithm paper and a C++ implementation of these algorithms is made freely available at https://github.com/IceRage/minimal-area-triangle.

International Study Group for Systems Biology (ISGSB) meeting 2014

Durham University

When and where: 2nd-5th of September, 2014, Durham University, Durham, United Kingdom

“In September Durham University will host the 2014 International Study Group for Systems Biology (ISGSB) meeting “From Cell to Organism”.

Bottom-up Systems Biology starts to connect in various ways to whole-genome, whole-tissue or whole-body approaches, while stochastic models of small networks, such as transcription or a metabolic pathway, give insight into the causes of cell-to-cell variation within a tissue or cell population. At the cell level, genome-scale constraint-based modelling and small-scale kinetic modelling are progressing towards each other and whole-body or whole-organ metabolic models may incorporate detailed kinetic models of relevant pathways.

Hence, the trend and challenge of Systems Biology is to bridge the different scales of complexity. This timely topic has applications in various realms of biology, including human disease, ecology and biotechnology. The meeting welcomes Systems Biology contributions at different scales of complexity, but notably those that bridge between detailed, kinetic modelling and cell (population), tissue or body level. Moreover we welcome contributions that access these problems experimentally, theoretically, computationally or bridge between these three. There will be a special focus session about Ageing, nutrition and metabolism, a topic in which different scales and their relation are of utmost importance.

This meeting welcomes both biologists, computational modellers and interdisciplinary researchers in the systems biology field.” (Source: ISGSB 2014 webpage)

How to setup Buildbot slave on Ubuntu PC?

Remark: This tutorial describes how to setup Buildbot 0.8.9 slave on a Ubuntu 14.04 LTS PC, but it can be easily adapted for other versions of Buildbot and/or Linux distributions.

Step 1: Create a new script

All required steps to setup Buildbot 0.8.9 slave will be written in a script called BuildbotSlaveSetup.sh (assuming you do not have a file with that name in the current folder already).

To create the file write on the command line the following (excluding the “$” symbol):
$ touch BuildbotSlaveSetup.sh

Step 2: Install dependencies and Buildbot slave

Open the script using your favourite text editor. Assuming this is vi(m) write on the command line the following (excluding the “$” symbol):
$ vim BuildbotSlaveSetup.sh

Next write the contents of the script (i.e. copy and paste the text below into the script):

/scripts/blob/master/scripts/linux/BuildbotSlaveSetup.sh
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
#!/bin/bash
 
###########################################################
#
#
# Install script for Buildbot slave 0.8.9
#
#
##########################################################
 
#--------------------------------------------------------
# Install dependent packages
#--------------------------------------------------------
 
# Inform the user about the next action
echo "Installing the dependent packages python2.7 python-setuptools python-pip...";
 
# Execute action
sudo apt-get -y install python2.7 python-setuptools python-pip
 
 
#--------------------------------------------------------
# Install Buildbot slave
#--------------------------------------------------------
 
# Inform the user about the next action
echo "Installing Buildbot slave...";
 
# Execute action
sudo pip install buildbot-slave
 
# Inform user that Buildbot slave was successfully installed
echo "Buildbot slave was successfully installed."

The comments in the script should provide enough details to understand what each instruction does.

Step 3: Execute script

Add execution permission to the script BuildbotSlaveSetup.sh using the following (excluding the “$” symbol):
$ chmod +x BuildbotSlaveSetup.sh

Finally execute the script as below (excluding the “$” symbol):
$ ./BuildbotSlaveSetup.sh

How to setup Buildbot master on Ubuntu PC?

Remark: This tutorial describes how to setup Buildbot 0.8.9 master on a Ubuntu 14.04 LTS PC, but it can be easily adapted for other versions of Buildbot and/or Linux distributions.

Step 1: Create a new script

All required steps to setup Buildbot 0.8.9 master will be written in a script called BuildbotMasterSetup.sh (assuming you do not have a file with that name in the current folder already).

To create the file write on the command line the following (excluding the “$” symbol):
$ touch BuildbotMasterSetup.sh

Step 2: Install dependencies and Buildbot master

Open the script using your favourite text editor. Assuming this is vi(m) write on the command line the following (excluding the “$” symbol):
$ vim BuildbotMasterSetup.sh

Next write the contents of the script (i.e. copy and paste the text below into the script):

/scripts/blob/master/scripts/linux/BuildbotMasterSetup.sh
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
#!/bin/bash
 
###########################################################
#
#
# Install script for Buildbot master 0.8.9
#
#
##########################################################
 
#--------------------------------------------------------
# Install dependent packages
#--------------------------------------------------------
 
# Inform the user about the next action
echo "Installing the dependent packages python2.7 python-setuptools python-pip...";
 
# Execute action
sudo apt-get -y install python2.7 python-setuptools python-pip
 
 
#--------------------------------------------------------
# Install Buildbot master
#--------------------------------------------------------
 
# Inform the user about the next action
echo "Installing Buildbot master...";
 
# Execute action
sudo pip install buildbot
 
# Inform user that Buildbot master was successfully installed
echo "Buildbot master was successfully installed."

The comments in the script should provide enough details to understand what each instruction does.

Step 3: Execute script

Add execution permission to the script BuildbotMasterSetup.sh using the following (excluding the “$” symbol):
$ chmod +x BuildbotMasterSetup.sh

Finally execute the script as below (excluding the “$” symbol):
$ ./BuildbotMasterSetup.sh

CMSB 2014 The 12th Conference on Computational Methods in Systems Biology

Manchester Institute of Biotechnology

When and where: 17th-19th of November, 2014, Manchester Institute of Biotechnology, University of Manchester, Manchester, United Kingdom

CMSB 2014 is an opportunity to hear about the latest research on the analysis of biological systems, networks, and data. The conference brings together computer scientists, biologists, mathematicians, engineers, and physicists interested in a system-level understanding of biological processes. The event will be held at the Manchester Institute of Biotechnology, part of The University of Manchester. (Source: CMSB 2014 webpage)

International Synthetic and Systems Biology Summer School

When and where: 15th-19th of June, 2014, Taormina – Sicily, Italy

Recent advances in DNA synthesis have increased our ability to build biological systems. Synthetic Biology aims at streamlining the design and synthesis of robust and predictable biological systems using engineering design principles. Designing biological systems requires a deep understanding of how genes and proteins are organized and interact in living cells: Systems Biology aims at elucidating the cellular organization at gene, protein and network level using computational and biochemical methods.

The Synthetic and Systems Biology Summer School (SSBSS) is a full-immersion course on cutting-edge advances in systems and synthetic biology with lectures delivered by world-renowned experts. The school provides a stimulating environment for doctoral students, early career researches and industry leaders. Participants will also have the chance to present their results, and to interact with their peers, in a friendly and constructive environment. (Source: ISSBSS 2014 webpage).

CMSB 2013 The 11th Conference on Computational Methods in Systems Biology

IST Austria, Klosterneuburg, Austria

When and where: 23rd-25th September 2013, IST Austria, Klosterneuburg, Austria

CMSB 2013 is an opportunity to hear about the latest research on the analysis of biological systems, networks, and data. The conference brings together computer scientists, biologists, mathematicians, engineers, and physicists interested in a system-level understanding of biological processes. The event will be held at IST Austria. (Source: CMSB 2013 webpage).

Conference On Spatial Information Theory 2013

When and where: 2nd-6th September 2013, Royal Hotel, Scarborough, North Yorkshire, UK

COSIT (Conference On Spatial Information Theory) was established in 1993 and aims to bring together researchers from different disciplines for an intensive scientific exchange. Focusing on the most innovative and significant recent contributions in the domain of spatial information theory, the conference is designed as a single track meeting. (Source: COSIT 2013 webpage).

Petri Nets 2013

Milano Bicocca University, Milano, Italy

When and where: 24-28th of June, 2013, Universita degli Studi di Milano-Bicocca

The 34th annual international Petri Net conference will take place in Milano from June 24th to 28th, 2013. The language of the conference is English, and its proceedings will be published by Springer-Verlag in Lecture Notes in Computer Science. All accepted papers will be considered for the “Outstanding Paper” award(s). Papers presenting original research on application or theory of Petri nets, as well as contributions addressing topics relevant to the general field of distributed and concurrent systems are sought (Source: Petri Nets 2013 webpage).