• Non ci sono risultati.

Localizzazione degli eBWT cluster attraverso il Metodo 1

6.2 Localizzazione degli eBWT cluster

6.2.1 Localizzazione degli eBWT cluster attraverso il Metodo 1

La teoria del Prefix-Free Parsing, e pi`u in particolare il Lemma 5.5 (nella Sezione 5.1), dimostra che la permutazione che ordina lessicograficamente gli elementi di ๐‘ ordina lessicograficamente anche i suffissi di ๐‘ . I suffissi dellโ€™insieme ๐‘ possono essere calcolati, come suggerito dallโ€™imple- mentazione eseguita da Boucher et al., attraverso lโ€™algoritmo gSACAK. Il suffix array e lโ€™array LCP, rispettivamente denotati con SAZe lcpZ, prodotti da gSACAK contengono le informazioni che gli

autori originariamente hanno utilizzato per stabilire (una parte) dellโ€™ordine dei caratteri della BWT, ed alcune di quelle informazioni sono importanti per noi al fine di localizzare gli eBWT cluster. Per garantire la correttezza della teoria del Prefix-Free Parsing, in SAZsi considerano i soli suffissi con

lunghezza almeno ๐‘ค.

`E importante tenere presente che calcolare la eBWT di un insieme di stringhe produce risultati distinti se queste vengono concatenate con un terminatore univoco, oppure se utilizzato lo stesso per tutte le stringhe. Inoltre, si ricorda che `e necessario appendere un terminatore differente alla fine di ogni stringa per garantire la reversibilit`a della eBWT, anche se tale propriet`a non `e impor- tante per il nostro utilizzo della eBWT. Lโ€™array lcpZcontiene la lunghezza del prefisso pi`u lungo

in comune tra due suffissi degli elementi di ๐ท consecutivi nel rispettivo suffix array SAZ. Lโ€™utilizzo

di un terminatore univoco per tutti i read, come stabilito dal Prefix-Free Parsing, produce delle informazioni per il nostro scopo non del tutto corrette. In particolare, esiste la possibilit`a che due suffissi presentino lo stesso carattere terminatore in una delle posizioni precedenti alla posizione contenente il carattere che li differenzia e che stabilisce il loro ordine lessicografico. Tali condizioni sono la causa di una differenza tra lโ€™array lcpZcalcolato e lโ€™array LCP calcolato sui suffissi ordina-

ti di stringhe che terminano con un carattere univoco. Si ipotizzi quindi di poter calcolare lโ€™array lcp'

Zdefinito come segue.

Definizione 6.1: Lโ€™array lcp'Z[1, | ๐‘ |] memorizza la lunghezza del prefisso pi`u lungo in comune tra due elementi di ๐‘ consecutivi nel rispettivo suffix array SAZ, ma per cui considera il carattere

terminatore univoco.

In altri termini, se il prefisso comune pi`u lungo ๐›ผ tra i suffissi ๐‘ง, ๐‘ง

'

โˆˆ ๐‘ contiene la prima occorrenza del carattere terminatore in posizione ๐“ allora lcp'

Zmemorizza il valore ๐“ โˆ’ 1 (vedi Figura 6.2). ๐‘ง = ๐‘ง'= โ€ฆ # โ€ฆ โ€ฆ # โ€ฆ < ๐“ 1 ๐›ผ ๐›ผ

Figura 6.2: Illustrazione del caso in cui il prefisso comune pi`u lungo๐›ผ tra i suffissi ๐‘ง, ๐‘ง' โˆˆ ๐‘

contiene la prima occorrenza del carattere terminatore in posizione ๐“, lcpZe lcp'Zmemorizzano

CAPITOLO 6. Variant calling con il Prefix-Free Parsing 6.2. Localizzazione degli eBWT cluster Lemma 6.1: Una volta calcolato lcp'

Z[1, | ๐‘ |] `e possibile localizzare gli eBWT cluster individuando

i minimi locali contenuti in lcp' Z.

Dimostrazione. Il Teorema 4.2 (Sezione 4.1.2) specifica che i cluster sono delimitati dai minimi locali dei valori dellโ€™array lcp'

Z; in particolare, prova che con alta probabilit`a i cluster corrispondono a

intervalli ebwt[๐‘Ž๐‘’, ๐‘๐‘’] che non contengono un minimo locale nella sezione lcp'Z[๐‘Ž, ๐‘], ossia nessun

indice 1 < ๐‘Ž โ‰ค ๐‘– โ‰ค ๐‘ < ๐‘› soddisfa lcp'

