Skip to main content
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
e-Learning - UNIMIB
  • Home
  • More
Listen to this page using ReadSpeaker
English ‎(en)‎
English ‎(en)‎ Italiano ‎(it)‎
 Log in
e-Learning - UNIMIB
Home
Percorso della pagina
  1. Science
  2. Bachelor Degree
  3. Informatica [E3102Q - E3101Q]
  4. Courses
  5. A.A. 2024-2025
  6. 3rd year
  1. Introduction To Bioinformatics
  2. Summary
Insegnamento Course full name
Introduction To Bioinformatics
Course ID number
2425-3-E3101Q116
Course summary SYLLABUS

Course Syllabus

  • Italiano ‎(it)‎
  • English ‎(en)‎
Export

Obiettivi

Alla fine del corso lo studente avrà compreso le principali problematiche computazionali e tecniche algoritmiche in bioinformatica. Sarà in grado di scrivere programmi Python di modeste dimensioni per risolvere problemi in bioinformatica utilizzando anche dati presenti su basi di dati pubbliche

Conoscenza e comprensione

Questo insegnamento fornisce le conoscenze basilari e capacità di comprensione relativamente a:

  • Algoritmi su sequenze biologiche.
  • Strutture dati per l'indicizzazione di sequenze
  • Algoritmi per la ricostruzione di storie evolutive
  • Shell di Unix
  • Programmazione in Pyhton in campo bioinformatico
  • Formati di file usati in bioinformatica

Capacità di applicare conoscenza e comprensione

Alla fine dell'insegnamento gli studenti saranno in grado di:

  • Comprendere quali algoritmi e strutture dati utilizzare per affrontare alcuni problemi in bioinformatica
  • Scrivere programmi in Python in campo bioinformatico
  • Costruire semplici pipeline che integrano Python e la shell Unix

Contenuti sintetici

Principali problemi e algoritmi in bioinformatica. Pattern Matching. Allineamento di sequenze. Sequenziamento di DNA. Storie evolutive. Gestione di dati e basi di dati biologici.

Programma esteso

  1. Algoritmi e strutture dati per il pattern matching. Algoritmi di Karp-Rabin, Dömölki.
  2. Suffix tree e suffix array: gestione, pattern matching e loro utilizzo per la ricerca della sottostringa più lunga.
  3. Allineamento di due sequenze. Allineamento globale, locale, con banda. Costi di gap lineare e generico. Allineamento multiplo.
  4. Sequenziamento di DNA. Grafi di overlap e grafi di de Bruijn.
  5. Alberi evolutivi. Modelli a partire da caratteri: algoritmo di Gusfield per la filogenesi perfetta. Modelli a partire da distanze: distanze ultrametriche e distanze additive. Algorithmi UPGMA e Neighbor Joining. Cenni di ricostruzione tramite massima verosimiglianza
  6. Genotipi e Aplotipi. Distinzione fra singolo individuo e pedigree.
  7. Formati di file di dati biologici
  8. Metodologie di sviluppo software open source per la bioinformatica
  9. Cenni di shell
  10. Introduzione a Python.
  11. Pandas.
  12. Biopython

Prerequisiti

Complessità in tempo e spazio.
Strutture dati fondamentali: liste, array, alberi di ricerca, dizionari
Algoritmi di ordinamento: radix sort, merge sort
Gerarchia delle memorie
Capacità di scrivere un breve programma in qualunque linguaggio di programmazione

Modalità didattica

Lezioni in aula e attività di laboratorio. Viene utilizzata la piattaforma di e-learning per integrare lo studio individuale tramite arricchimento delle attività in aula e per autovalutazioni in itinere del livello di preparazione ottenuto.

Tutte le attività sono tenute in presenza e non vengono registrate nè trasmesse in streaming. L'insegnamento è erogato in Italiano. Le attività previste sono:

  • 14 lezioni da 2 ore svolte in modalità erogativa nella parte iniziale ed in modalità interattiva nella parte successiva
  • 24 attività di laboratorio da 2 ore svolte in modalità erogativa nella parte iniziale ed in modalità interattiva nella parte successiva

Materiale didattico

Il libro di testo seguito per quasi tutte le lezioni è “Algorithms on Strings, Trees and Sequences”, di Daniel Gusfield, Cambridge Univ. Press. La biblioteca tiene alcune copie del libro di testo, anche come ebook.

Il libro "An Introduction to Bioinformatics Algorithms" di N. Jones, P. Pevzner viene usato esclusivamente come approfondimento per la parte di ricostruzione di filogenesi e di sequenziamento.

Il libro "Theoretical Evolutionary Genetics" di J. Felsenstein viene usato esclusivamente come approfondimento per la parte di ricostruzione di filogenesi. Un libro analogo è Population and Quantitative Genetics by Graham Coop.

Per quanto riguarda Python fare riferimento a Pensare in Python di A. B. Downey (versione inglese Think Python).

Per la parte relativa a Pandas il libro di riferimento è Python Data Science Handbook di VanderPlas

Periodo di erogazione dell'insegnamento

primo semestre

Modalità di verifica del profitto e valutazione

La verifica dell'apprendimento consiste di una prova scritta e di una parte progettuale.

La prova scritta è individuale, basata su domande a risposta aperte relativa alle nozioni presentate nel corso relative ai contenuti di natura algoritmica. La prova scritta dura un'ora e contiene 4 domande, ma bisogna rispondere solo a 3 delle 4 domande.
La prova scritta viene valutata in base alla correttezza e completezza delle risposte, e sulla capacità di individuare gli elementi essenziali di un argomento.

