In my archaeological exploration of old computer files, I came across another simple but exciting Amiga Basic program I programmed in 1989. It is named “Foglie”, the Italian name for leaves. It was an attempt to explore some ideas of functional plant morphology modelling. The stimulus comes after the reading of the paper by Karl J. Niklas on issue 213 of Le Science (the Italian edition of the Scientific American magazine [1]). The article titled “Computer-simulated plant evolution” described the modelling of plants to study their interaction with the environment. It was a fascinating paper; still, simple and primitive graphics caught my imagination. Nowadays, the field of digital morphology has come to an age (just to mention one, Avatar), and we can have an idea of this progress in the level of realism in movies, video games, and TV programs. However, the organism’s form and shape have always caught my curiosity and interest. The structure of leaf nervation was an intriguing pattern related to my acquaintance with the fascinating fractals objects, another recurrent topic in the pages of scientific magazines of the period.
Continue readingProgramming
Awk Programming III: the One-Dimensional Cellular Automaton
Cellular automata (CA) is a vast and interesting topic of computer science and mathematics with important applications in many areas of science. Continue reading
Bioinformatics Tools for Protein Engineering: The Mutagenesis Assistant Program
The Mutagenesis Assistant Program (MAP) is a statistical tool used to benchmark random mutagenesis methods at the protein level. This blog summarises the key aspects of this tool. A detailed description of the algorithm used in this tool is given in the articles and a book chapter by the authors and collaborators [1,2,4]. Development began in 2005 while I was working at the International University of Bremen, Germany. I collaborated with Prof. Ulrich Schwaneberg (now at RWTH Aachen, Germany) and his Ph.D. student Dr. Tuck Seng Wong (now a senior lecturer at the University of Sheffield, UK). We were studying enzymes in organic solvents. As our collaboration progressed, I became intrigued by the experimental method of directed evolution, which improves protein performance. This method cleverly uses nature’s billions of years of evolution to all living organisms on Earth. By applying these methods, we can optimise and engineer proteins for enhanced performance. Bacteria serve as the factory for this process, capable of rapid reproduction within a coffee break. You provide the blueprint of your idea in the form of DNA genes, and they produce the required protein nanomachine. In this generation, you can tweak their production machinery using random mutagenesis to introduce errors in the nanomachines’ structure, hopefully increasing their performance. The next step is designing a method to select only the bacteria mutants containing the optimised nanomachine. These selected mutants can undergo further rounds of mutation to further improve the protein.
Continue readingLa programmazione in Awk II: Life in a Shell
Il gioco Life fu inventato negli anni ’70 dal prolifico matematico John H. Conway (vedi [5] per la sua biografia) ed è diventato famoso dopo la pubblicazione di Martin Gardner nella sua rubrica di matematica amatoriale sulla rivista Scientific American [1,2]. Il gioco è basato sugli automi cellulari concepiti da Konrad Zuse e Stanislaw M. Ulam all’inizio degli anni ’50, e poi adottati da John von Neumann per il suo studio sugli automi auto-replicanti [2,3]. Un automa cellulare è composto da unità (celle) interagenti disposte in una griglia quadrata. Il sistema si evolve in cicli di vita in cui ogni cella cambia stato e nuove celle possono nascere e altre possono sopravvivere o, eventualmente, morire. Lo stato di ogni cella nel ciclo successivo è definito dall’interazione con le celle adiacenti in base a delle regole. L’interazione avviene con i primi vicini di ciascuna cella. Come mostrato nella Figura 1, è possibile utilizzare due tipi di intorni (cerchi) della cella centrale. Il gioco Life usa il tipo di proposto da Moore.
Awk Programming II: Life in a Shell
The game of Life was invented in the ’70 by the prolific mathematician John H. Conway (on the 11/4/2020 sadly J.H. Conway passed away at the age of 82 after having contracted the COVID-19, see [5] for his biography). The game becomes popular after Martin Gardner described it in his famous column in the Scientific American magazine [1,2]. The game is based on cellular automata conceived by Konrad Zuse and Stanislaw M. Ulam at beginning of the ’50 and then adopted by John von Neumann for his study on self-replicating automata [2,3]. A cellular automaton is composed of interacting units (cells) arranged in a square grid. The system evolves in life cycles where each cell change status and new cells can be born, and others can survive or eventually die. The status of each cell in the next cycle is defined by the interaction with their neighbor cells according to a given set of rules. The interaction occurs with the first neighbors of each cell. As shown in Figure 1, two type of neighbor’s cells (circles) can be used, the game of Life uses the Moore type neighborhood.
Continue readingPERL Programming III: Modelling DNA Thermodynamics
After a long pause, the adventure in the PERL programming language series continues with another example of biophysics and molecular biology science application.This time, we are going to make a program to model the effect of the temperature on DNA stability in solution.
The effect of temperature DNA structure integrity plays an important role in molecular biology applications. For example, the DNA amplification method based on polymerase (the PCR method) is based on a series of temperature cycles to separate the two strand of DNA to replicate. DNA primers are used to initiate the process and the knowledge of their melting temperature (Tm) play an important role in optimizing the DNA amplification process.
The first attempts to create a model of DNA thermodynamics date back to the beginnings of 1960. Studies pionered by the groups of Zimm [1] and Tinoco [2], have shown that the relative stability of a double-stranded DNA molecule depends primarily on the nature of the nearest-neighbor bases along the sequence. This finding brought to the formulation of a simple mathematical model (called the nearest-neighbor (NN) model) to predict relative stabilities of double stranded DNA according to the nucleotide sequence [see Cantor]. Subseguently, the NN model was further improved by the contribution of several research groups. In particular, Santalucia and co-workers. proposed a set of parameters for the NN model that provides an excellent prediction of the thermodynamic properties of short DNA homo oligonucleotides and are commonly used to calculate the stability of DNA primers used for PCR applications.
In this third article on PERL programming, I will give some indication on how to implement a simple version of the NN model. To make more fancy the programming task, we are also going to provide the program with a simple Graphical user interface using PERL/Tk.
Continue readingRetro Programming Nostalgia: il Commodore Amiga e la Visualizzazione Molecolare
Italia anno 1989, era l’era del Commodore Amiga con la sua demo di BOING, la pallina bianca e rossa che rimbalzando ha conquistato il cuore di milioni di giovani che hanno vissuto la rivoluzionaria invenzione del personal computer.
Continue readingLa Programmazione della Unix Shell
Questo blog contiene una breve introduzione alla programmazione della Unix shell csh/tcsh. Per altri tipi di shells, il lettore può consultare manuali dedicati a questo argomento riportati nella bibliografia alla fine di questa questo blog. Continue reading
Introduzione alla Dinamica Molecolare

