Universitą degli Studi di Milano

Facoltą di Scienze M.F.N.

Corso di laurea specialistica in Genomica  Funzionale e Bioinformatica – a.a. 2007/08

 

 

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 programmi software scritti in un linguaggio di programmazione ad alto livello, per 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 e sviluppare applicazioni 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; gli ambienti R per Windows e per Linux. Il linguaggio R per la bioinformatica.

Strutture dati fondamentali in R

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. Costruzione 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

 

Environment

 

Environment come frame e come tabelle associative. La classe environment ed i metodi per costruire, modificare ed accedere ad un oggetto di classe environment.

 

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.

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.

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.

 

Introduzione alla programmazione Object-Oriented in R

Classi ed oggetti. Definizione di una classe in R. Slot delle classi. Relazioni fra classi ed  ereditarietą. Classi virtuali. Metodi. Funzioni generiche. Gruppi di funzioni generiche.

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 classi, oggetti, metodi, funzioni 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  

 

 

Bibliografia

Torna inizio pagina

Testi di riferimento per il linguaggio R

J. Chambers, Programming with data, Springer, 1998.

• R. Becker, J. Chambers and A. Wilks, The new S language. Chapman & Hall, New York, 1988

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, 2008

•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 2003

Manuale per lo sviluppo di “estensioni” del linguaggio: package e interfacce verso altri linguaggi

•R Development Core Team, Writing R extensions: http://cran.r-project.org/doc/manuals/R-exts.pdf, 2008  

 

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.

 

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: esempi

·         Classi ed oggetti

·         Metodi

 

I package di Bioconductor

 

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 con 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

 

La prova di esame consiste 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 rilevante in campo bioinformatico.

 

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

 

Link utili

Torna inizio pagina