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.
|
|
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 e Bioconductor per la bioinformatica
Gentleman, R.; Carey, V.; Huber, W.;
Irizarry, R.; Dudoit, S Bioinformatics and
Computational Biology Solutions Using R and Bioconductor, Springer, 2005.
|
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
|
Orario e sede delle lezioni
|
Torna inizio pagina
|
Aula
informatica Via Celoria 20, Milano
Lunedi ore
10.30-13.30
Mercoledi ore
13.30-16.30
|
|