Inizio della pagina -
Visita la Versione ad elevata leggibilità
Vai al Contenuto della pagina
Vai alla Fine dei contenuti
Vai al Menu Principale
Vai alla Barra di navigazione (sei in)
Vai al Menu di navigazione (albero)
Vai alla Lista dei comandi
Vai alla Lista degli approfondimenti
Vai al Menu inferiore
Logo Ateneo

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 is a deterministic "black-box" 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 reaction-based mechanistic model, defined according to the mass-action kinetics, and then exploiting the numerical integration algorithm, LSODA.

The latest release of cupSODA is available for download on GITHUB.

Frequently asked questions about cupSODA:

  • Can I use custom C functions?
    At the moment, NO. We designed cupSODA to be a black-box simulator. For this reason, it automatically converts reaction-based models into the corresponding system of ODEs exploiting mass-action 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 GPU-bound parser to interpret the equations.
  • Can cupSODA run on non-Nvidia 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 high-performance 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.
  • Can cupSODA only simulate biochemical systems based on mass-action kinetics?
    Currently, yes. We are working on a novel and more general symbolic integrator, in order to extend the support to arbitrary kinetics.

Nobile M.S., Cazzaniga P., Besozzi D., Mauri G.: GPU-accelerated simulations of mass-action kinetics models with cupSODA, The Journal of Supercomputing, vol. 69, issue 1, pp.17-24, 2014


cuTauLeaping is a stochastic simulator of biological systems that makes use of GPGPU computing to execute multiple parallel tau-leaping simulations, by fully exploiting the Nvidia's Fermi GPU architecture. cuTauLeaping allows a considerable computational speedup, obtained by partitioning the execution of the tau-leaping algorithm into multiple separated phases. cuTauLeaping outperforms CPU-based tau-leaping implementation when the number of parallel simulations increases, with a break-even directly depending on the size of the biological system and on the complexity of its emergent dynamics.

The latest release of cuTauLeaping is available for download on GITHUB.

Nobile M.S., Cazzaniga P., Besozzi D., Pescini D., Mauri G.: cuTauLeaping: a GPU-powered tau-leaping stochastic simulator for massive parallel analyses of biological systems, PLoS ONE 9(3): e91963, 2014


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 e-email 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.

Nobile M.S., Besozzi D., Cazzaniga P., Mauri G., Pescini D.: Reverse engineering of kinetic reaction networks by means of cartesian genetic programming and particle swarm optimization, Proceedings of the 2013 IEEE Congress on Evolutionary Computation (CEC2013), Cancun (Mexico), Vol. 1, pp. 1594–1601, 2013

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 three-dimensional structure. MemHPG is an automatic methodology to solve the Molecular Distance Geometry Problem, that is, to determine the best three-dimensional shape that satisfies a given set of target inter-atomic 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 NP-hard, we present a memetic method that combines two soft-computing 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 three-dimensional structure of your proteins, please send an e-email 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.

Nobile M.S., Citrolo A.G., Cazzaniga P., Besozzi D., Mauri G.,: A memetic hybrid method for the molecular distance geometry problem with incomplete information, Proceedings of the 2014 IEEE Congress on Evolutionary Computation (CEC2014), Beijing (China), pp. 1014–1021, 2014

Evolutionary Petri Nets

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 well-suited 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.

Download EPN package from PyPi

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, 60-74, 2013

Nessun approfondimento presente per questa pagina

Google Translate
Translate to English Translate to French Translate to German Translate to Spanish Translate to Chinese Translate to Portuguese Translate to Arabic
Translate to Albanian Translate to Bulgarian Translate to Croatian Translate to Czech Translate to Danish Translate to Dutch Translate to Finnish Translate to Greek Translate to Hindi
Translate to Hungarian Translate to Irish Translate to Japanese Translate to Korean Translate to Norwegian Translate to Polish Translate to Romanian Translate to Russian Translate to Serbian
Translate to Slovenian Translate to Swedish Translate to Thai Translate to Turkish

(C) Copyright 2016 - Dipartimento Informatica Sistemistica e Comunicazione - Viale Sarca, 336
20126 Milano - Edificio U14 - ultimo aggiornamento di questa pagina 11/11/2016