Gestisco un database per un centro di sequenziamento. Ci sono altri sviluppatori che prendono i dati da questo e che eseguono processi automatizzati e semi automatizzati dal database.
Stiamo discutendo di una modifica al database.
Al momento disponiamo di una libreria con una relazione uno a uno con multiplex_index, che può essere utilizzata per identificare la libreria. Ora vogliamo aggiungere un GBS_index opzionale a ciascuna libreria (un'altra relazione opzionale uno a uno). Quindi ogni libreria avrà un multiplex_index e opzionalmente un GBS_index.
Le colonne memorizzate sul nuovo GBS_index saranno le stesse di multiplex_index. Quindi abbiamo 2 opzioni per la memorizzazione dei dati GBS_index.
1) Memorizza i dati GBS_index nella tabella multiplex_index originale e identifica il campo "tipo".
2) Possiamo aggiungere una tabella parallela per GBS_index, che rispecchia la tabella multiplex_index.
Io preferisco l'opzione della seconda tabella parallela, poiché ritengo che sia meno probabile che si interrompa il codice esistente (gli script interrogano il database per un elenco di multiplex_indexes, in questo caso è necessario escludere l'indice GBL_indexes).
Concettualmente i due tipi di indici sono entrambi "indici multiplex", ma usati in modo leggermente diverso.
Esistono validi argomenti a favore o contro l'una o l'altra opzione?
Ok, una rapida spiegazione del sequenziamento del DNA può essere d'aiuto.
Il sequenziamento del DNA comporta il prelievo di DNA dalle cellule e la suddivisione in "letture" di circa 200 coppie di basi (ciascuna coppia di basi è come un DNA char A, T, G o C).
Carichiamo le librerie (DNA di un campione biologico preparato) su una macchina e le sequenziamo. I due tipi di indici di cui ho parlato sono un altro pezzo di DNA con una sequenza nota, che è collegato all'inizio del DNA della libreria prima che venga sequenziato. In questo modo, possiamo leggere il primo bit di sequenza che possiamo identificare da quale libreria sono stati letti (~ 200 caratteri). (Siamo generalmente interessati al numero di letture che corrispondono a una posizione su un genoma di riferimento).
Ora possiamo avere uno (multiplex) o due (multiplex + GBS) indici all'inizio del DNA della biblioteca (uno arriva dopo l'altro), che formano una combinazione unica per identificare la libreria.
Inizialmente due librerie con lo stesso multiplex_index non dovrebbero essere caricate insieme, poiché non è stato possibile identificarle dalla sequenza multiplex_index. Ora la combinazione dei due indici dovrebbe essere unica.