This page contains the software developed and mantained by my group.
Please, feel free to contact me if you want to exploit these tools for your research.
cupSODA
cupSODA is a deterministic "blackbox" simulator of biological systems that exploits the remarkable memory bandwidth and computational capability of GPUs. cupSODA allows to efficiently execute in parallel large numbers of simulations, which are usually required to investigate the emergent dynamics of a given biological system under different conditions. cupSODA works by automatically deriving the system of ordinary differential equations from a reactionbased mechanistic model, defined according to the massaction kinetics, and then exploiting the numerical integration algorithm, LSODA.
Can I use custom C functions? At the moment, NO. We designed cupSODA to be a blackbox simulator. For this reason, it automatically converts reactionbased models into the corresponding system of ODEs exploiting massaction kinetics. We intentionally avoided JIT compilation, because it is an inefficient approach from our point of view. cupSODA does not create any code to be compiled, but exploits a GPUbound parser to interpret the equations.
Can cupSODA run on nonNvidia GPUs? NO. cupSODA is specifically designed to fully leverage CUDA's architecture.
Can cupSODA simulate very large biochemical systems? It depends. cupSODA was developed to fully exploit GPU's highperformance memories, but they are limited resources. If the system is too large, the level of parallelism is strongly reduced. Nevertheless, we are currently testing an alternative simulator  named LASSIE  tailored on the simulation of large scale systems.
cuTauLeaping is a stochastic simulator of biological systems that makes use of GPGPU computing to execute multiple parallel tauleaping simulations, by fully exploiting the Nvidia's Fermi GPU architecture. cuTauLeaping allows a considerable computational speedup, obtained by partitioning the execution of the tauleaping algorithm into multiple separated phases. cuTauLeaping outperforms CPUbased tauleaping implementation when the number of parallel simulations increases, with a breakeven directly depending on the size of the biological system and on the complexity of its emergent dynamics.
Source code for cuTauLeaping is not available for download, at the moment. If you want to test cuTauLeaping for your biological investigations, please send an eemail to nobile AT disco DOT unimib DOT it specifying the following information about the machine you will run cupSODA on:
the operating system;
if you want a 32 or 64 bit executable file;
the GPU model or, alternatively, its compute capability.
With these information, we will produce and send you a binary executable file tailored on your machine, providing the necessary support to get you started.
cuRE is a novel computational methodology for the reverse engineering of fully parameterized kinetic networks, based on the combined use of two evolutionary programming techniques: Cartesian Genetic Programming (CGP) and Particle Swarm Optimization (PSO). In particular, CGP is used to infer the network topology, while PSO performs the parameter estimation task. To the purpose of applying our methodology in routine laboratory environments, we designed cuRE to exploit a small set of experimental time series as target.
In order to reduce the computational burden due to the nested evolutionary techniques, cuRE is accelerated by means of the cupSODA simulator.
Source code for cuRE is not available for download, at the moment. If you want to test cuRE to reverse engineer your biochemical systems, please send an eemail to nobile AT disco DOT unimib DOT it specifying the following information about the machine you will run MemHPG on:
the operating system;
if you want a 32 or 64 bit executable file;
the GPU model or, alternatively, its compute capability.
The definition of computational methodologies for the inference of molecular structural information plays a
relevant role in disciplines as drug discovery and metabolic engineering, since the functionality of a biochemical molecule is determined by its threedimensional structure. MemHPG is an automatic methodology to solve the Molecular Distance Geometry Problem, that is, to determine the best threedimensional shape that satisfies a given set of target interatomic distances. In particular, MemHPG is designed to cope with incomplete distance information derived from Nuclear Magnetic Resonance measurements. To tackle this problem, that is known to be NPhard, we present a memetic method that combines two softcomputing algorithms – Particle Swarm Optimization and Genetic Algorithms – with a local search approach, to improve the effectiveness of the crossover mechanism.
MemHPG is accelerated on GPU, in order to reduce the computational complexity of its memetic hybrid algorithm.
Source code for MemPHG is not available for download, at the moment. If you want to test MemHPG to reconstruct the threedimensional structure of your proteins, please send an eemail to nobile AT disco DOT unimib DOT it specifying the following information about the machine you will run MemHPG on:
the operating system;
if you want a 32 or 64 bit executable file;
the GPU model or, alternatively, its compute capability.
The Petri Net (PN) is a very popular mathematical formalism to describe distributed complex systems, that can be modeled as a bipartite graph in which a set of actors (the set of places) change their states according to the firing of events (the set of transitions). PNs are exploited in many scientific fields, and are traditionally defined by hand, according to the available domain knowledge. Nevertheless, in some cases the topology of the net may be partially (or completely unknown). In some other cases, the topology may result unoptimized. This kind of tasks (inference, optimization, reverse engineering) may be tackled by means of evolutionary computation (EC), which evolve a population of candidate solutions through an iterative process of simulated selection, random mutations and crossovers. Traditional EC techniques, though, are not wellsuited to deal with Petri Nets. For this reason, we developed a new conceptual framework named Evolutionary Petri Net (EPN), which exploits an extension of traditional PNs called Hidden Petri Net (HPN). HPN are designed to allow the application of special genetic operators which can operate directly on PNs.
This EPN package is written in vanilla Python, except for the PyDot package required to save the HPN as image files.
Nobile M.S., Besozzi D., Cazzaniga P., Mauri G.: The foundation of evolutionary Petri nets, Proceedings of the 4th International Workshop on Biological Processes & Petri Nets (BioPPN 2013), a satellite event of PETRI NETS 2013 (G. Balbo and M. Heiner, eds.), CEUR Workshop Proceedings Vol. 988, 6074, 2013
(C) Copyright 2016  Dipartimento Informatica Sistemistica e Comunicazione

Viale Sarca, 336 20126 Milano  Edificio U14 redazioneweb@disco.unimib.it  ultimo aggiornamento di questa pagina 18/09/2015