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 :
: il materiale didattico della lezione del 19 Ottobre 2012 puo' essere reperito a questo LINK: 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
- 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)
- Basi di programmazione in Perl
- Cenni di architettura dei calcolatori
- Il concetto di algoritmo
- Linguaggi di programmazione
- Linguaggi a basso ed alto livello (esempi)
- Definizione della soluzione di un generico problema e trasformazione della soluzione in codice
- Pseudocodice, paradigmi di programmazione e formalizzazione di algoritmi
- Convenzioni di scrittura dello pseudocodice
- Operazioni di base svolte da un calcolatore
- Pseudocodice e rappresentazione del controllo di flusso
- Utilizzo dell'indentazione nel codice sorgente: raggruppamento gerarchico di blocchi di istruzioni
- Confronto tra pseudocodice e diagrammi di flusso
- Domande e esercizi
Lezione 3 : (materiale didattico disponibile nella sezione AVVISI)
- Approfondimento pseudocodice
- Esercizi con dati reali
- Domande e esercizi
Lezione 4 : (materiale didattico: Dispensa pagine 20 - 27)
- Strutture dati
- Dati, strutture di dati e tipi (di dato)
- Tipi di dati primitivi e astratti (o derivati)
- Linguaggi tipizzati e non tipizzati
- Tipi di dati primari
- Operatori
- Tipi di dati derivati
- Domande e esercizi
Lezione P1 : Basi di Perl (materiale didattico: SLIDE )
- Variabili, dichiarazione variabili, contesto lista e scalare
- Operazioni su stringhe
- Array
- Esecuzione di script Perl (in Windows, Linux e Mac OS X)
- Operatori di match, sostituzione e transliterazione
- Funzioni che operano su stringhe (I) : length e reverse
- Funzioni che operano su array: scalar, reverse
- Funzioni che rimuovono/aggiungono elementi ad un array: sort, push, pop, shift e unshift
- Cicli: while, foreach e for
- Funzioni che operano su stringhe (II) : split e join
- Input/Output
- Interazione con l'esterno (dello scritp) : @ARGV e shift
- Lettura di file
- Input interattivo da tastiera
- Input da file: filehandle, funzioni open e close
- Lettura file riga per riga
- Domande
- 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.
- file mm9_chr1.gtf (esercizi lez. P1)
- file genes.expr (esercizi lez. P1)
- file input_data.txt (esercizio conteggio posizionale)
- file transcript.txt (esercizi lez. P2)
- file dna_translation.txt (esercizi lez. P2)