Biohackers Netflix - ADN a binario y video
No estoy patrocinado ni nada, solo estoy interesado en su desafío para descifrar su código de ADN.
Codificaron su primer episodio de video / archivo binario de "Biohackers" en código de ADN y dijeron que si podíamos decodificarlo, podíamos verlo (sin Netflix). Aquí está su página:https://biohackersnetflix.comcon descripción y descarga para el archivo de secuencia de ADN. (No sé si solo está en alemán o si puede traducirlo. Si tiene preguntas sobre esta página, pregúnteme).
El archivo tiene un tamaño de ~ 550 MB y contiene 3.882.771 líneas (no en formato fasta). Cada línea tiene una longitud de 147 caracteres, incluidos los imprimadores en ambos extremos (¿Illumina?). Aquí están las primeras 5 líneas:
ACACGACGCTCTTCCGATCTCTCCCAGGGACAAAGGTTCTGCATTTGCAGCAAGACTCCTGTAGTGCTGCAGATTCTCTGGTTGGATAGTACGGCGTACATTTCTGTATTGTAGCACCATGGGGTAGATCGGAAGAGCACACGTCT
ACACGACGCTCTTCCGATCTTAAGGCTTCGTAACAGATATTCTATATCGTCACATTGGTCTGAAGGAAGTCGCCTATAATCGCTCCTCTGTTTTTTAAAACTGCTATGGACCCGCTGTTCGGTGGAGATCGGAAGAGCACACGTCT
ACACGACGCTCTTCCGATCTCATGGTATAAGTGTTAAGGGTAATAACCACCTACCCCCCTCATTGCTCGTTTTTCCTGGAACCTTAACATTCGCAATAGCTAGCTGTTTCCTAGTAGAACCAAGGAGATCGGAAGAGCACACGTCT
ACACGACGCTCTTCCGATCTAGGATGTAGTCACAGGTCATTGTCATTAACTCAACCGAGGACATAACACTAAGTCCCACTAGGCCTGGATTCTCTAACGCGGTCTCTCTATTGGGGGAAGGGGTGAGATCGGAAGAGCACACGTCT
ACACGACGCTCTTCCGATCTTCTGGTAAGGCGGGTTGATATCAGTCACCTCCCTTTGAGCTAAAATACGATGGCGATTTAGTGTGAAACTAATAATGCTTGTCATACCAGCAGTACCGGATCGGGAGATCGGAAGAGCACACGTCT
Recorté todos los cebadores y traté de decodificar {A, C, G, T} considerando cada permutación {00, 01, 10, 11} como el método de descifrado obvio (?) (4! = 24 decodificaciones posibles) usando Python.
Luego esperaba cargar 1 de estos 24 archivos en el reproductor multimedia VLC o algo para reproducir, pero no funcionó y todos los archivos parecían estar dañados de la misma manera. Creo que me falta algo aquí.
¿Puedo suponer que un archivo de texto que contiene solo 0 y 1 debería poder reproducirse en VLC si el código de ADN está correctamente descifrado?
(Si me equivoco, dímelo o muévete).
// Editar: convertí los 24 archivos a ASCII para ver si hay algún tipo de "encabezado similar a un video". (¿Todos los videos tienen algún tipo de descripción en sus primeras líneas si se abren en el editor de texto?) Pero hay un galimatías.
// Editar: Vi que cada posición de secuencia 84 tiene una "T", lo cual es un poco extraño. Así que intenté ejecutar mi script nuevamente con estas T eliminadas, pero aún no hay solución.
// Editar: busqué "AVI", "264", "códec" y algunas otras cadenas en cada archivo de video que creé y hexadecimal. Nada Encontrado. Para aclarar: traduje el ADN a cada 24 binarios y luego a su representación ASCII siguiendo la respuesta de 19 votos a favor:https://stackoverflow.com/questions/7290943/write-a-string-of-1s-and-0s-to-a-binary-file. Las 104 bases / 208 Bits (eliminadas la "T" repetitiva y los cebadores) son en realidad un múltiplo de 8 (respectivamente 26 Bytes) por lo que podría estar en el camino correcto (¿incluso si no es de 32 Bytes?). El ensamblaje de novo no funcionó y no encontré "genes" ORF obvios que representen algún tipo de URL del video o algo que fue una buena idea considerando que el archivo de video solo tendría ~ 150 MB. (Ver comentarios.)
Respuestas
También sentí mucha curiosidad cuando vi eso. He pasado más tiempo del que me gustaría admitir probando el tipo de cosas que tienes. Lo he decodificado ahora, pero realmente no puedo reclamar ningún tipo de victoria, ya que el problema estaba resuelto.
Después de luchar con algunos de los mismos experimentos que hiciste, decidí echar un vistazo más de cerca a su video explicativo aquí: https://youtu.be/DMYgjOHgHxc
Primero traté de descifrar el boceto de la pizarra alrededor de la 1:30, pero era bastante vago. Sin embargo, una investigación más detallada del hablante dio algo de suerte. Buscar en Google al Dr. Reinhard Heckel me llevó a su sitio web aquí:http://www.reinhardheckel.com/que muestra su publicación más reciente : un artículo sobre la codificación de datos digitales en el ADN.
La codificación es relativamente compleja (algo casi imposible de tropezar accidentalmente, creo) pero fascinante. Los fragmentos están indexados y tienen dos códigos de corrección de errores en capas. Quizás hacer nuestro trabajo más difícil (pero con el propósito práctico de minimizar los homopolímeros y el recocido no deseado) es el hecho de que los datos se XORed con un ruido pseudoaleatorio que mezcla los datos. El documento obviamente tiene todos los detalles.
Sin embargo, desde mi desnatado, me encontré con este repositorio de Github vinculado en el documento: https://github.com/reinhardh/dna_rs_coding
Da la casualidad de que el README se actualizó en esta última semana, describiendo cómo decodificar el episodio del archivo proporcionado. Si tiene Docker, solo necesita copiar y pegar algunos comandos.
El producto es de hecho el episodio completo y final, con un delicado tamaño de 63,1 MB. ¿Cómo consiguieron 40 minutos de vídeo comprimidos? Bueno, en resumen, 720x360 a 24 fps. Se ve un poco horrible y solo está en alemán, pero ciertamente es un pequeño huevo de Pascua genial. Si nada más, tengo un periódico genial para leer.