Z[๐‘– โˆ’ 1] โ‰ฅ lcp'Z[๐‘–] < lcp'Z[๐‘– + 1]. โ– 

Fino ad ora stiamo trattando una versione dellโ€™eBWT cluster che possiamo definire โ€œastrattaโ€, in quanto la BWT non `e ancora stata effettivamente calcolata. Seguendo concettualmente il processo implementativo del Prefix-Free Parsing, siamo fermi prima della sua ultima fase, quella in cui viene costruita la BWT dal suffix array e dalle inverted-list delle frasi contenute in ๐ท. Non essendo il no- stro obiettivo quello di calcolare lโ€™intera BWT, possiamo considerare lโ€™idea di ridurre ulteriormente le operazioni di calcolo recuperando i soli caratteri contenuti nella sottostringa interessata, secondo il procedimento del Prefix-Free Parsing, solo dopo aver localizzato lโ€™eBWT cluster. In particolare, dopo aver calcolato le inverted-list delle frasi di ๐ท e lโ€™array ๐ด (vedere Sezione 5.2 e Figura 5.4), per ciascun suffisso di SAZ[๐‘Ž, ๐‘] valgono le seguenti propriet`a:

โˆ™

se `e il suffisso di un unico elemento di ๐ท, `e preceduto dal carattere ๐‘ con una frequenza ๐‘˜, allora si estraggono ๐‘˜ copie di ๐‘;

โˆ™

se coincide con una frase ๐‘‘ del dizionario ๐ท, allora si recuperano i caratteri attraverso lโ€™array ๐ด nelle posizioni stabilite dalla inverted-list di ๐‘‘;

โˆ™

se `e un suffisso proprio di pi`u elementi di ๐ท, allora si utilizza una struttura heap per unire le rispettive inverted-list e recupera un carattere ogni volta che viene eseguita lโ€™operazione di pop dalla struttura heap.

La Figura 6.3 riporta una sezione dellโ€™eBWT e degli array LCP lcpZe lcp' Z cal-

colati per lโ€™insieme ๐‘ dei suffissi degli elementi dellโ€™insieme ๐ท in esempio. Le righe evidenziate rappresentano lโ€™eBWT cluster localizzato attraverso i minimi locali in lcp'

Z.

Si osservi che localizzando invece lโ€™eBWT cluster identificando i minimi locali in lcpZsi sarebbe ridotto il cluster alle sole prime tre righe. In questo esempio specifico, ogni suffisso si presenta con frequenza 1 nellโ€™insieme ๐‘, pertanto gli indici dellโ€™eBWT cluster e degli array lcp'

Ze SAZ coincidono. eBWT SAZ lcpZ lcp'Z โ€ฆ โ€ฆ โ€ฆ โ€ฆ C GC###### โ€ฆ โ€ฆ T GCGA#ATGCGAT#ATGCGC 2 2 T GCGAT#ATGCGC 4 4 C GCGAT#GATGCGATA#ATGCGC 6 5 C GCGAT#T 6 5 T GCGATA#ATGCGC 5 5 C GCGATC#GATGCGC 5 5 T GCGC###### 3 3 T GCGCGAT#GATGCGATA#ATGCGC 4 4 โ€ฆ โ€ฆ โ€ฆ โ€ฆ

Figura 6.3: eBWT cluster localizzato con il Metodo 1 e lโ€™array lcp' Z.

CAPITOLO 6. Variant calling con il Prefix-Free Parsing 6.2. Localizzazione degli eBWT cluster Si consideri per`o, che in ciascuno dei casi precedentemente elencati, esiste la possibilit`a che ad un suffisso in SAZ[๐‘Ž, ๐‘] venga associato pi`u di un carattere, uguale o diverso, della BWT finale. Per tale

ragione, nella realizzazione del Metodo 1, `e opportuno denotare lโ€™eBWT cluster con ebwt[๐‘Ž๐‘’, ๐‘๐‘’]

riferito alle sezioni SAZ[๐‘Ž, ๐‘] e lcp'Z[๐‘Ž, ๐‘].

Lemma 6.2: Se almeno un suffisso in SAZ[๐‘Ž, ๐‘] (i) coincide con un elemento di ๐ท, oppure (ii) `e

un suffisso proprio di pi`u elementi di ๐ท, oppure (iii) si presenta con frequenza maggiore di 1 nellโ€™insieme ๐‘; allora le sezioni SAZ[๐‘Ž, ๐‘] e lcp'Z[๐‘Ž, ๐‘] denotano lโ€™eBWT cluster ebwt[๐‘Ž๐‘’, ๐‘๐‘’].

