• Non ci sono risultati.

tando per`o l’analisi dell’algoritmo di variant calling alla sola rilevazione degli SNP. La procedura utilizza il tool HARC per ordinare e raggruppare i read che condividono un lungo prefisso/suffisso o hanno una bassa edit-distance. Successivamente, una volta creati dei blocchi contenenti approssi- mativamente lo stesso numero di read, la strategia procede eseguendo parallelamente il framework su tali blocchi e terminando poi unendo i risultati ottenuti su ciascun blocco.

4.3

Performance del framework

Prezza et al. hanno comparato la propria strategia di variant calling (ebwt2InDel) con il software DiscoSNP++ [25, 26], il quale, attraverso una pipeline composta da differenti tool indipendenti (de- scritta nella Sezione 2.2.3), individua e classifica tutti i tipi di SNP come piccole INDEL. DiscoSNP++ risulta avere delle prestazioni, sia in termini di performance computazionali che di qualit`a dei risul- tati, migliori dei metodi che rappresentano lo stato dell’arte. Gli autori hanno svolto esperimenti su dati sintetici e reali del cromosoma umano 1, con lo scopo di ricostruire il genotipo del cromo- soma 1 di uno specifico individuo proveniente dal 1 000 Genomes Project (1KGP) individuando i siti eterogenei dai read grezzi; e su dati provenienti dal sequenziamento WGS di due genomi umani (uno della madre e l’altro del figlio), con lo scopo di analizzare le varianti contenute nell’unione dei dati prodotti da questi due sequenziamenti.