-
Lex. I. Corpus omne perseverare in statu suo quiescendi vel movendi uniformiter in directum, nili quatenus a viribus impressis cogitur statum illum mutare.
- Lex. II. Muationem motus proportionalem esse vi motrici impressae, et fieri fecundum lineam rectam qua vis illa imprimitur.
-
Lex. III. Actioni contrariam semper et equalem esse reactionem: sive corporum duorum actiones in se mutuo semper esse aequales et in partes contrarias dirigi.
Isaac Newton.
Philosophiae Naturalis Principia Mathematica.
London, 1686.
Nel 1648 Isaac Newton diede alle stampe la sua prima edizione dei Principia Mathematica, uno dei più grandi capolavori scientifici di tutti i tempi. Nelle prime pagine di questa summa scientifica si trovano enunciate le famose tre leggi che portano il suo nome, dalle quali ha avuto inizio la fisica-matematica classica. Continue reading
Parallel computing and molecular dynamics simulations
The recent technical developments in parallel computing have made available large parallel computing facilities at relatively contained costs that have stimulated an intense developing activity to realize efficient parallel programs for the scientific and technical calculation. One of the scientific fields that most benefit from these developments is computational chemistry and in particular Molecular Dynamics (MD). The reason of that is related to the increasing interest in the study, with this technique, larger molecular systems for long simulation times. Continue reading
