Biologia Computazionale A.A. 2012/2013

Corso di Laurea: Biotecnologie Industriali e Ambientali (BIA)

Docenti del corso:

Prof. Giulio Pavesi
Email: giulio.pavesi (at) unimi.it

Prof. Matteo Re
Email: re (at) di.unimi.it

Ricevimento studenti: concordare appuntamento via e-mail
Giulio Pavesi: Via Celoria 26 (Dip. Biotecnologie) - 2B (Torre B - secondo piano)
Matteo Re: stanza T313, III piano Dipartimento di Informatica, via Comelico 39 Milano.

Nel corso vengono trattati i problemi e le tecniche di base propri della biologia computazionale. Questa area di ricerca e' caratterizzata da elevata interdisciplinarita' in quanto si avvale ti techiche matematiche, statistiche ed informatiche per risolvere un'ampia gamma di problemi di interesse biomedico e biotecnologico.
Tale interdisciplinarita' che costituisce, di fatto, un punto di forza per questa area di ricerca puo' risultare in una notevole difficolta' da parte degli studenti che si accostano per la prima volta al suo studio.

L'obiettivo principale di questo corso e' quello di fornire agli studenti gli strumenti e le conoscenze necessarie per progettare e realizzare soluzioni software applicabili a vari problemi che si presentano frequentemente in biologia computazionale. In particolare verra' trattato in maniera approfondita il linguaggio di programmazione Perl. Questa scelta e' motivata dal fatto che tale questo linguaggio di programmazione e' ampiamente utilizzato in biologia computazionale e in bioinformatica ed e' alla base di strumenti realizzati da gruppi di ricerca internazionali quali i portali web associati a browser genomici e banche dati pubbliche. Il linguaggio Perl, inoltre, e' stato utilizzato per lo sviluppo di librerie di funzioni dedicate in modo specifico all'analisi di dati biologici ponendo una particolare enfasi sulla manipolazione di biosequenze (progetto BioPerl). Le conoscenze di programmazione acquisite durante il corso saranno, di volta in volta, applicate a problemi reali di media complessita' che si riscontrano nell'analisi di dati prodotti in laboratorio.
In questa pagina troverete il materiale didattico (dispense, slides, soluzioni agli esercizi, dataset necessari per lo svolgimento degli esercizi) utilizzato durante le lezioni. I files delle slides verranno caricati ad ogni lezione mentre le soluzioni degli esercizi saranno rese disponibili nella lezione successiva, dopo la discussione delle soluzioni proposte da voi. Per problemi inerenti agli esercizi potete contattare Matteo Re tramite email. Gli orari e le aule in cui si terranno le lezioni del corso verranno concordate con gli studenti in occasione del primo incontro che avra' luogo il giorno 4 OTTOBRE 2012 alle ore 13:30 in AULA DI CALCOLO presso il Dip. di Bioscienze (Via Celoria 26). Una volta concordato lo schema e gli orari delle lezioni con gli studenti, eventuali variazioni a tale schema verrano comunicate mediante una mailing-list dedicata al corso di Biologia Computazionale.

AVVISI :

ATTENZIONE : il materiale didattico della lezione del 19 Ottobre 2012 puo' essere reperito a questo LINK

ATTENZIONE - DATA LEZIONE SUPPORTO PROGETTI D'ESAME : La lezione di supporto alla realizzazione dei progetti d'esame, nel corso della quale potrete porre ai docenti domande inerenti alle soluzioni che state progettando e/o implementando, verra' effettuata MERCOLEDI' 19 DICEMBRE, dalle ore 13:30 alle ore 17:30 in aula di calcolo. Verra' affisso un avviso in bacheca ma tutti gli iscritti all'esame sono cortesemente pregati di dare massima diffusione a questo avviso.

Materiale didattico (Modulo programmazione Perl):

A differenza delle edizioni precedenti del corso il materiale didattico sara' fornito sottoforma di dispensa.
  • Dispensa. La dispensa verra' aggiornata di lezione in lezione includendo sia le parti teoriche che gli esercizi.

Programma del corso :

Lezione 1 : Apertura del corso

  1. Presentazione del corso e degli obiettivi didattici. Introduzione informale ai problemi trattati ed alle relative applicazioni in biologia computazionale.

Lezione 2 : (materiale didattico: Dispensa pagine 4 - 18)

  1. Basi di programmazione in Perl
  2. Cenni di architettura dei calcolatori
  3. Il concetto di algoritmo
  4. Linguaggi di programmazione
  5. Linguaggi a basso ed alto livello (esempi)
  6. Definizione della soluzione di un generico problema e trasformazione della soluzione in codice
  7. Pseudocodice, paradigmi di programmazione e formalizzazione di algoritmi
  8. Convenzioni di scrittura dello pseudocodice
  9. Operazioni di base svolte da un calcolatore
  10. Pseudocodice e rappresentazione del controllo di flusso
  11. Utilizzo dell'indentazione nel codice sorgente: raggruppamento gerarchico di blocchi di istruzioni
  12. Confronto tra pseudocodice e diagrammi di flusso
  13. Domande e esercizi

Lezione 3 : (materiale didattico disponibile nella sezione AVVISI)

  1. Approfondimento pseudocodice
  2. Esercizi con dati reali
  3. Domande e esercizi

Lezione 4 : (materiale didattico: Dispensa pagine 20 - 27)

  1. Strutture dati
  2. Dati, strutture di dati e tipi (di dato)
  3. Tipi di dati primitivi e astratti (o derivati)
  4. Linguaggi tipizzati e non tipizzati
  5. Tipi di dati primari
  6. Operatori
  7. Tipi di dati derivati
  8. Domande e esercizi

Lezione P1 : Basi di Perl (materiale didattico: SLIDE )

  1. Variabili, dichiarazione variabili, contesto lista e scalare
  2. Operazioni su stringhe
  3. Array
  4. Esecuzione di script Perl (in Windows, Linux e Mac OS X)
  5. Operatori di match, sostituzione e transliterazione
  6. Funzioni che operano su stringhe (I) : length e reverse
  7. Funzioni che operano su array: scalar, reverse
  8. Funzioni che rimuovono/aggiungono elementi ad un array: sort, push, pop, shift e unshift
  9. Cicli: while, foreach e for
  10. Funzioni che operano su stringhe (II) : split e join
  11. Input/Output
  12. Interazione con l'esterno (dello scritp) : @ARGV e shift
  13. Lettura di file
  14. Input interattivo da tastiera
  15. Input da file: filehandle, funzioni open e close
  16. Lettura file riga per riga
  17. Domande
  18. Esercizi

File esercizi di programmazione:

In questa sezione, che verra' aggiornata ad ogni lezione, troverete tutto il materiale necessario per svolgere gli esercizi proposti durante il corso.

  1. file mm9_chr1.gtf (esercizi lez. P1)
  2. file genes.expr (esercizi lez. P1)
  3. file input_data.txt (esercizio conteggio posizionale)
  4. file transcript.txt (esercizi lez. P2)
  5. file dna_translation.txt (esercizi lez. P2)