Onderzoekers uit New York benaderen met een nieuw coderingsschema de theoretisch maximale dichtheid voor robuuste dataopslag in dna-moleculen. Met hun aanpak wisten ze onder meer een stukje film en het Kolibri-besturingssysteem op te slaan en weer terug te halen, al met al ruim twee megabyte aan data.
Dna is een interessante optie voor dataopslag omdat het erfelijke molecuul in de volgorde van zijn bouwstenen grote hoeveelheden gegevens langdurig en compact kan bewaren. Omdat er vier verschillende bouwstenen zijn – aangeduid met A, C, T en G – zijn er in principe twee bits per bouwsteen op te slaan. Praktische bezwaren gooien echter roet in het eten; wanneer dezelfde bouwsteen vaak herhaald wordt of wanneer C en G relatief veel voorkomen, treden er problemen op met uitlezen, synthese of stabiliteit. Uit berekeningen blijkt dat de dichtheid daarom maximaal op 1,83 bits per bouwsteen uitkomt.
Tot nu toe was er echter geen manier uitgedokterd om data efficiënt en betrouwbaar op te slaan. Onderzoekers gebruikten bijvoorbeeld zowel A als C om 0 te coderen, en T en G voor een 1. Hierdoor konden de problemen vermeden worden, maar daalde de dichtheid naar 1 bit per bouwsteen. Andere coderingsschema’s hakken de data op in overlappende stukjes dna. Hiermee kan echter niet gegarandeerd worden dat nooit dataverlies optreedt.
De sleutel tot de codering van New Yorkers is de Luby-transformatie, die veel gebruikt wordt om informatie over een kanaal met ruis te sturen. De transformatie genereert uit een stukje data naar willekeur korte pakketjes waarmee later het origineel te reconstrueren is. Welke pakketjes de ontvanger heeft, doet er daarbij niet precies toe, zo lang het er maar voldoende zijn.
De New Yorkers hakken hun data op in niet-overlappende korte stukjes van 32 bytes en halen deze door de Luby-transformatie om een even groot pakket te genereren. Vervolgens evalueren ze of dit pakket biochemisch gunstig zou zijn wanneer het omgezet wordt in dna. Is dat niet het geval, dan wordt gewoon een nieuw pakket gevraagd aan de Luby-transformatie.
Voor deze vorm van opslag is wel wat extra informatie nodig over naast de payload zelf, vier bytes in totaal. Daarnaast worden nog twee bytes ingezet als checksum. Daarnaast zijn er nog wat herkenningsplaatsen nodig voor de chemische verwerking, waardoor elk pakketje op een lengte van tweehonderd bouwstenen uitkomt. Daarmee komt de informatiedichtheid op 1,55 bit per bouwsteen, aardig in de buurt van de theoretische limiet.