I risultati ottenuti [40, pp. 11-15] sui dati sintetici del cromosoma 1, con una copertura 30× di read lunghi 100 bp, mostrano che il tool basato sull’eBWT cluster `e in grado di individuare l’83, 5% degli SNP con un’accuratezza del 77, 8% e il 72, 2% delle INDEL con un’accuratezza dell’84, 4%; migliorando i risultati ottenuti da DiscoSNP++, che ha individuato il 70, 6% degli SNP e il 51, 4% delle INDEL rispettivamente con un’accuratezza del 90% e dell’89%. Risultati simili sono stati osservati sui dati reali del cromosoma 1 e anche dall’analisi dei due genomi provenienti dal sequenziamento WGS, per i quali si nota che il framework ha una sensibilit`a molto pi`u elevata, individuando un numero di SNP e di INDEL rispettivamente oltre 5 e oltre 2 volte maggiore rispetto ai risultati ottenuti da DiscoSNP++.

Analizzando invece il costo computazionale, rispetto alla pipeline dello stato dell’arte e facendo variare (ogni dieci) la copertura dei read tra 10× e 40× fino a raggiungerne una di 48×, si osserva un rallentamento del positional clustering di un fattore crescente da 1, 2 a 3, 1 escludendo il calcolo della eBWT, e un fattore crescente da 2, 1 a 5, 5 includendolo [40, Tabella 1]. Si pu`o inoltre nota- re che il tempo richiesto per calcolare la BWT corrisponde sempre al 56 − 60% del tempo totale impiegato dal positional clustering. In particolare, sempre per una copertura di 30×, considerato un tempo totale impiegato dal framework di Prezza et al. di 340 minuti, DiscoSNP++ ha prodotto i risultati in 80 minuti, un tempo oltre quattro volte inferiore. Infine, attraverso la parallelizzazione con 24 thread (che per`o limita l’analisi ai soli SNP) del positional clustering, per il caso in questio- ne, il tempo `e stato ridotto di un fattore oltre 10, impiegano 33 minuti (ottenendo comunque una precisione superiore a quella di DiscoSNP++).

CAPITOLO 4. Framework positional clustering 4.3. Performance del framework

CAPITOLO

5

Prefix-Free Parsing

Dal momento che, i database genomici sono spesso altamente ripetitivi, alcuni studi hanno seguito l’idea di applicare un semplice schema di compressione per poi calcolare la BWT sui risultati dalla codifica direttamente nella memoria interna. Tale idea era, gi`a nel 2012, alla base del software bwtdisk di Ferragina et al., ma una sua rivisitazione introdotta da Boucher et al. [46], come fase di pre-elaborazione, si distingue per semplicit`a e flessibilit`a, garantendo un processo e un’analisi dei dati con una quantit`a di risorse inferiori. Boucher et al. (nel 2019) hanno definito il Prefix-Free Parsing (PFP) come un algoritmo di pre-processing il cui scopo `e quello di semplificare e alleggerire il carico di lavoro durante il calcolo della Burrows-Wheeler Transform di un database genomico. Data una stringa 𝑠[1, 𝑛], il PFP produce un dizionario 𝐷 ed un parser 𝑃 di frasi sovrapposte tali per cui BWT(𝑠) pu`o essere calcolata da 𝐷 e 𝑃 utilizzando uno workspace proporzionale alla somma della lunghezza di 𝑃 e degli elementi di 𝐷, ed un tempo 𝑂(𝑛) quando possiamo lavorare nella memoria interna.

Anche se ad oggi sono stati proposti molti algoritmi per la creazione di SA, BWT ed LCP, non molti di questi sono adatti per trattare le banche dati genomiche. Boucher et al. [47] hanno inoltre studiato la possibilit`a di considerare il PFP di una stringa 𝑠 come una struttura dati che, attraverso l’implementazione di elementi di supporto, pu`o supportare query rapide riguardo la longest common extension (LCE), il suffix array, il longest common prefix (LCP) e la BWT; sempre in uno workspa- ce proporzionale alla somma della lunghezza di 𝑃 e degli elementi di 𝐷. Sebbene le strutture dati risultanti non abbiano una dimensione ridotta come altre strutture attuali che supportano le stesse query, il tempo di costruzione e il picco di memoria sono inferiori. Ad esempio, l’approccio attra- verso il PFP permette di costruire strutture dati per 1 000 varianti distinte del cromosoma umano 19 in poco pi`u di un’ora utilizzando 54 GB di memoria interna, che `e quasi la dimensione dei dati grezzi [46]. Con la stessa quantit`a di memoria interna, le altre strutture di dati non possono essere costruite per pi`u di 32 varianti distinte.

CAPITOLO 5. Prefix-Free Parsing 5.1. Teoria del Prefix-Free Parsing

5.1

Teoria del Prefix-Free Parsing

Sia 𝐸 ⊆ Σ𝑤un qualsiasi insieme di stringhe lunghe 𝑤 derivanti dall’alfabeto Σ e sia 𝐸

'

= 𝐸 ∪{#, $𝑤},

dove # e $ sono caratteri speciali lessicograficamente minori o uguali di ogni altro simbolo in Σ e $𝑤

corrisponde alla stringa formata da 𝑤 ripetizioni di $. Consideriamo una stringa 𝑠[1, 𝑛] sull’alfabeto Σ e sia 𝐷 l’insieme massimizzato tale per cui per 𝑑 ∈ 𝐷 valgono le seguenti condizioni:

𝑑 `e una sottostringa di #𝑠 $𝑤,

esattamente un prefisso proprio di 𝑑 `e contenuto in 𝐸

'

,

esattamente un suffisso proprio di 𝑑 `e contenuto in 𝐸

'

,

nessun’altra sottostringa di 𝑑 `e contenuta in 𝐸

'

.

dove il suffisso proprio di un elemento 𝑑 `e un qualsiasi suffisso 𝑑[𝑖, | 𝑑 |] per 2 ≤ 𝑖 ≤ | 𝑑 |, ossia un suo suffisso diverso dall’elemento completo.

Data 𝑠 e una tecnica efficiente per riconoscere stringhe in 𝐸, `e possibile costruire l’insieme 𝐷 iterativamente scansionando #𝑠 $𝑤 per trovare le occorrenze degli elementi di 𝐸

'

e aggiungere a

𝐷 ogni sottostringa di #𝑠 $𝑤 che inizia con lo stesso indice con cui comincia una delle occorrenze individuate e che termina con lo stesso indice con cui finisce l’occorrenza successiva. Nel mentre viene costruito 𝐷 viene anche creata la lista 𝑃, chiamata parser, delle occorrenze degli elementi di 𝐷 in #𝑠 $𝑤 identificati attraverso loro rango lessicografico in 𝐷.

Si consideri per esempio di avere l’alfabeto Σ

'

= {!,A,C,G,T}, il parametro 𝑤 = 2, l’insieme 𝐸 = {AC,AG,T!} ed la stringa 𝑠 = GATTACAT!GATACAT!GATTAGATA. Quindi da

#𝑠 $𝑤 =#GATTACAT!GATACAT!GATTAGATA$$

si ottiene il dizionario (di seguito riportato con gli elementi gi`a lessicograficamente ordinati) 𝐷 = { #GATTAC, ACAT!, AGATA$$, T!GATAC, T!GATTAG } e il parser 𝑃 di #𝑠 $𝑤risulta essere:

#GATTAC ACAT! T!GATAC ACAT! T!GATTAG AGATA$$

𝑃 = [ 0 1 3 1 4 2 ]

Esempio.

Boucher et al. [46] dimostrano che, una volta definiti il dizionario 𝐷 e il parser 𝑃, `e possibile calcolare la BWT di una stringa efficientemente operando nella memoria interna. Pi`u precisamente hanno enunciato il seguente teorema.

Teorema 5.1: `E possibile calcolare la BWT di una stringa𝑠$ lunga 𝑛 attraverso il dizionario 𝐷 e il parser 𝑃 utilizzando uno spazio di lavoro proporzionale alla somma della lunghezza di 𝑃 e degli elementi di 𝐷, ed un tempo 𝑂(𝑛) quando possiamo lavorare nella memoria interna.

L’importanza associata al Teorema 5.1 `e che, se la stringa 𝑠 contiene molte ripetizioni allora il dizionario 𝐷 sar`a relativamente piccolo, e, ulteriormente, se il dizionario 𝐷 `e sufficientemente lungo, allora anche il parser 𝑃 risulta essere minore di 𝑠. Quindi, anche se la stringa 𝑠 `e molto lunga (come accade per le stringhe che rappresentano le sequenze di DNA), se 𝐷 e 𝑃 hanno una dimensione totale che pu`o essere elaborata nella memoria interna, allora mediante il Teorema 5.1 `e possibile calcolare la BWT di 𝑠 effettuando le operazioni direttamente nella RAM dopo aver eseguito una singola scansione di 𝑠 durante la fase di parsing.

CAPITOLO 5. Prefix-Free Parsing 5.1. Teoria del Prefix-Free Parsing A sostegno del Teorema 5.1, e definito 𝑍 come l’insieme dei suffissi di lunghezza maggiore di 𝑤 degli elementi di 𝐷, di seguito vengono dimostrati sette Lemmi che gli autori hanno considerato per convalidare la teoria del Prefix-Free Parsing.

L’insieme 𝑍 dei suffissi di lunghezza maggiore di 𝑤 = 2 degli elementi di 𝐷 per l’esempio considerato `e

𝑍 =

{#GATTAC, GATTAC, ..., TAC, ACAT!, CAT!, AT!,

AGATA$$, GATA$$, ..., A$$,

T!GATAC, !GATAC, ..., TAC,

T!GATTAG, !GATTAG, ..., TAG} =

{ #GATTAC, !GATAC, !GATTAG, A$$, ACAT!, AGATA$$, AT!, ATA$$,

ATAC, ATTAC, ATTAG, CAT!, GATA$$, GATAC, GATTAC, GATTAG, T!GATAC, T!GATTAG, TA$$, TAC, TAG, TTAC, TTAG} Esempio.

Lemma 5.1: 𝑍 `e un insieme senza prefissi (prefix-free).

Dimostrazione. Considerate due stringhe𝑧, 𝑧

'

∈ 𝑍 e assumendo che 𝑧 `e un prefisso proprio di 𝑧

'

, con | 𝑧 | > 𝑤, gli ultimi caratteri di 𝑧, che sono un elemento di 𝐸

'

, risultano essere una sottostringa di 𝑧

'

. Tale stringa non corrisponderebbe per`o n´e al prefisso n´e al suf- fisso di 𝑧

'

. Pertanto, qualsiasi elemento 𝑑 ∈ 𝐷 con 𝑧

'

come suffisso presenterebbe almeno tre sottostringhe in 𝐸

'

, contrariamente alla

definizione di 𝐷. ■

𝑧' ∈ 𝑍 =

𝑤 𝑧 ∈ 𝑍

𝐸' = { … }

Dati due differenti suffissi in 𝑍, questi differiscono per un carattere che permette di stabilire il loro ordine lessicografico, il quale non varia appendendo una qualsiasi stringa ai due suffissi. Lemma 5.2: Supposto che𝑧, 𝑧

'

∈ 𝑍 e 𝑧 `e lessicograficamente minore di 𝑧

'

, ossia 𝑧 < 𝑧

'

. Allora, per qualsiasi stringa 𝑥, 𝑥

'

∈{Σ ∪ {#, $}}∗risulta che 𝑧𝑥 < 𝑧

'

𝑥

'

.

Dimostrazione. Attraverso il Lemma 5.1 sappiamo che le due strin- ghe 𝑧 e 𝑧

'

non sono l’una il prefisso proprio dell’altra. Inoltre, la supposizione che 𝑧 < 𝑧

'

implica che le stringhe non sono uguali, e che 𝑧𝑥 e 𝑧

'

𝑥

'

differiscono in uno dei loro primi 𝜀 = min(| 𝑧 |, | 𝑧

'

|) caratteri. Quindi, 𝑧 < 𝑧

'

implica che 𝑧𝑥 < 𝑧

'

𝑥

'

. ■

𝑧𝑥 = 𝑧'𝑥' = 𝑧 ∈ 𝑍 𝑥 𝑧' ∈ 𝑍 𝑥' 𝜀 ∈ 𝐸'

`E importante notare che, considerati tutti i possibili suffissi di #𝑠 $𝑤con una lunghezza maggiore

di 𝑤, in 𝑍 esiste esattamente un prefisso per ciascun suffisso considerato.

Lemma 5.3: Per qualsiasi suffisso𝑥 di #𝑠 $𝑤con | 𝑥 | > 𝑤, esattamente un prefisso 𝑧 di 𝑥 `e conte-

nuto nell’insieme 𝑍.

Dimostrazione. Sia 𝑑 una sottostringa che si estende dall’inizio dell’ultima occorrenza di un elemento di 𝐸

'

che inizia prima o alla posizione esatta in cui inizia 𝑥, fino alla fine della prima occorren- za di un elemento di 𝐸

'

che inizia dopo l’inizio di 𝑥. La stringa 𝑑 ha come prefisso e come suffisso un elemento di 𝐸

'

, quindi 𝑑 ∈ 𝐷. Sia 𝑧 il prefisso di 𝑥 che termina con la stessa occorrenza di 𝑑 in #𝑠 $𝑤,

allora | 𝑧 | > 𝑤 ed `e un suffisso di un elemento di 𝐷, quindi 𝑧 ∈ 𝑍. Per il Lemma 5.1 nessun altro prefisso di 𝑥 appartiene a 𝑍. ■

𝑥 = 𝑑 ∈ 𝐷 𝑧 ∈ 𝑍 𝑥 = 𝑑 ∈ 𝐷 𝑧 ∈ 𝑍 . . . $ . . . $ oppure ∈ 𝐸' 𝑤

CAPITOLO 5. Prefix-Free Parsing 5.1. Teoria del Prefix-Free Parsing Attraverso il Lemma 5.3 possiamo definire una funzione 𝑓 che mappa ciascun suffisso 𝑥 di #𝑠 $𝑤

con | 𝑥 | > 𝑤 con l’unico prefisso 𝑧 di 𝑥 con 𝑧 ∈ 𝑍.

Lemma 5.4: Siano𝑥 e 𝑥

'

suffissi di #𝑠 $𝑤 con | 𝑥 |, | 𝑥

'

| > 𝑤. Allora 𝑓 (𝑥) < 𝑓 (𝑥

'

) implica 𝑥 < 𝑥

'

.

Dimostrazione. Dalla definizione di𝑓 , si ha che 𝑓 (𝑥) e 𝑓 (𝑥

'

) sono i prefissi di 𝑥 e 𝑥

'

rispettivamente, con | 𝑓 (𝑥) |, | 𝑓 (𝑥

'

) | > 𝑤. Quindi dal Lemma 5.2, 𝑓 (𝑥) < 𝑓 (𝑥

'

) implica che 𝑥 < 𝑥

'

. ■ Si definisce adesso 𝑠

'

[1, 𝑛 + 1] = 𝑠[1, 𝑛]$ e 𝑔 la funzione che mappa ogni suffisso 𝑦 di 𝑠

'

con l’unico suffisso 𝑥 di #𝑠 $𝑤 che inizia con 𝑦, eccetto il caso in cui 𝑔 mappa 𝑠

'

[𝑛 + 1] = $ con #𝑠 $𝑤. Ogni stringa ottenuta da 𝑔(𝑦) ha lunghezza maggiore o uguale a 𝑤 ed `e quindi possibile fornirla come argomento alla funzione 𝑓 .

Lemma 5.5: La permutazione che ordina lessicograficamente𝑠[1, 𝑛]$𝑤, 𝑠[2, 𝑛]$𝑤, … , 𝑠[𝑛]$𝑤, #𝑠 $𝑤,

ordina lessicograficamente anche 𝑠

'

[1, 𝑛 + 1], 𝑠

'

[2, 𝑛 + 1], … , 𝑠

'

[𝑛 + 1].

Dimostrazione. Appendendo copie di “$” ai suffissi di𝑠

'

il loro ordine lessicografico non muta, quindi #𝑠 $𝑤 e 𝑠

'

[𝑛 + 1] = $ risultano essere rispettivamente il prefisso lessicograficamente minore

tra 𝑠[1, 𝑛]$𝑤, 𝑠[2, 𝑛]$𝑤, … , 𝑠[𝑛]$𝑤, #𝑠 $𝑤e tra 𝑠

'

[1, 𝑛 + 1], 𝑠

'

[2, 𝑛 + 1], … , 𝑠

'

[𝑛 + 1]. ■ Sia 𝛽 la funzione che, per 1 ≤ 𝑖 ≤ 𝑛 + 1, mappa i caratteri 𝑠

'

[𝑖] al rango lessicografico dei suffissi in 𝑍 come segue: 𝛽(𝑠

'

[𝑖]) = ⎧ ⎪ ⎪ ⎨ ⎪ ⎪ ⎩ rango lessicografico di 𝑓 (𝑔(𝑠

'

)) = 𝑓 (𝑠$𝑤) se 𝑖 = 𝑛 + 1 rango lessicografico di 𝑓 (𝑔(𝑠

'

[𝑖 + 1, 𝑛 + 1])) altrimenti

Lemma 5.6: Supposto che𝛽 (i) mappa 𝑘 copie di 𝑎 con il suffisso 𝑧 ∈ 𝑍, (ii) non mappa nessun altro carattere con 𝑧, e (iii) mappa un totale di 𝑡 caratteri ai suffissi in 𝑍 lessicograficamente minori di 𝑧. Allora, i caratteri compresi tra le posizioni (𝑡 + 1) e (𝑡 + 𝑘) della BWT di 𝑠

'

sono copie di 𝑎. Dimostrazione. Attraverso il Lemma 5.4 e il Lemma 5.5, se𝑓 (𝑔(𝑦)) < 𝑓 (𝑔(𝑦

'

)) allora 𝑦 < 𝑦

'

. Pertanto, 𝛽 ordina parzialmente i caratteri di 𝑠

'

nel loro ordine della BWT di 𝑠

'

, equivalentemente l’ordine parziale dei caratteri secondo 𝛽 pu`o essere esteso al loro ordine totale nella BWT. Ci`o perch´e ogni estensione totale di 𝛽 introduce le 𝑘 copie di 𝑎 nelle posizioni comprese tra (𝑡 + 1) e (𝑡 + 𝑘), stesso

intervallo in cui le copie appaiono nella BWT. ■

Per gestire i casi in cui la funzione 𝛽 mappa pi`u caratteri distinti allo stesso ragno lessicografico dei suffissi in 𝑍 (caso in cui il suffisso `e un elemento di 𝐷 oppure il suffisso di pi`u elementi distinti in 𝐷) `e opportuno introdurre il seguente lemma.

Lemma 5.7: Considerati due suffissi𝑥 e 𝑥

'

di #𝑠 $𝑤 che iniziano

con occorrenze di 𝑧 ∈ 𝑍 e siano 𝑞 e 𝑞

'

i suffissi di 𝑃 che codificano gli ultimi 𝑤 caratteri delle occorrenze di 𝑧 e i caratteri seguenti, rispettivamente in 𝑥 e 𝑥

'

. Se 𝑥 < 𝑥

'

allora 𝑞 < 𝑞

'

. 𝑥 = 𝑧 ∈ 𝑍 𝑃 = 𝑥' = 𝑞 ' 𝑞 . . . $ . . . $

Dimostrazione. Dato che𝑧 occorre almeno due volte in #𝑠 $𝑤, esso non pu`o terminare con $𝑤 e quindi non pu`o essere un suffisso di #𝑠 $𝑤, pertanto, esiste un primo carattere in cui 𝑥 e 𝑥

'

differi-

scono. Dato che gli elementi di 𝐷 sono rappresentati nel parser secondo il loro ordine lessicografico,

CAPITOLO 5. Prefix-Free Parsing 5.1. Teoria del Prefix-Free Parsing Giunti a questo punto, attraverso il dizionario delle sottostringhe 𝐷 e il parser 𝑃 `e possibile calcolare la frequenza con cui ogni elemento 𝑧 ∈ 𝑍 `e preceduto da ogni carattere distinto 𝑎 in #𝑠 $𝑤, oppure, equivalentemente quante copie di 𝑎 vengono mappate con il rango lessicografico di

𝑧 dalla funzione 𝛽. `E necessario considerare due casi possibili per ciascun elemento 𝑧 ∈ 𝑍. 1. Se 𝑧 `e il suffisso proprio di un solo elemento 𝑑 ∈ 𝐷, allora 𝛽 mappa solo copie del carattere

antecedente a 𝑑 al rango lessicografico di 𝑧. Attraverso il Lemma 5.6 `e possibile essere a conoscenza dei caratteri mappati a ciascun rango lessicografico da 𝛽 e della somma parziale delle frequenze dei caratteri mappati da 𝛽. Mediante queste informazioni `e possibile calcolare le sottostringhe della BWT di 𝑠

'

che contengono tutti i caratteri mappati da 𝛽 con elementi 𝑧 che sono suffissi di un solo elemento di 𝐷.

2. Se, invece, 𝑧 `e un elemento di 𝐷 oppure `e il suffisso di pi`u elementi distinti in 𝐷, allora 𝛽 pu`o mappare pi`u caratteri distinti al rango lessicografico di 𝑧. In questo caso `e necessario considerare le occorrenze in 𝑃 degli elementi di 𝐷 con suffisso 𝑧 e ordinare i caratteri che precedono tali occorrenze di 𝑧 nell’ordine lessicografico dei rimanenti suffissi di 𝑃 che, per il Lemma 5.7, `e il loro ordine nella BWT di 𝑠

'

.

Le informazioni calcolate per la stringa di esempio sono riportate in Figura 5.1, in cui ogni riga mostra, per ciascun elemento 𝑧 ∈ 𝑍, il rango lessicografico 𝑟, il carattere mappato da 𝛽, il suffisso 𝑧, l’elemento di 𝐷 da cui 𝑧 proviene, la frequenza totale con cui il carattere viene mappato con 𝑟 e, infine, la somma parziale delle frequenze precedenti. Dal momento che la funzione 𝛽 mappa un solo carattere per ciascun rango, ad eccezione per il rango 19, applicando il Lemma 5.6, la sequenza incompleta della BWT di 𝑠

'

`e: ATTTTTTCCGGGGAAA!$!AAA––TAA.

Rango Caratteremappato Suffisso Fonte Frequenza parzialeSomma

0 A #GATTAC 0 1 0 1 T !GATAC 3 1 1 2 T !GATTAG 4 1 2 3 T A$$ 2 1 3 4 T ACAT! 1 2 4 5 T AGATA$$ 2 1 6 6 C AT! 1 2 7 7 G ATA$$ 2 1 9 8 G ATAC 3 1 10 9 G ATTAC 0 1 11 10 G ATTAG 4 1 12 11 A CAT! 1 2 13 12 A GATA$$ 2 1 15 13 ! GATAC 3 1 16 14 $ GATTAC 0 1 17 15 ! GATTAG 4 1 18 16 A T!GATAC 3 1 19 17 A T!GATTAG 4 1 20 18 A TA$$ 2 1 21 19 T,A TAC 0,3 2 22 20 T TAG 4 1 24 21 A TTAC 0 1 25 22 A TTAG 4 1 26

Figura 5.1: Informazioni calcolate per𝑠 = GATTACAT!GATACAT!GATTAGATA. Esempio.

CAPITOLO 5. Prefix-Free Parsing 5.2. Implementazione del Prefix-Free Parsing