La parte progettuale consiste nella scrittura di un programma in Python e viene svolta individualmente, con successiva presentazione del lavoro fatto. Il testo del progetto è lo stesso per tutti gli studenti ed è valido per una sessione.

La discussione del progetto avviene dopo avere superato la prova scritta ed entro un anno da tale superamento.

La valutazione finale viene ottenuta tramite media pesata delle votazioni ottenute nelle due parti, con peso 50% per la prova scritta e 50% per il progetto, ma entrambe le parti devono avere valutazione positiva.
Si ricorda che è necessario essere iscritti alle prove d'esame tramite segreterie online. Non ci saranno eccezioni al riguardo.

Non sono previste prove in itinere.

Orario di ricevimento

Il ricevimento è online e su appuntamento: https://www.unimib.it/gianluca-della-vedova

Sustainable Development Goals

SALUTE E BENESSERE
Export

Aims

The student will know some fundamental problems and algorithms in bioinformatics. The student will be able to write small Python programs to solve some problems in bioinformatics, using also data originating from publicly available databases.

Knowledge and understanding

This course provides basic knowledge and understanding on:

  • Algorithms on biological sequences
  • Data structures to index biological sequencing
  • Algorithms for phylogeny reconstruction
  • Unix shell
  • Python programming in bioinformatics
  • File Formats used in bioinformatics

Ability to apply knowledge and understanding

At the end of the course the students will be able to:

  • decide which algorithms and data structures can be used to solve some problems in bioinformatics
  • write Python programs for bioinformatics problems
  • write small pipelines that use Python and the Unix shell

Contents

Fundamental problems and algorithms in bioinformatics. Pattern matching.Sequence Alignment. DNA sequencing. Evolutionary histories. Managing biological data and databases.

Detailed program

  1. Pattern matching: Algorithms and Data Structures. Karp-Rabin algorithm, Dömölki algorithm.
  2. Suffix trees and suffix arrays: management, pattern matching and applications to the longest substring problem.
  3. Sequence Alignment of two strings. Global alignment, local alignment, band alignment. Linear and generic gap cost. Multiple sequence alignment.
  4. DNA Sequencing. Overlap graphs and de Bruijn graphs.
  5. Evolutionary trees. Character-based models. Gusfield's algorithm for the perfect phylogeny. Distance-based models: ultrametrics and additive distance. UPGMA and Neighbor Joining algorithms. Max likelihood.
  6. Genotypes and haplotypes. Single individual and pedigree cases.
  7. Biological Data: file formats
  8. Bionformatics open source software development methodologies
  9. Linux shell
  10. Introduction to Python
  11. Pandas
  12. Biopython

Prerequisites

Time and space complexity
Basic data structures: lists, arrays, search trees, dictionaries
Sorting algorithms: radix sort, merge sort
Memory hierarchy
Wiriting a short program, in any programming language

Teaching form

Lectures and Laboratory. The individual study can use the e-learning platform to enrich the standard activities and to self assess the level of competence acquired during the course.

All activities are in-person and will be neither recorded nor streamed. The teaching language of this course is Italian. The activities will be:

  • 14 lectures, 2 hours each, with an initial part in unidirectional mode and a second part in interactive mode.
  • 24 lab activities, 2 hours each, with an initial part in unidirectional mode and a second part in interactive mode.

Textbook and teaching resource

The adopted textbook is “Algorithms on Strings, Trees and Sequences”, by Daniel Gusfield, Cambridge Univ. Press. The library has some copies, also as ebook.

The book "An Introduction to Bioinformatics Algorithms" by N. Jones, P. Pevzner is used only for some parts on phylogeny reconstruction and on genome sequencing.

The books "Theoretical Evolutionary Genetics" by J. Felsenstein and Population and Quantitative Genetics by Graham Coop are used for some topics on phylogeny reconstruction and on haplotypes.

The book Think Python by A. B. Downey is used for introducing the Python language.

The Pandas library is covered in the book Python Data Science Handbook by VanderPlas.

Semester

First semester

Assessment method

The assessment has a written exam and a project work.

The written exam is taken individually, on the algorithmic topics presented during the lectures. This part consists of open-ended questions. The written exam is 1 hour long and contains 4 questions. Of those questions, you have to answer to 3 of them.
The evaluation of the written exam is based on the correctness and completeness of the answers, and on the ability to identify the essential elements of a topic.

The project work consists of devloping a Python program by a single student. The project is the same for all students in a given session.

The project will be discussed after the student has passed the written exam and within a year since the date of the written exam.

The final grade is obtained by weighting 50% of the degree of the written exam and 50% the project work, but you have to pass both parts. There are no in-progress written exams.
Beware that you must be registered via "segreterie online" to take the exam. If you are not registered, you will not allowed to take the exam. No exceptions will be made.

Office hours

Office hourse are online. You can book a meeting at https://www.unimib.it/gianluca-della-vedova

Sustainable Development Goals

GOOD HEALTH AND WELL-BEING
Enter

Key information

Field of research
INF/01
ECTS
8
Term
First semester
Activity type
Mandatory to be chosen
Course Length (Hours)
0
Degree Course Type
Degree Course
Language
Italian

Staff

    Teacher

  • Gianluca Della Vedova
    Gianluca Della Vedova
  • RR
    Raffaella Rizzi

Students' opinion

View previous A.Y. opinion

Bibliography

Find the books for this course in the Library

Enrolment methods

Manual enrolments
Self enrolment (Student)

Sustainable Development Goals

GOOD HEALTH AND WELL-BEING - Ensure healthy lives and promote well-being for all at all ages
GOOD HEALTH AND WELL-BEING

You are not logged in. (Log in)
Policies
Get the mobile app
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy policy
  • Accessibility
  • Statistics