Dimostrazione. Tale affermazione `e verificata in quanto, considerato un suffisso๐‘ง โˆˆ ๐‘ appartenente allโ€™eBWT cluster con ebwt[๐‘Ž๐‘’, ๐‘๐‘’], se vengono mappati almeno ๐‘˜ โ‰ฅ 2 valori o uno stesso valore con

frequenza ๐‘˜ โ‰ฅ 2 allo stesso suffisso ๐‘ง, allora per allineare gli indici ๐‘Ž๐‘’e ๐‘๐‘’della sottostringa della

eBWT con gli indici ๐‘Ž e ๐‘ degli array SAZe lcp'Z`e necessario avere ๐‘˜ ripetizioni dei valori contenuti

in SAZe lcp'Zper il suffisso ๐‘ง (vedi Figura 6.4). โ– 

๐‘– Caratteremappato SAZ Frequenza lcp'Z

โ€ฆ โ€ฆ โ€ฆ โ€ฆ โ€ฆ GCGA# โ€ฆ 2 ๐‘Ž G GCGACC. . . 1 4 T,A GCGAG. . . 1 4 C GCGAT. . . 1 4 ๐‘ T GCGATC. . . 2 5 โ€ฆ GTA# โ€ฆ 1 โ€ฆ โ€ฆ โ€ฆ โ€ฆ ๐‘– eBWT SAZ lcp โ€ฆ โ€ฆ โ€ฆ โ€ฆ GCGA# 2 ๐‘Ž๐‘’ G GCGACC. . . 4 T GCGAG. . . 4 A GCGAG. . . 4 C GCGAT. . . 4 T GCGATC. . . 5 ๐‘๐‘’ T GCGATC. . . 5 โ€ฆ GTA# 1 โ€ฆ โ€ฆ โ€ฆ

Figura 6.4: Differenza degli indici degli array SAZ[๐‘Ž, ๐‘] e lcp'Z[๐‘Ž, ๐‘] con quelli della sottostringa

coperta dallโ€™eBWT cluster, che qui corrisponde a ebwt[๐‘Ž๐‘’, ๐‘๐‘’] = GTACTT.

Tra i casi possibili si ha in particolare quello in cui gli indici indici ๐‘Ž๐‘’e ๐‘๐‘’della sottostringa della

BWT sono allineati con gli indici ๐‘Ž e ๐‘ degli array SAZe lcp'Z.

Lemma 6.3: Se ogni suffisso in SAZ[๐‘Ž, ๐‘] `e il suffisso proprio di un solo elemento di ๐ท che si

presenta con frequenza 1 nellโ€™insieme ๐‘, allora ๐‘Ž๐‘’= ๐‘Ž e ๐‘๐‘’ = ๐‘ e di conseguenza possiamo denotare

ebwt[๐‘Ž๐‘’, ๐‘๐‘’] = ebwt[๐‘Ž, ๐‘].

Dimostrazione. Gli indici๐‘Ž๐‘’ e ๐‘๐‘’ della sottostringa della eBWT e gli indici ๐‘Ž e ๐‘ degli array SAZe

lcp'Zsono allineati per ogni suffisso ๐‘ง โˆˆ ๐‘ appartenente a SAZ[๐‘Ž, ๐‘] in quanto a ๐‘ง viene mappato un

unico carattere, ed essendo la frequenza 1 tale carattere comparir`a una sola volta nella sottostringa

della BWT (vedi Figura 6.5). โ– 

๐‘– Caratteremappato SAZ Frequenza lcp'Z

โ€ฆ โ€ฆ โ€ฆ โ€ฆ โ€ฆ GCGA# โ€ฆ 2 ๐‘Ž G GCGACC. . . 1 4 T GCGAG. . . 1 4 C GCGAT. . . 1 4 ๐‘ T GCGATC. . . 1 5 โ€ฆ GTA# โ€ฆ 1 โ€ฆ โ€ฆ โ€ฆ โ€ฆ ๐‘– eBWT SAZ lcp โ€ฆ โ€ฆ โ€ฆ โ€ฆ GCGA# 2 ๐‘Ž๐‘’ G GCGACC. . . 4 T GCGAG. . . 4 C GCGAT. . . 4 ๐‘๐‘’ T GCGATC. . . 5 โ€ฆ GTA# 1 โ€ฆ โ€ฆ โ€ฆ

