Alta capacità del DNA di archiviazione di dati a lunghezza variabile utilizzando Oligonucleotidi ripetere accumulare codice e la mappatura di ibridi
Un pratico DNA sistema di archiviazione dei dati con elevata capacità
Abbiamo iniziato con la costruzione di un’architettura di archiviazione dei dati e il recupero di dati da un DNA-based storage (Fig. 1, lettera A)). I dati utente sono stati prima segmentati in 11.400 pacchetti utente binari con ogni lunghezza del pacchetto di 266 bit. Per correggere gli errori che si verificano in qualsiasi fase dei processi di archiviazione del DNA, tra cui sintesi, amplificazione, memorizzazione e preparazione del campione per il sequenziamento, abbiamo applicato una codifica RA su pacchetti utente binari in cui sono stati generati pacchetti ridondanti/parità al 5%. Con ciascuno dei 12.000 pacchetti binari, sono stati aggiunti 14 bit per l’indicizzazione per ordinare gli oligos stocastici e 20 bit per il Cyclic Redundancy Check (CRC) per rilevare gli errori interni in ciascun pacchetto. Di conseguenza, il numero totale di bit associati a ciascun pacchetto è diventato di 300 bit (vedere il file aggiuntivo 1: Figura S4). Successivamente, abbiamo mappato tutte le sequenze binarie in sequenze di DNA attraverso lo schema di mappatura ibrido proposto. Quindi le sequenze di DNA sono state inviate a Twist Bioscience per la sintesi di oligos. Dopo aver ricevuto il pool oligos sintetizzato, lo abbiamo amplificato usando la reazione a catena della polimerasi (PCR) prima di inviare i campioni a NovogeneAIT per il sequenziamento utilizzando Illumina HiSeq. Nell’ultima fase, abbiamo analizzato e decodificato i dati di sequenziamento per convertire i record di DNA in dati binari digitali. Abbiamo prima down-campionato la sequenza milioni legge dal risultato di sequenziamento ed eseguito il contrario di codifica RA e mappatura per ricostruire i dati utente originali senza errori, convalidando la fattibilità del nostro metodo.
Oltre al recupero completo dei dati utilizzando i risultati del sequenziamento, abbiamo anche analizzato quantitativamente lo schema di archiviazione basato sul DNA proposto e lo abbiamo confrontato con altri schemi all’avanguardia, facendo riferimento a una precedente tabella di confronto (Fig. 1, lettera C)). La definizione dettagliata delle metriche delle prestazioni nella tabella è descritta nel file aggiuntivo 1: Sezione S7. Nella tabella, abbiamo confrontato solo con gli schemi che sono stati progettati e testati con la premessa del formato di archiviazione oligo pool in cui sono stati sintetizzati gli oligos corti a filamento singolo di lunghezza intorno a 200nt. Si noti che con l’ipotesi equivalente di memorizzare filamenti di DNA molto più lunghi come , cioè, 1000bp, lo schema di codifica proposto rimane fattibile e la densità di informazioni nette aumenterà con la lunghezza, ottenendo una densità maggiore rispetto, cioè , 1.84 bit/base su 1.74 bit/base (vedere File aggiuntivo 1: Sezione S3).
L’alta densità di informazioni nette di 1.67 bit / nt ottenuti dallo schema di archiviazione basato sul DNA proposto (Fig. 1 (D)) è dovuto principalmente alle seguenti due tecniche che abbiamo usato. In primo luogo, lo schema di mappatura ibrido proposto presenta un potenziale di mappatura di 1,98 bit/nt con un piccolo spazio dell ‘ 1% dal limite superiore teorico di 2 bit/nt. In secondo luogo, il codice RA ottimizzato per il controllo degli errori ha una piccola ridondanza di 1,05. Insieme all’indicizzazione a 14 bit e al CRC a 20 bit, lo schema ottiene una densità di informazione netta di 1,67 bit/nt, producendo il 91% della capacità di Shannon (1,83 bit/nt con 0.tasso di abbandono del 5%), che è del 6% in più rispetto all’ultimo più alto riportato in (File aggiuntivo 1: Sezione S3). Teoricamente, rispetto a, l’aumento della nostra densità di informazioni è il risultato combinato degli oligos del DNA di lunghezza variabile leggermente più lunghi (151nt-159nt contro 152nt, esclusi i siti di legame del primer), la minore ridondanza del controllo degli errori (1,05 contro 1,07) e l’indicizzazione più breve (14 bit contro 32 bit). La lunghezza degli oligos del DNA è elaborata destinata per fare pieno uso delle tecniche ampiamente disponibili correnti della sintesi del DNA (Bioscience di TORSIONE, NOI), che possono sintetizzare efficientemente gli oligos lunghi 200nt. Il design del codice RA ottimizzato offre una ridondanza del controllo degli errori leggermente ridotta con l’ipotesi equivalente di affrontare il tasso di abbandono pratico dell ‘ 1,3% come , mentre il ripristino completo con copertura 10x (10,5 x in ) indica che la resilienza degli errori viene mantenuta. La differenza più netta sorge nell’indicizzazione, in cui usiamo 14 bit esclusivamente per indicare l’ordine di 12000 oligos codificati, mentre usa 32 bit per rappresentare i semi necessari per la trasformazione di Luby che imposta la base del codice di fontana, con conseguente bit di indicizzazione ridondanti.
Per verificare ulteriormente che le prestazioni ad alta capacità dello schema di codifica proposto mantengano bene con l’aumento della dimensione dei dati (scalabilità), abbiamo stimato la densità di informazioni nette per la codifica delle dimensioni dei dati con magnitudini più elevate in silico, cioè da 2 MB a 2000 MB. Le densità stimate diminuiscono leggermente con l’aumento esponenziale della dimensione dei dati a causa dell’incremento della lunghezza di indicizzazione richiesta per la registrazione di dimensioni di dati più grandi (File aggiuntivo 1: Sezione S3 e Fig. 1, lettera E)). Si ottiene una densità di 1,66 bit/nt per la memorizzazione di 2 MB di dati di origine, che è ancora superiore del 6% rispetto . Inoltre, sia il codice RA che la strategia di mappatura ibrida costituita dallo schema di codifica proposto hanno una bassa complessità che sono efficienti da implementare nella pratica. In particolare, l’uso del codice RA impedisce il potenziale errore di decodifica (dovuto alla perdita di voci iniziali per l’avvio della decodifica nel processo di screening) e la ridondanza degli indirizzi che possono sorgere in DNA fountain, e la mappatura ibrida raggiunge un potenziale di mappatura molto elevato che è competitivo con DNA fountain evitando l’elevata complessità che si presenta nei codici a blocchi convenzionali vincolati.
Inoltre, abbiamo calcolato la densità fisica che lo schema proposto potrebbe esibire. Attraverso esperimenti di diluizione, gli autori hanno osservato il tasso di abbandono del 4% con un campione di stoccaggio del DNA 10pg, che si avvicinava quasi al limite del decodificatore (che era predeterminato dalla ridondanza del codice). Il codice RA utilizzato nel nostro schema è stato progettato in modo ottimale con un livello di ridondanza sotto la stessa ipotesi di tasso di abbandono considerato in . Abbiamo anche dimostrato che teoricamente il nostro codice può tollerare fino al tasso di abbandono del 4,75% (file aggiuntivo 1: Figura S4), che è superiore al tasso di abbandono del 4% osservato nel sequenziamento del campione 10pg. Con un limite di decodifica simile, il nostro schema proposto probabilmente funzionerebbe come la fontana del DNA negli esperimenti a basso peso molecolare (ad esempio, con campione 10pg) a causa dell’uso delle stesse pipeline, protocolli e standard dell’esperimento. In altre parole, la progettazione del codice nella fase iniziale consente che il sistema proposto potrebbe recuperare i dati da condizioni soggette a errori negli esperimenti di diluizione simile a fontana del DNA. Sotto l’ipotesi di ∼1300 molecole per oligo in media, profondità di sequenziamento di 511x, l’equivalente di condutture, i protocolli e gli standard come il 10pg diluizione esperimento nel DNA fontana, potremmo computazionalmente stima che il nostro regime, sarà possibile ottenere un fisico densità di 239 PB/g \(\left (\frac {266*11400/8\text {byte}}{1300*11400*1.0688*10^{-19}\text {grammo}}\right)\). Tuttavia, è necessario un esperimento rigoroso per verificare questa densità fisica computazionalmente stimata.
Progettazione del codice RA e schema di mappatura ibrida per lo stoccaggio del DNA
Abbiamo progettato un metodo di codifica che comprende il codice RA (Repeat Accumulate) a livello di oligo e un efficiente schema di mappatura ibrida.
Progettazione del codice RA
Nei sistemi di comunicazione tradizionali, il codice RA viene utilizzato a livello di bit, dove vengono generati bit ridondanti per mitigare gli errori di sostituzione. Tuttavia, la conservazione del DNA è soggetta non solo a errori di sostituzione, ma anche a errori di inserimento e cancellazione. Quindi, invece della tradizionale codifica RA a livello di bit, abbiamo progettato una codifica RA a livello di pacchetto per la memorizzazione del DNA in modo tale che un pacchetto sottoposto a errori di inserimento, cancellazione o sostituzione potesse essere recuperato tramite il decoder RA. Come descritto in precedenza, abbiamo segmentato un file digitale di grandi dimensioni in pacchetti più piccoli della stessa dimensione. Questi pacchetti sono stati considerati come i pacchetti di origine che sono stati utilizzati per generare i pacchetti ridondanti o di parità utilizzando il codice RA sistematica Fig. 2, lettera A). Si noti che ogni pacchetto è stato incorporato con CRC per rilevare errori nel pacchetto. Per i pacchetti che hanno superato il test CRC nel decoder, li abbiamo considerati correttamente recuperati, mentre gli altri sono stati considerati come eliminati o cancellati. Pertanto, il problema generale di progettazione del codice per l’archiviazione del DNA è diventato il design del codice per il canale di cancellazione. Per garantire un’elevata affidabilità, la progettazione del codice è stata eseguita considerando una probabilità di abbandono leggermente superiore rispetto alla probabilità di abbandono effettiva. In questo lavoro, abbiamo considerato il tasso di abbandono effettivo come 1.3% che è stato riportato nella carta fontana . Pertanto, abbiamo progettato il codice RA in modo tale che il codice risultante mostrasse una soglia asintotica superiore alla probabilità di abbandono di 0,013. Seguendo la procedura di ottimizzazione (vedi file aggiuntivo 1: Sezione S2), abbiamo progettato un codice RA di tasso 0.95, che dà una soglia asintotica di 0.0475. Il codice risultante mostra solo un intervallo di 0,0025 dal limite di capacità di Shannon (0,05). Le prestazioni di correzione degli errori simulate del codice RA progettato sono mostrate nel file aggiuntivo 1: Figura S4. A causa del tasso 0.95 Codice RA, abbiamo generato 600 pacchetti ridondanti / parità basati su 11.400 pacchetti sorgente, ricevendo 12.000 pacchetti binari in totale dopo la codifica.