Temi per i progetti software del corso di Linguaggi di programmazione per la bioinformatica.

1. Clustering di dati bio-molecolari: il problema della selezione del numero dei cluster.
2. Clustering di dati bio-molecolari: il problema dell'affidabilità dei singoli cluster.
3. Preprocessing dei dati di DNA microarray a oligonucleotidi.

Per ogni progetto dovra’ essere consegnata:
- Una breve relazione che contenga una descrizione sintetica: a) delle procedure e dei metodi adottati  b) dei risultati ottenuti, eventualmente corredato con tabelle e grafici per la presentazione dei risultati stessi.
- Il listato R degli script e delle funzioni implementate con commenti che descrivano per ogni funzione: a) Input: il significato di ogni argomento delle funzione b) Output: le caratteristiche ed il significato delle strutture dati generate dalle funzione c) una breve descrizione delle funzionalità della funzione stessa (cosa fa la funzione) d) Se la funzione e’ particolarmente complessa, descrizione sintetica dell’ algoritmo implementato (come fa la funzione ad implemetare le funzionalità di cui al punto c).
–	Un archivio zippato contenente un unico file R con tutte le funzioni implementate, oltre a file relativi  ai grafici, alle tabelle ed all’ output eventualmente generato dal sw. Il file dovra' essere inviato in allegato all' indirizzo e-mail: valentini@dsi.unimi.it

Di seguito sono riportate le inoformazioni relative a i progetti 1 e 2. Ulteriori informazioni verranno fornite durante le ultime lezioni del corso. Il progetto 3  verrà illustrato durante le 2 ultime lezioni.

1. Clustering di dati bio-molecolari: il problema della selezione del numero dei cluster.

Obiettivo del progetto è individuare clustering (insiemi di sottoclassi patologiche o insiemi di classi funzionali di geni) affidabili tramite opportuni algoritmi di clustering e misure di affidabilità basate sull'analisi della stabilità dei clustering. 
A tal fine si dovrà utilizzare la libreria R mosclust.
Informazioni e tutorial sull' uso della libreria clusterv sono ottenibili dal sito web:
http://homes.dsi.unimi.it/~valenti/SW/mosclust
I seguenti articoli descrivono alcuni dei metodi implementati nella libreria, nonché la libreria stessa:

●	A.Bertoni, G.Valentini, Model order selection for biomolecular data clustering,  BMC Bioinformatics, vol.8, Suppl.3, 2007.
●	G.Valentini, Mosclust: a software library for discovering significant structures in bio-molecular data. 
Bioinformatics 23(3):387-389, 2007.

Il file sorgente della libreria R  è scaricabile da: 
http://homes.dsi.unimi.it/~valenti/SW/mosclust-source
Mosclust richiede i file sorgente di clusterv, scaricabili dalla seguente directory:
http://homes.dsi.unimi.it/~valenti/SW/clusterv-source

Se si lavora in ambiente linux è preferibile scaricare ed installare i package direttamente dal sito di mosclust e clusterv

Ogni gruppo dovrà analizzare almeno uno dei  data set elencati in coda al presente progetto.

Per ogni data set si dovrà fornire un'analisi dell' affidabilità dei cluster ottenuti con diversi algoritmi di clustering:
a) Clustering gerarchico (usando il metodo di Ward e opzionalmente l' average linkage method)
b) c-mean
c) PAM (Prediction Around Medoids).
Tutti i precedenti algoritmi di clustering sono già implementati nella libreria.

Per diversi valori del numero dei cluster, per ogni algoritmo di clustering e per diverse tipologie di perturbazioni (sottocampionamento, proiezioni casuali e iniezioni di rumore) si dovranno fornire le seguenti misure di affidabilità:
a) Indice di stabilità
b) p-value associato al clustering in accordo ai test basati sul chi^2 e sulla disuguaglianza di Bernstein
Si dovranno inoltre definire i clustering individuati nei dati a determinati livelli di siginificativita' (ad es: 0.01, 10-3 ,10-5 )

I risultati dovranno essere riportati in tabelle (tabelle riassuntive degli indici e dei p-value  per diversi valori di k), e utilizzando le funzioni grafiche della libreria si dovranno realizzare i grafici delle distribuzioni cumulative delle misure di stabilità per diversi valori di k (numero dei cluster) ed i grafici del log p-value in funzione del numero dei cluster per i test basati sul chi^2 e sulla disuguaglianza di Bernstein.
Si dovranno inoltre evidenziare e discutere  l' affidabiltà/stabilità delle diverse soluzioni  al variare del numero dei cluster k, in relazione all'algoritmo di clustering ed al tipo di perturbazione utilizzata.
Opzionalmente si  possono effettuare studi di stabilita' variando l'intensita' della perturbazione, per valutare l'impatto dell' intensita' della perturbazione stessa sui risultati ottenuti. Ad es: si possono valutare i risultati che si ottengono scegliedo proiezioni randomizzate in sottospazi di diversa dimensione (variando ad es: il parametro epsilon della proiezione), o scegliendo sottocampionamenti con diversi numeri di campioni.

Data set da analizzare (almeno 1 per ogni progetto):

A.
Lung cancer gene expression data
Tre data set:
1) 
Bhattacharjee et al., Classification of human lung carcinomas by mRNA expression profiling reveals distinct adenocarcinoma subclasses, PNAS 2001, 98:13790-5.

