A lo largo de la ponencia, se presentará el estado del arte sobre el almacenamiento de información en el material genético, con foco principal en la posibilidad que brinda el ADN de las bacterias tras los recientes descubrimientos de técnicas como CRISPR. Asimismo se darán a conocer las ventajas y desventajas que hasta la fecha ofrece este modelo y sus posibles áreas de mejora, con especial interés en el campo de la esteganografía.
8. Empecemos desde lo más básico… ¿Qué es el ADN?
▪ Contiene las instrucciones genéticas
necesarias para el desarrollo y
funcionamiento de todos
los organismos vivos.
▪ Función: almacenamiento a largo
plazo de información para construir
diversos componentes de las células.
▪ La información genética va codificada
por 4 bases nitrogenadas: C, G, A y T.
Imagen: http://www.chilebio.cl/?page_id=500
9. ¡Son los 0 y 1 de vuestro lenguaje!
Imagen: lavanguardia.com
10. ¿El ADN es estable?
▪ En 1988, se secuenció con éxito ADN de restos humanos
con 7000 años de antigüedad.
▪ En los 2000, la tecnología ha permitido leer el material
genético de bacterias cristalizadas hace 250 millones de años.
Sistema robusto de almacenamiento de datos resistente al
paso del tiempo.
11. Núcleo celular vs Disco duro
CARACTERÍSTICAS NÚCLEO CELULAR (ADN) DISCO DURO (ARCHIVOS)
FUNCIÓN
Almacenamiento y conservación
del material genético.
Almacenamiento y conservación
de archivos.
POSIBLES ALTERACIONES
Mutaciones por radiación,
infecciones.
Daños por radiación, altas
temperaturas, malware…
RECUPERACIÓN DE DATOS
Replicación celular y mecanismos
de reparación.
Extracción forense, backups,
redundancia, …
CAPACIDAD DE
ALMACENAMIENTO
455 exabytes por gramo de ADN
(dato aún sólo teórico)
60 TB (Seagate)
Imagen: rdnattural.es y xataka.com
12. Límite teórico de almacenamiento en ADN
• 455 exabytes por gramo
• Todo Internet en 2020 podría almacenarse
en 90 gramos de ADN
Dibujo de Ramón y Cajal
3.300 millones
de bases/célula
3.6 picogramos
ADN
200 gramos de
ADN en nuestro
interior
13. Primer intento de almacenamiento de datos en bacterias
• Año 1988.
• “Microvenus” de Joe Davis.
• Una runa germánica que significa tanto "mujer"
como "vida").
• Bacteria modificada genéticamente para codificar
un icono de 35 bits que representa la
superposición de las letras “Y” e “I”.
14. Primer intento de almacenamiento de datos en bacterias
• Se codifica en binario basándose en un código de equivalencias con
las 4 bases que componen el código genético.
• Se traduce el mensaje a un fragmento de ADN que podemos
construir sintéticamente e introducirlo en la bacteria.
Davis et al. 1996
15. El verdadero problema hasta la actualidad…
▪ …era la dificultad de escribir y leer grandes secuencias de ADN con precisión.
▪ …crear sistemas vivos que pudieran almacenar grandes cantidades de ADN
sintético.
▪ En la última década, se han perfeccionado los métodos de síntesis a gran
escala de ADN y de secuenciación de forma masiva.
1986. Primer
Secuenciador
ABI 370
2014.
Illumina
HiSeqX
1 billón
lecturas/día
Imagen: medicalexpo.es
16. 2012: Avances
▪ Para convertir este archivo HTML en secuencia de ADN,
asignaron el binario 0 a las bases A o C, y el binario 1 a las bases
G o T del ADN.
▪ De manera que, por ejemplo, la secuencia binaria 001100
correspondería, entre otras, a la secuencia génica ACGTCA.
Church, G. M. et al 2012
11
53.426
1
5,27 MB54.898
Moléculas
17. Un paso de gigante. Tecnología CRISPR.
Francis Mójica
E. Charpentier y J. Doudna
(Premio Princesa de Asturias 2015)
Imágenes: Nature.com y elpais.es
18. Nuestra herramienta: ¿Qué es un protospacer?
Imagen: http://mortlockcrispr.blogspot.com.es/2014/05/crispr-genomic-target-structure.html
19. AAGCCCT GGGCCCCCGGGG….
El caso más sencillo. Imagen de 4 colores.
C = 00
T = 01
A = 10
G = 11
Pixet 1
00000001 Posición en la imagen
01000101 01101110 00100000 01100010
01110010 01100101 01110110 01100101
00100000 01101110 01110101 01100101
Secuenciación del ADN, decodificación y
reconstrucción de la imagen original
PAM Hasta 28 bases de longitud
Escherichia coliImagen: wikia.com
20. Imagen de 21 colores. Codificación por tripletes.
AAGCCCT GGT CAG CTG AGA TAG GCT GTT CGA CAG T
PixetPAM
Imagen modificada de Shipman, S. L. et al. 2017
9 10 8 2 15 7 6 7 10
¿43 = 64 combinaciones? ¡Imposible!
% de bases GC ≈ 50%
Repetición bases ≤ 3
Imagen original Imagen recuperada
21. Un paso de gigante
Animación stop-motion de un jinete montando un caballo a galope,
realizada por el fotógrafo inglés Eadweard Muybridge (Human and Animal Locomotion, 1878)
22. Creación de un GIF de 5 imágenes.
Imagen 1Imagen 2Imagen 3
Las secuencias se introducen en 5 días consecutivos por electroporación:
ADN bacteriano
Seahyoung et al, 2015; Shipman et al. 2017
Imágenes reconstruidas:
≈5K lecturas
≈1M lecturas
Exactitud >90 %
23. Protocolo de almacenamiento actual
Colores 4 21 21x5 frames
Codificacion 1 base/color 3 bases/color 3 bases/color
Código degenerado No Sí Sí
Almacenamiento 784 bytes 494 bytes 3.6 KB (total)
Protospacers 112 100 104/frame
Exactitud 88 % 96 % > 90 %
PAM Pixet 28 bases
AAG CCCT GGTCAGCTGAGATAGGCTGTTCGACAGT
24. Posibles mejoras de la técnica
▪ Desde el punto de vista bioquímico conocemos las
limitaciones del sistema.
▪ Pero desde el punto de vista informático, existen posibles
mejoras a nivel de compactación e integridad de los datos.
Imagen: mercadolibre.com
25. El protocolo podría ser mejorado mediante automatización
▪ Pero existen una serie de limitaciones:
▪ 35 bases por secuencia introducida
▪ No más de 4 bases repetidas
▪ % de C y G en torno al 50%
▪ Inicio mediante marcador (AAG)
▪ Contador para identificar la bacteria escrita/leída
Imagen; josemariagomariz.com
27. Hemos desarrollado el software Bacter10 v1.0
▪ Permite convertir un texto o archivo a bases de ADN.
▪ Genera las bases que deben almacenarse en cada protospacer.
▪ Calcula automáticamente el mejor diccionario, calculando que
las bases C y G sean ≈ 50%.
▪ Descarta más de 4 repeticiones de bases.
▪ Como ej. usamos ASCII Extendido, pero es escalable a otras
codificaciones.
28. How it works
Hola RootedCon! 072111108097082111111116101100067111110033
A C T G
A C T G
A T C G
…
C G T C
AAAC
AAAT
AAAG
AACA
…
GGGA
072 111 108 097
082 111 111 116
101 100 067 111
110 033
AAAG GCTA GGTA
CCAG ... TGCA
1 2
3
4
5
67
30. ¿Cuántos caracteres podemos codificar?
▪ Tuplas de 4 44 = 256 caracteres
▪ Tuplas de 5 45 = 1K caracteres
▪ Tuplas de 6 46 = 4K caracteres
▪ Tuplas de 7 47 = 16K caracteres
▪ Tuplas de 8 48 = 64K caracteres
▪ Tuplas de 9 49 = 256K caracteres
▪ Se deben descartar las
cadenas con más de 3
bases iguales, por ej.
AAAA.
▪ Por lo que para codificar
ASCII EXTENDIDO (256
símbolos), con tuplas de 4
bases es imposible.
▪ Necesitaremos tuplas de 5
bases o más, o
simplemente, no codificar
los últimos 4 símbolos de
ASCII, porque se deben
descartar las bases AAAA,
CCCC, GGGG y TTTT.
39. Conclusiones con Bacter10 v1.0
▪ Tuplas de 9 bases: Maximiza el espacio utilizado
▪ Tuplas de 4-5 bases: Minimizan los protospaces utilizados
▪ Tuplas de 4-6 bases: Mejoran el rendimiento en la codificación
▪ Tuplas de 8 y 9 bases: Disminuyen las posibilidades de error
¿Cuál es la mejor?
40. Conclusiones con Bacter10 v1.0
▪ Aparentemente, las tuplas de 9 bases permiten codificar más
datos y tienen menos posibilidades de error, pero requieren
gastar más protospacers y llevan más tiempo.
▪ Se puede concluir que utilizar un diccionario común para
codificar todos los protospacers (bacterias) es muy difícil,
porque ocasiona demasiados errores, a menos que se utilicen
tuplas muy grandes, lo cual disminuye la cantidad de datos
almacenables.
▪ Lo más óptimo y estable es utilizar diccionarios únicos para
cada protospacer. Pero requiere indicar al principio del
protospacer “el vector de inicialización” para que al leerla
posteriormente sepan decodificar la bacteria.
42. Por lo que… nos pusimos con el desarrollo de Bacter10 v2.0
▪ Y nos dimos cuenta de que la mejor solución era utilizar diccionarios
individuales por cada protospacer y enviarlos al principio de cada secuencia.
Apenas hay
desviación
sobre el 50%
recomendable
de CGs
43. Contenido de los nuevos protospacer
ID CONT IV
Diccionario
utilizado
MENSAJE
5 bytes
(tuplas de 4
bases)
¡Necesario para decodificar
el protospacer enviado!
44. Y esto ocurre con cualquier tipo de tupla (Ej. Tuplas de 5 bases)
45. Y esto ocurre con cualquier tipo de tupla (Ej. Tuplas de 6 bases)
46. Conclusiones de Bacter10 v2.0
▪ No hace falta realizar un nuevo estudio estadístico
▪ Cualquier tupla nos garantiza el nº óptimo de CGs
▪ Lo más eficiente será utilizar tuplas pequeñas, para:
▪ ahorrar protospacers
▪ tardar menos tiempo en la codificación
47. Detección de errores
▪ Además, casos como el de las tuplas de 4 o 5 bases son
interesantes, porque utilizan 32 de las 35 bases, dejando 3
huecos libres que pueden ser utilizados por ej. para PARIDAD
Codificación
Paridad y
compensador de CGs
C_ Nº de A+C par
G_ Nº de A+C impar
_A Nº de T+G par
_T Nº de T+G impar
▪A: 11
▪C: 5
▪T: 6
▪G: 13
11+5=16(par) C_
6+13=19 (impar) _T
CT
CT
48. Mejoras a nivel de detección de errores
▪ CRC, Paridad, Repetición:
▪ Con una importante probabilidad, identifican errores de integridad, pero sin
garantía de manipulación.
▪ Ocupan poco tamaño.
▪ Pueden incrustarse fácilmente en la cadena enviada (como hemos visto con
la paridad)
▪ Códigos de Hamming
▪ Añaden corrección de errores (además de la detección)
▪ En binario, se añadirían 3 bits, por cada 4 bits.
▪ Ocupan más tamaño que por ejemplo un CRC.
▪ Hash:
▪ Integridad: Garantiza que los datos de cada bacteria no han sido alterados.
▪ Ocupa demasiado tamaño en el envío.
▪ El receptor tendría que recibir ese hash de alguna manera alternativa fuera
de las bacterias.
49. Almacenamiento a gran escala
▪ Raid: sistema de almacenamiento que utilizaría
múltiples bacterias entre las que se distribuirían y
replicarían datos.
Cada protospacer sería “un
sector” de 4 bytes
Con tuplas de 5 bases, 1
Billón de bacterias
permitirían almacenar
aproximadamente 5 GB de
datos con nuestra técnica
53. DNA Storage Bitcoin Challenge
• Enero de 2015
• Nick Goldman presentó en DAVOS una
conferencia sobre el uso del ADN para
almacenar información
• Goldman distribuyó tubos de ADN en los que
codificó la clave de un WALLET que contenía
1 bitcoin ($ 200 en 2015, hoy…)
54. DNA Storage Bitcoin Challenge
• El desafío duró 3 años y fue resuelto solo 5 días antes del
límite.
• Había un total de nueve archivos contenidos en los
fragmentos de ADN.
• Sander Wuyts pudo combinar los fragmentos de ADN en el
orden correcto para formar un pedazo largo de ADN.
• Después convirtió la secuencia de ADN en texto sin formato,
revelando la clave privada y desbloqueando el bitcoin
57. Ya lo tenemos en los primeros organismos vivos
0101010101010
1010101001011
0101011101010
1001010101010
1001010101010
0101010100101
ACTG
1
2
3Fuente: claves de salud
58. ¿Os imagináis llevar vuestro DNI, contraseñas, etc. en…?
0101010101010
1010101001011
0101011101010
1001010101010
1001010101010
0101010100101
Imágenes: dnielectronico.es y proyectocuentaconmigo.wordpress.com
59. GRACIAS▪ Patricia Rada
▪ Twitter: @pat_prl
▪ Email: prada@iib.uam.es
▪ Juan Antonio Calles
▪ Twitter: @jantonioCalles
▪ Email: jcalles@zerolynx.com