M@XCode

Personal blog dedicated to computer science

ADN : une nouvelle source de stockage de données durable

Les sources de stockage actuelles sont paradoxalement moins durables plus le temps avance. Par exemple une écriture gravée sur la pierre se conserve en moyenne 10.000 ans, une écriture sur parchemin se conserve 1.000 ans. Un DVD conserve les données au maximum une dizaine d’années. Un disque dur est rarement garanti par le fabricant plus de 5 années, tant il est fragile.

La solution pour un stockage durable de l’information serait la réplication multiple. Dès qu’un support de stockage atteint la fin de sa vie, on copie la donnée sur un support similaire. Cette solution est écologiquement problématique. C’est sans compté sur les erreurs de copies qui peuvent compromettre les informations stockées.

Je suis passé par hasard sur un papier de recherche sur le stockage de l’information sur le support ADN ! Incroyable me suis-je dit. Essayons de comprendre le mécanisme…

Pour les curieux voici le papier : (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3672958/). Publié dans Nature en 2013.

Avantages du stockage de l’information sur les brins d’ADN

  • La capacité de stockage est très importante, on peut stocker sur un volume très faible un volume important de données
  • Les brins d’ADN peuvent se conserver longtemps.

Méthodes de transcription de l’information.

Les résultats de l’équipe de recherche sont très intéressant puisqu’ils ont réussi à encoder 739kB de données dans un brin d’ADN synthétique puis ont réussi à re-décrypter les fragments de data sans aucune erreur ni compromission.

Etape 1 : Encodage de la données en Base 3 Huffman

Le codage de Huffman part du principe que plus un caractère est utilisé moins son encodage sera large. Les caractères les plus utilisés de la source de données tiendront donc moins de place ! C’est un avantage très intéressant pour stocker de large volume de textes.

Dans le cadre de l’expérimentation chaque byte est encodé avec 5 ou 6 caractères base 3 (appelés trits).

Les trits peuvent être égaux à 0,1 ou 2.

1
2
3
4
// Chaine originale
"Thou"
// Base-3 Huffman
"20112202000211010002"

Ainsi T est encodé sous la forme 20112 , h sous la forme 20200

Etape 2 : conversion des trits en nucléotides

Chaque lettre est donc convertie en trits. On va ensuite prendre chaque trit est le traduire par un nucléotide.

Les nucléotides sont l’unité de base de la construction de l’ADN. Il existe 4 nucléotides différents : l’adénine (A), la guanine (G), la thymine (T) et la cytosine (C).

On va donc remplacer chaque trit par un nucléotide différent de celui qui le précède si il y a répétition.

1
2
3
4
5
6
// Chaine originale
"T"
// Base-3 Huffman
"20112"
// ADN
"TAGAT"

On souhaite en effet éviter les répétitions de nucléotides. pour éviter de former ce que l’on nomme en chimie des homopolymères.

Etape 3 : Génération des fragments d’ADN avec overlap.

L’équipe a ensuite procédé à la génération de multiples fragments d’ADN contenant 100 bases chacun, avec un overlap de 75 bases à chaque fois.

Cette méthode permettant d’avoir une donnée redondante pour éviter les pertes de données en cas de problèmes de conservation.

Dans chaque fragment on ajoute des données d’indexation du fragment afin de savoir où ce dernier se situe dans la chaîne complète :

Stockage ADN et indexing

Perspectives :

  • Le stockage reste encore très cher car il nécessite une équipe importante et du matériel haut de gamme…
  • 12,400 dollars/MB pour le stockage et 220 dollars/MB pour le décodage !
  • Les coûts toutefois sont amenés à se réduire drastiquement (l’équipe envisage un rapport de 100 par rapport aux coûts actuels)
  • Le volume de stockage est très important comparé à la taille du réceptacle !