Universitą degli Studi di Milano

Facoltą di Scienze M.F.N.

Corso di laurea specialistica in Genomica  Funzionale e Bioinformatica – a.a. 2005/06

 

 

Linguaggi di programmazione per la Bioinformatica

Docente:  Giorgio Valentini
e-mail:  valentini@dsi.unimi.it 

Obiettivi

Programma

Bibliografia

Materiale didattico

Prove d'esame

Orario e sede delle lezioni                                                                                                                      

Link utili

 

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:

·       John Chambers Classes and Methods in the S language

·       Programmazione object-oriented in R: esercizi

 

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

 

Link utili

Torna inizio pagina