2) michigan:  dati di espressione genica relativi al tumore del polmone (Univ. Michigan)
Beer et al., Gene expression profiles predict survival of patients with lung adenocarcinoma. Nature Medicine 8(8):816-824 (2002).

3) stanford:  dati di espressione genica relativi al tumore del polmone (Univ. Stanford)
Garber et al., Diversity of Gene Expression in Adenocarcinoma of the Lung, PNAS, 2001, 98(24):13784-9.

B. 
R Package ColonCA: data set di espressione genica realtivo al tumore del colon.
 U. Alon et al. (1999): Broad patterns of gene expression revealed by clustering analysis of tumor and normal colon tissue probed by oligonucleotide arrays.  96, 6745-6750 

C.
R package ALL: data di DNA microarray relativi a pazienti affetti da leucemia acuta linfoblastica. 
Sabina Chiaretti, Xiaochun Li, Robert Gentleman, Antonella Vitale, Marco Vignetti, Franco Mandelli, Jerome Ritz, and Robin Foa Gene expression profile of adult T-cell acute lymphocytic leukemia identifies distinct subsets of patients with different response to therapy and survival. Blood, 1 April 2004, Vol. 103, No. 7.

D.
R package kidpack: dati espressi genica realtivia  apzienti affetti da tumore renale.

E.
R package gaschYHS: dati di espressione genica realtiva alla risposta del lievito allo shock termico e ad altri stress ambientali.
Gasch AP, Spellman PT, Kao CM, Carmel-Harel O, Eisen MB, Storz G, Botstein D, Brown PO. Genomic expression programs in the response of yeast cells to environmental changes. Mol. Biol. Cell 2000 Dec;11(12):4241-57.

F.
R package yeastCC: dati relativi all'espressione genica del lievito durante il ciclo cellulare
Spellman et al. (1998). Comprehensive Identification of Cell Cycle-regulated Genes of the Yeast Saccharomyces cerevisiae by Microarray Hybridization. , 9: 3273-3297. 

2. Clustering di dati bio-molecolari: il problema dell'affidabilità dei singoli cluster.

L' analisi dei dati di espressione genica permette di definire  sottoclassi patologiche a livello bio-molecolare, non identificabili attraverso tradizionali approcci istopatologici o immunoistochimici.
Gli algoritmi di clustering normalmente utilizzati per individuare i cluster (sottoclassi patologiche) non consentono pero' di valutare direttamente l' affidabiltà delle soluzioni ottenute.
Obiettivo del progetto è individuare clustering (insiemi di sottoclassi patologiche) affidabili tramite opportuni algoritmi di clustering e misure di affidabilità basate su proiezioni randomizzate dei dati di espressione genica. A tal fine si dovrà utilizzare la libreria R clusterv, che implementa misure di affidabilità dei cluster basate su proiezioni randomizzate.
Informazioni e tutorial sull' uso della libreria clusterv sono ottenibili dal sito web:
http://homes.dsi.unimi.it/~valenti/SW/clusterv
Utile è anche la lettura degli articoli: 
●	G.Valentini,  Clusterv: a tool for assessing the reliability of clusters discovered in DNA microarray data, Bioinformatics 22(3):369-370, 2006.
●	A.Bertoni, G. Valentini, Randomized maps for assessing the reliability of patients clusters in DNA microarray data analyses, Artificial Intelligence in Medicine 37(2):85-109  2006
Il file sorgente della libreria R  è scaricabile da: 
http://homes.dsi.unimi.it/~valenti/SW/clusterv-source

Il file Readme contiene informazioni relative ai file sorgente. Il tutorial ed il reference manual per l'utilizzo della libreria sono scaricabili dal sito web di clusterv.

Ogni gruppo analizzerà un diverso data set.
Per ogni data set si dovrà fornire un'analisi dell' affidabilità dei cluster ottenuti con diversi algoritmi di clustering:
a) Clustering gerarchico (usando il metodo di Ward e opzionalmente l' average linkage method)
b) c-mean
c) PAM (Prediction Around Medoids)

Tutti gli algoritmi di clustering sono già implementati nella libreria.

Per ogni data set e per ogni algoritmo di clustering si dovranno fornire le seguenti misure di affidabilità:
a) Overall stability index (indice S)
b) Stability index per ciascun cluster (indice s)
Si dovranno fornire tali indici per un numero di cluster k da 2 a 10 (almeno) per i data set “biomedici” e per un numerodi cluster opportuno per i data set realtivi al lievito.
Per il valore di k per cui si sono ottenuti i valori piu' elevati di S ed s, si dovranno fornire anche gli Assignment Confidence (AC) index relativi ad ogni singolo campione.

I risultati dovranno essere riportati in tabelle (tabelle risassuntive degli indici per ogni algoritmo e per diversi valori di k).
I clustering ottenuti dovranno essere rappresentati opportunamente in tabelle o in dendrogrammi (altre rappresentazioni grafiche sono consentite, purchè permettano di mettere in relazione la composizione dei cluster con gli indici di stabilità ottenuti).
Si dovranno inoltre evidenziare le somiglianze e le differenze fra i cluster ottenuti con i diversi algoritmi, discutendo la affidabiltà/stabilità delle diverse soluzioni ottenute con i diversi algoritmi di clustering al variare del numero dei cluster k.

I data set dovranno essere rappresentati con opportune strutture dati (si consiglia di usare le classi del package Biobase di Bioconductor). 

Per i dataset da utilizzare si faccia riferimenti a quelli proposti per il progetto 1.