Università degli Studi di Milano

Facoltà di Scienze M.F.N.

Corso di laurea specialistica in Genomica  Funzionale e Bioinformatica

 

 

Linguaggi di programmazione per la Bioinformatica

Docenti:

Giorgio Colombo e Giorgio Valentini
e-mail:    giorgio.colombo@icrm.cnr.it   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 suddivide in due moduli.

Il primo modulo, tenuto da Giorgio Valentini, 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.

Il secondo modulo, tenuto da Giorgio Colombo, si propone di fornire una visione generale delle tecniche di modeling e programmazione utilizzate nei campi del protein-engineering e del design di nuove molecole.

In particolare il primo modulo 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

Il secondo modulo si propone di fornire una introduzione alle tecniche di modellistica computazionale dei sistemi biologici in generale, delle interazioni proteina-proteina e proteina-ligando. Il fine è quello di dare una visione generale delle tecniche di modeling e programmazione utilizzate nei campi del protein-engineering e del design di nuove molecole. L’attenzione sarà rivolta in particolare allo sviluppo delle tecniche di simulazione molecolare, all’analisi computazionale dei risultati e al loro confronto con le osservazioni sperimentali.

 

 

Programma

Torna inizio pagina

Modulo I

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

R come linguaggio per la bioinformatica; Caratteristiche generali di R; modi di utilizzo di R; gli ambienti R per Windows e per Linux

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

I. Analisi dei dati di espressione genica

- Ricerca e selezione di geni differenzialmente espressi. 

Il package Biobase. L' oggetto Exprset. Decodifica della nomenclatura proprietaria Affymetrix. Selezione aspecifica dei geni soggetti a maggiore variazione. Calcolo della matrice di covarianza dei livelli di espressione genica per sottoinsiemi di geni. Ricerca di geni correlati con fenotipi specifici. Package R per la ricerca automatica su PubMed di pubblicazioni correlate ai geni individuati.

- Package di Bioconductor per l' analisi dei cDNA 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 per la normalizzazione di dati.

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

 

II. Analisi di biosequenze

- Package R per  l' allineamento globale e l' allineamento locale di biosequenze


Strutture dati per biosequenze. Lettura di sequenze proteiche in formato FASTA. Analisi automatica della composizione aminoacidica delle sequenze proteiche. Caricamento di matrici di similarità PAM e BLOSUM. Funzioni per l' allineamento pairwise globale e locale di biosequenze.

 

Modulo II

1)      Introduzione
Piano del corso
Prospettiva sui metodi di simulazione in generale

2)      La meccanica statistica nello studio dei sistemi biologici

Livelli di Rappresentazione

Modelli di interazione

 

3)      Meccanica Molecolare

Interazioni tra atomi

Forme funzionali e loro implementazione

Parametrizzazione di Force-Fields

 

4)      Algoritmi per l’analisi dello spazio conformazionale delle biomolecole

Minimizzazione

Ricerca sistematica

Monte Carlo

Dinamica Molecolare

 

5)      Dinamica Molecolare I

Il calcolo delle forze

Schemi di integrazione, problemi di velocità, memoria e contraints computazionali

Semplificazioni e contraints

Trattamento dei solventi. Implementazione di modelli semplificati di solvente implicito ed esplicito

 

6)      Dinamica Molecolare II

Implementazione del controllo di temperatura e pressione

Trattamento delle Interazioni a lungo raggio

Condizioni iniziali

           

7)      Dinamica Molecolare III

Algoritmi per l’analisi di traiettorie di Dinamica Molecolare

Casi di Studio reali e confronto con i dati sperimentali

 

8)      Interazioni Intermolecolari

Metodi e programmi per il calcolo delle interazioni proteina legante

Docking

Design di Nuove molecole

 

9)      Analisi di Database Strutturali

Strumenti informatici per l’analisi di database di complessi proteina-proteina

Interpretazione dei risultati e loro correlazione con la biologia.

 

 

Bibliografia

Torna inizio pagina

Modulo I

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

 

Modulo II

·   A.R. Leach. Molecular Modeling: Principles and Applications. Ed. Longman

·   A.Tramontano. Bioinformatica. Zanichelli

 

 

Materiale didattico

Torna inizio pagina

Modulo I: 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:

 

 

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

Le prove saranno separate per i due moduli. La valutazione globale risulterà dalla media delle prove sui due moduli.

Per il I modulo le prove si articolano in una prova scritta (risoluzione di esercizi sul linguaggio R) e nell’ implementazione di un programma in R che preveda l’utilizzo di package di Bioconductor:

Temi per i progetti software del I modulo (file rtf)

 

Orario e sede delle lezioni

Torna inizio pagina

Dal 4 ottobre al 30 novembre 2004:

Lunedì ore 10,15-12.30

Martedì ore 9.45-12.30

Aula informatica Via Celoria 20, Milano

N.B. Le lezioni del II modulo verranno svolte nel mese di dicembre

 

Link utili

Torna inizio pagina