To learn the foundations of computational models and programming languages for bioinformatics, a scientific discipline which stands between computer science and biology. To see the main applications of bioinformatics. To learn some fundamental tools for modeling biological problems and for the implementation of these tools by using some of the most used languages for Systems Biology.
This course consists of a series of seminars on the main applications of bioinformatics, followed by lectures on Constraint Logic Programming, showing how to model some biological problems, and a course on Python programming, with programming practice in the laboratory.
Intermediate and final examination/project:
Final written exam on Python programming (this part can be substituted by intermediate written tests), plus oral discussion on some further reading based on the seminars or on a programming project (which can be done also in small groups of students, or individually) in Python, or in Constraint Logic Programming (in any case using a language seen in the course). The project consists of realizing a computational model for one of the biological problems presented in the seminars or during the course. The project can be substituted by a written exam on Prolog programming, which can also be passed by means of some intermediate tests.
This course will present some of the most important applicative issues and a few computational models for bioinformatics. The course begins with a short series of seminars on some of the main applications and computational models for bioinformatics. Then it will be shown that concurrent constraint programming gives rise to a computational programming framework suitable for modeling in a natural way bioinformatic applications. Finally there will be a small course on the programming language Python, which is one of the most widely used languages for biological applications.
INITIAL SERIES OF SEMINARS ON APPLICATIONS AND COMPUTATIONAL MODELS FOR BIOINFORMATICS
Introduction to the course.
-Introduction to biology in the post-genomic era.
-Biological sequence alignment.
-The structure of the proteins, an interdisciplinary research field.
-A model for biochemical equations.
-Computational models for verifying biological systems.
-Next generation sequencing
-The research on Vaccines.
The constraint logic programming paradigm.
Declarative programming vs imperative programming. Terms and constraints. Tree terms. Reals. Finite domains. The constraint store. Non deterministic computations and backtracking. Constraint satisfaction, propagation and constraint handling rules. The concurrent constraint paradigm (CCP). Realization of computational models for systems biology in CCP. Some examples of models. A model of sets of biochemical equations in timed concurrent constraint programming. Representation of biological pathways.
Programming in Python, a language for bioinformatics, with exercises in the laboratory.
The Python interpreter. Primitive domains. Numbers, strings, lists. Control flow programming. Functions definition. Tuples, sequences, abstract data types in Python. Modules. Input and output. Classes, class instances, methods. Class inheritance. Multiple inheritance. The system class for regular expressions. Presentation of some of the tools available in biopython.
1) Dan E. Krane, Michael L. Raymer, Fundamental Concepts of Bioinformatics, Pearson, 2003
2) Tutorial on Python, freely available online. http://docs.python.org/2/tutorial/
3) The Logic Programming Paradigm and Prolog, by K. Apt. (Tutorial: see the material for the course, following the above link)