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