Linguaggi di programmazione per la Bioinformatica
Obiettivi
|
Torna inizio pagina
|
Il corso si
propone di far acquisire agli studenti capacitą di utilizzare, modificare e
sviluppare applicazioni scritte con un linguaggio di programmazione ad alto
livello, finalizzate ad applicazioni in campo bioinformatico.
In
particolare il corso ha come obiettivo di far acquisire agli studenti:
- Conoscenze di base sui linguaggi di
programmazione ad alto livello
- Capacitą di sviluppare semplici
programmi secondo il paradigma di programmazione imperativo e
object oriented
- Capacitą di modificare ed applicare in
nuovi contesti programmi e librerie software esistenti
- Capacitą di utilizzare librerie software
per problemi rilevanti in ambito bioinformatico
|
Programma
|
Torna inizio pagina
|
Introduzione ai linguaggi di
programmazione
Linguaggi
naturali e linguaggi di programmazione. Linguaggi a basso ed alto livello.
Linguaggi di programmazione per la bioinformatica.
Il linguaggio R
Introduzione al linguaggio R
Caratteristiche generali di R; modi di
utilizzo di R; gli ambienti R per Windows e per Linux. Il linguaggio R per
la bioinformatica.
Strutture dati fondamentali
in R
Strutture dati, oggetti e attributi degli
oggetti. Vettori, matrici, array, fattori, liste, data frame.
Oggetti e attributi degli
oggetti
Definizione
in R di strutture dati e funzioni come oggetti. Caratterizzazione degli
oggetti tramite attributi. Attributi mode, length, names e class.
Vettori ed istruzioni di
assegnamento
Tipi
elementari di vettori: vettori numerici, vettori di caratteri e vettori
logici. Operazioni con vettori numerici. Funzioni vettoriali
matematiche e statistiche.
La regola del "riciclo" in R. Generazione di sequenze regolari.
Operazioni di accesso ai vettori e vettori indice.
Matrici e array
Matrici
come vettori bidimensionali. Costruzione di matrici. Funzioni cbind ed
rbind. Operazioni con le matrici. Array come generalizzazione
multidimensionale delle matrici. Costuzione di array. Operazioni con gli
array. Operazioni di accesso ad elementi e sottoinsiemi di elementi di
array e matrici.
Fattori
Rappresentazione
di insiemi di dati a valori discreti. Fattori non ordinati e fattori
ordinati. La funzione tapply
Liste
Sequenze ordinate di oggetti eterogenei. Costruzione
di liste. Componenti numerate e con nome. Modalitą di accesso alle
componenti delle liste. Operatori di accesso. Concatenazione di liste.
Data frame
Data frame
come liste specializzate. Data frame come matrici con colonne di modo e
tipo differente. Tipologie e caratteristiche dei componenti dei data
frame. Costruzione di data frame. Operatori per l' estrazione di colonne
o righe da data frame. Dropping delle dimensioni. Le funzioni attach e
detach
|
Lettura e scrittura di file
Funzioni per la lettura/scrittura di data
frame. Funzioni per la lettura e scrittura di vettori. Accesso a
data set built-in. Package e
caricamento di dati da package. Editing dei dati. Lettura e scrittura di
strutture dati in formato binario.
Strutture di controllo e
funzioni
Scrittura ed esecuzione di programmi in R.
Blocchi di istruzioni. Istruzioni condizionali. Istruzioni iterative.
Funzioni
Istruzioni condizionali
Istruzione
if then else. Istruzioni condizionali vettorizzate. La funzione switch.
Istruzioni iterative
Istruzione
for. Istruzione while. Istruzione repeat. Le istruzioni break e next.
Iterazione e funzioni/operazioni vettorizzate. Le funzioni della famiglia
apply.
Funzioni
Funzioni
built-in, funzioni disponibili nei package e funzioni scritte dagli
utenti. Definizione e chiamata di funzioni. Commenti e
documentazione delle funzioni. Scrittura, memorizzazione e
caricamento di funzioni. Argomenti delle funzioni: argomenti formali ed
attuali, valutazione per valore degli argomenti. Argomenti posizionali, per
nome, di default. Regole di matching degli argomenti. Variabili locali,
parametri formali e variabili libere. Regole di scope.
|
L' ambiente grafico di R
R come
ambiente per la generazione di grafici. Comandi grafici di alto livello.
Comandi grafici di basso livello. Comandi per la grafica interattiva.
Debugging
Modalitą di debugging in R: la funzione
browser, il comando debug, le funzioni trace/untrace.
Il linguaggio R per la
bioinformatica
Bioconductor
Bioconductor:
un progetto internazionale per lo sviluppo e la distribuzione open source
di librerie software (package) per la bioinformatica
Package di R
I package: librerie di oggetti, algoritmi e
strutture dati. Struttura di un package R. Installazione ed aggiornamento
di package da CRAN e Bioconductor. Documentazione dei package. Caricare ed
utilizzare package.
I package di Bioconductor
Sommario dei package di Bioconductor. Design
dei package di Bioconductor e programmazione object-oriented in R
- Package di Bioconductor
per l' analisi a basso livello dei DNA microarray
Classi fondamentali e metodi. Package per la
lettura di dati di cDNA microarray. Package grafici per il controllo di
qualitą dei dati dei cDNA microarray. Package specifici per i chip
Affymetrix. Package per la normalizzazione di dati.
- Package per la ricerca e
selezione di geni differenzialmente espressi.
Selezione aspecifica dei geni soggetti a
maggiore variazione. Ricerca di geni correlati con fenotipi specifici.
Package R per la ricerca automatica su PubMed di pubblicazioni correlate
ai geni individuati.
- Package per l’analisi
non supervisionata dei dati di DNA microarray
Package per la visualizzazione di dati di
elevata dimensionalitą. Package per l’analisi non supervisionata did ati
di espressione genica con metodi di clustering: clustering gerarchico,
k-mean, PAM (Prediction Around Medoids), fuzzy-c-mean, ensemble
clustering.
- Package per la
classificazione dei dati di espressione con metodi di machine learning.
Diagnosi a
livello bio-molecolare. Package R per la classificazione di dati di
espressione genica: package per alberi di decisione, reti neurali, K
nearest neighbours, Support Vector Machine e Random Forest.
|
Introduzione al
linguaggio Perl
L’
interprete dei comandi. La documentazione on-line.
Istruzioni,
variabili ed assegnamenti. Operatori logici ed aritmetici.
Stringhe, concatenazione e trasformazione
di sequenze. Trascrizione di bio-sequenze.
Procedure
di I/O, lettura e scrittura di file.
Strutture
dati di base in Perl: scalari, array e strutture hash.
Strutture
di controllo: istruzioni condizionali, strutture iterative.
Espressioni
regolari e ricerca di pattern in bio-sequenze.
Subroutine,
passaggio di parametri per valore e per riferimento. Moduli e librerie di
subroutine.
Perl come
linguaggio di scripting per il controllo di programmi esterni.
I moduli
Bioperl per l’ analisi di bio-sequenze e per l’accesso a database
bio-molecolari.
|
|
Bibliografia
|
Torna inizio pagina
|
Libri e manuali introduttivi
disponibili on-line:
•W. Venables and D.M.
Smith, An Introduction to R: http://cran.r-project.org/doc/manuals/R-intro.pdf,
2004
•J. Maindonald, Using
R for Data Analysis and Graphics: http://wwwmaths.anu.edu.au/~johnm, 2000
•A. Mineo, Una guida all’ utilizzo dell’ ambiente Statistico R: http://cran.r-project.org/doc/contrib/Mineo-dispensaR.pdf
Libri e
manuali specifici sulla definizione del linguaggio e per lo sviluppo di
Package R
•R Development Core Team,
R Language Definition: http://cran.r-project.org/doc/manuals/R-def.pdf,
2004
•R Development Core Team,
Writing R extensions: http://cran.r-project.org/doc/manuals/R-exts.pdf, 2004
Testo di
riferimento per il linguaggio S (utile anche per R)
•R. Becker, J. Chambers
and A. Wilks, The new S language. Chapman & Hall, New York, 1988
Un libro specifico sull’
utilizzo di R per la bioinformatica e Bioconductor
Gentleman, R.;
Carey, V.; Huber, W.; Irizarry, R.; Dudoit, S Bioinformatics and Computational
Biology Solutions Using R and Bioconductor, Springer, 2005.
Libri per
la sezione sul Perl
|
Materiale didattico
|
Torna
inizio pagina
|
Slide del corso in formato
pdf (2 slide per pagina):
Tutte le slide del corso (formato pdf) in
un unico file:
Soluzioni di alcuni degli
esercizi proposti nelle slide del modulo 1:
Introduzione alla
programmazione object-oriented in R:
I package di Bioconductor
Si ringrazia
il team di sviluppatori di Bioconductor
per avere reso disponibili on line le lezioni di seguito elencate.
Un
ringraziamento particolare a Sandrine Dudoit e Yee Hwa Yang (Univ.
California, Berkeley), Robert Gentleman e Vince Carey (Univ. Harvard, Boston), David Meyer (Technische
Universitat Wien), Witold E. Wolski (Max Planck Institute, Berlin).
Il package
Biobase (libreria di
strutture dati e funzioni di base per la gestione di dati di DNA
microarray):
Package
per la gestione, preprocessing,
normalizzazione e
visualizzazione di dati ed esperimenti con cDNA microarray:
Metodi per la selezione di geni tramite dati di
espressione genica:
Metodi di machine learning per l’analisi di
dati di DNA microarray
Il package pairseqsim per l’ allineamento a
coppie di biosequenze proteiche
|
Prove d'esame
|
Torna inizio pagina
|
Temi d’esame.
La prova di
esame si articola nella progettazione, implementazione e discussione orale
di una applicazione bioinformatica scritta in linguaggio R. Durante il
corso verranno proposti temi d’esame da sviluppare per la prova d’esame, ma
verranno considerati anche temi proposti dagli studenti, purche’ di
interesse in campo bioinformatico.
|
Orario e sede delle lezioni
|
Torna inizio pagina
|
Aula
informatica Via Celoria 20, Milano
Lunedi ore
14.30-17.30
Giovedi ore
10.30-13.30
|
|