gestione dei dati di letture di sequenziamento di nucleotidi
Per facilitare le fasi multiple dell'assemblatore dazzler, tutti i dati
delle letture sono organizzati in ciò che a tutti gli effetti è un database
delle letture e delle loro meta-informazioni. Gli obiettivi del progetto di
questo database sono i seguenti:
* il database memorizza le informazioni sulle letture Pacbio sorgenti in
maniera tale che possa ricreare i dati di input originali, permettendo
perciò a un utente di rimuovere i file sorgenti (effettivamente
ridondanti); ciò permette di evitare di duplicare gli stessi dati, una
volta nel file sorgente e una volta nel database;
* il database può essere costruito in maniera incrementale, cioè nuovi
dati sulle sequenze possono essere aggiunti al database nel tempo;
* il database permette in maniera flessibile di memorizzare qualsiasi
metadato desiderato per le letture; ciò è realizzato con il concetto
delle *tracce* che gli implementatori possono aggiungere quando ne hanno
bisogno;
* i dati sono tenuti in una forma compressa equivalente ai file .dexta e
.dexqv del modulo di estrazione dati; sia le informazioni .fasta sia
.quiva per ogni lettura sono tenute nel database e possono essere
ricreate a partire da esso; le informazioni .quiva possono essere
aggiunte separatamente e successivamente se lo si desidera;
* per facilitare lavori paralleli e operazioni su cluster delle fasi
dell'assemblatore, il database ha un concetto di *partizionamento
corrente* in cui tutte le letture che sono sopra una data lunghezza e
opzionalmente uniche per un pozzetto, sono divise in *blocchi*
contenenti approssimativamente un dato numero di basi, eccetto
eventualmente l'ultimo blocco che può avere un conteggio ridotto;
spesso i programmi possono essere eseguiti su blocchi o coppie di
blocchi e ognuno di tali lavori è ragionevolmente ben bilanciato dal
momento che i blocchi sono tutti della stessa dimensione; è necessario
essere cauti nel cambiare la partizione durante un assemblaggio perché
ciò potrebbe annullare la validità strutturale di qualsiasi risultato
parziale basato sui blocchi.