Figura 6.5: Coincidenza degli indici degli array SAZ[๐‘Ž, ๐‘] e lcp'Z[๐‘Ž, ๐‘] con quelli della sottostrin-

CAPITOLO 6. Variant calling con il Prefix-Free Parsing 6.2. Localizzazione degli eBWT cluster Pertanto la sottostringa della BWT `e lunga almeno tanto quanto la sottostringa delimitata dai minimi locali nellโ€™array lcp'

Z. Questo fatto, comunque, non crea nessun problema dal punto di

vista teorico, pu`o solo causare una variazione tra gli indici che definiscono lโ€™eBWT cluster e quelli delle strutture necessarie alla loro localizzazione che deve essere gestita nellโ€™implementazione.

Seguendo le considerazioni della strategia pi`u recente presentata da Prezza et al., nella pratica possiamo evitare di calcolare lโ€™array lcp'

Zeffettivo memorizzando le informazioni necessarie in una

struttura pi`u compressa. Il bit-vector localMinZ[1, | ๐‘ |], indica le posizioni in cui la lunghezza del

longest common prefix `e un minimo locale nellโ€™array lcp'

Z. Allo stesso tempo possiamo creare il

bit-vector KminZ[1, | ๐‘ |], per indicare le posizioni in cui la lunghezza del longest common prefix `e

maggiore della soglia minima ๐‘˜minโ‰ฅ ๐‘ค e KrightZ[1, | ๐‘ |], per specificare le posizioni da cui estrarre

i ๐‘˜rightโ‰ฅ ๐‘ค nucleotidi che formano il contesto. Gli array possono essere calcolati modificando le

formule (4.2), (4.3) e (4.4), come segue: KminZ[๐‘–] = โŽง โŽช โŽช โŽจ โŽช โŽช โŽฉ 1 se lcp' Z[๐‘–] โ‰ฅ kmin 0 altrimenti (6.1) localMinZ[๐‘–] = โŽง โŽช โŽช โŽจ โŽช โŽช โŽฉ 1 se lcp' Z[๐‘– โˆ’ 1] โ‰ฅ lcp'Z[๐‘–] < lcp'Z[๐‘– + 1] 0 altrimenti (6.2) KrightZ[๐‘–] = โŽง โŽช โŽช โŽจ โŽช โŽช โŽฉ 1 se lcp' Z[๐‘–] โ‰ฅ kright 0 altrimenti (6.3)

Attraverso queste strutture dati compresse, per il Metodo 1, un eBWT cluster corrisponde alla massima sottostringa ebwt[๐‘Ž๐‘’, ๐‘๐‘’] tale per cui, per ogni valore ๐‘Ž โ‰ค ๐‘– โ‰ค ๐‘ si ha che KminZ[๐‘–] = 1 e

localMinZ[๐‘–] = 0.

La Figura 6.6 riporta, oltre ad una sezione dellโ€™eBWT e degli array LCP lcpZe lcp'

Z, le sezioni dei bit-vector localMinZ, KminZe KrightZcalcolati, per lโ€™insieme ๐‘ dei suffissi

degli elementi dellโ€™insieme ๐ท in esempio, rispettivamente attraverso le formule (6.2), (6.1) e (6.3) con ๐‘˜min= 2 e ๐‘˜right= 2. Le righe evidenziate con colore pi`u intenso rappresentano lโ€™eBWT

cluster localizzato attraverso i bit-vector localMinZe KminZ: per ogni suffisso del cluster si ha

che localMinZ[๐‘–] = 0 e KminZ[๐‘–] = 1.

eBWT SAZ lcpZ lcp'Z localMinZ KminZ KrightZ

โ€ฆ โ€ฆ โ€ฆ โ€ฆ C GATGCGC 6 6 0 1 1 C GC###### 1 1 1 0 0 T GCGA#ATGCGAT#ATGCGC 2 2 0 1 1 T GCGAT#ATGCGC 4 4 0 1 1 C GCGAT#GATGCGATA#ATGCGC 6 5 0 1 1 C GCGAT#T 6 5 0 1 1 T GCGATA#ATGCGC 5 5 0 1 1 C GCGATC#GATGCGC 5 5 0 1 1 T GCGC###### 3 3 1 1 1 T GCGCGAT#GATGCGATA#ATGCGC 4 4 1 1 1 โ€ฆ โ€ฆ โ€ฆ โ€ฆ

Figura 6.6: eBWT cluster localizzato con i bit-vector localMinZe KminZdel Metodo 1.

CAPITOLO 6. Variant calling con il Prefix-Free Parsing 6.2. Localizzazione degli eBWT cluster