an hadoop approach to build phylogenetics trees

18
Alessandro Della Rocca Marco Fazzone Natasha Marmo Università degli Studi di Salerno Facoltà di SS.MM.FF.NN – Laurea Magistrale in Informatica A.A. 2012/2013 Corso di Sistemi Operativi II – Prof. Giuseppe Cattaneo

Upload: alessandro-della-rocca

Post on 19-Aug-2015

96 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: An Hadoop approach to build Phylogenetics Trees

Alessandro Della Rocca Marco Fazzone Natasha Marmo

Università degli Studi di Salerno Facoltà di SS.MM.FF.NN – Laurea Magistrale in Informatica

A.A. 2012/2013 Corso di Sistemi Operativi II – Prof. Giuseppe Cattaneo

Page 2: An Hadoop approach to build Phylogenetics Trees

Il problema

Soluzione Hadoop

Analisi delle prestazioni

Page 3: An Hadoop approach to build Phylogenetics Trees

Data una proteina, ricercare le n sequenze con lo

score maggiore di similarità, ottenute attraverso un algoritmo di allineamento.

Sequenze simili hanno un antenato comune.

Costruzione di un albero filogenetico basato su matrice di distanza.

Page 4: An Hadoop approach to build Phylogenetics Trees

DB di riferimento per le analisi proteiche.

Contiene di dati e le sequenze aminoacidiche di tutte le proteine scoperte in natura.

UNIRef 100: file da 8 gb contenente 17850592 sequenze (al 7 luglio 2013)

Page 5: An Hadoop approach to build Phylogenetics Trees

17milioni di allineamenti

Page 6: An Hadoop approach to build Phylogenetics Trees

Basato sulla programmazione dinamica.

Per una coppia di proteine di size m , n riempie una matrice di dimensione n*m , effettuando anche backtrack per recuperare l’allineamento.

Restituisce lo score di allineamento e le sequenze allineate.

Le sequenze proteiche possono essere lunghe anche 800, 1000 aminoacidi.

Page 7: An Hadoop approach to build Phylogenetics Trees

Basato sulla programmazione dinamica.

Edit Distance = minimo numero di operazioni necessarie a trasformare una stringa nell’altra.

Operazioni di: inserzione, cancellazione, sostituzione, trasposizione.

Calcolo della matrice di distanza per le n sequenze proteiche considerate.

Page 8: An Hadoop approach to build Phylogenetics Trees

Generazione di ‘rooted tree’

Metodo di clustering gerarchico

Cluster costruite su misure di distanza tra le sequenze

Considera un orologio molecolare costante.

Costruzione di una scala di distanza tra le proteine per determinare la storia evolutiva e le relazioni genetiche.

Page 9: An Hadoop approach to build Phylogenetics Trees

Input Size #Sequenze Time

500 MB 1115662 49 min

1 GB 2231324 1 h. 43 min

4 GB 8925296 7h. 3 min

8 GB 17580592 12 h 45 min

Page 10: An Hadoop approach to build Phylogenetics Trees

Problema fondamentalmente CPU-Intensive

Uso intensivo della memoria RAM

Dataset di grandi dimensioni.

Dimensioni crescenti dell’input.

Bisogno di scalabilità.

Page 11: An Hadoop approach to build Phylogenetics Trees
Page 12: An Hadoop approach to build Phylogenetics Trees
Page 13: An Hadoop approach to build Phylogenetics Trees

Input Split customizzato

Strategia multithreading per sfruttare al massimo la CPU

Allineamenti gestiti attraverso oggetti

Classe Mapper che esegue l’algoritmo di allineamento Needleman Wunsch sull’input assegnato.

Classe Reducer che seleziona gli allineamenti migliori globali tra tutti quelli calcolati localmente dai map task.

Il Reducer calcola la matrice di distanza e l’albero filogenetico

Page 14: An Hadoop approach to build Phylogenetics Trees

Lo splitter dell’input è stato settato in modo che ogni input task sia composto da 20000 sequenze.

Il parametro è stato settato considerando che valori maggiori conducevano a situazioni di esaurimento della memoria Java Heap Space.

Page 15: An Hadoop approach to build Phylogenetics Trees

Ogni map task calcola lo score di allineamento tra la sequenza query e tutte le sequenze che compongono la porzione di input ad esso assegnata.

Ogni map task, restituisce dieci oggetti Allineamento che costituiscono i dieci allineamenti migliori in base allo score, relativamente sempre a quella porzione di input.

Page 16: An Hadoop approach to build Phylogenetics Trees
Page 17: An Hadoop approach to build Phylogenetics Trees

Seleziona quelli con lo score più alto a livello globale.

Calcola la matrice di distanza tra questi allineamenti, tramite l’algoritmo di Damerau-Levenshtein.

Calcola l’albero filogenetico utilizzando l’algoritmo UPGMA .

Page 18: An Hadoop approach to build Phylogenetics Trees