AlmeríaJS 2023-04-05
https://slides.com/alexfernandez/que-tal-programa-la-naturaleza-almeriajs
📛 Alex Fernández
👴 Desarrollador de JavaScript viejúner
🏚️ 20+ años de experiencia
🏦 10+ years en bancos y telcos
🦄 10+ years en startups
Image source: Bert Hubert
Un par de bases = 2 bits (A,C,G,T)
Tres pares de bases = 1 aminoácido
1 "byte" = 6 bits (0 - 63)
Image source: el menda
Original image: Adenosine
Original image: Barth F. Smets, Tamar Barkay
En su mayor parte: no tenemos ni idea
Hay muchas comprobaciones "automáticas"
Y por supuesto los virus se las saltan
Los humanos somos 8% virus (60k identificados)
Y las vacunas también se las saltan
En esencia, son una forma de inyectar una PR
El cuerpo acepta un gen extraño (mRNA) y produce proteína S viral
Hay que "engañarle" usando varios trucos:
🧹 Limpieza de código
👯 Eliminación de duplicados
📦 Modularidad
☔ Resiliencia
🔌 Compatibilidad hacia atrás
¿Cómo evaluamos la limpieza?
Los números son para las máquinas
El código es para humanos
¿Es legible? ¿Se entiende? ¿Para qué sirve?
Vocabulario ACGT descifrado en 1965
Miles de investigadores en biología molecular
Se publican 100 artículos a la hora
Image source: Black and White
~ 1 Floppy disk
E. coli natural: 1.1 MB
E. coli refactorizada: 1.1 -> 1.066 MB
Se reproduce un 50% más despacio
Image source: Sreejithk2000
Image source: Enrique Íñiguez Rodríguez
Extrañas secuencias enterradas en el código genético
de unas arqueas extremófilas
Mecanismo anti-virus bacteriano
para Charpentier y Doudna
Edición de genes (con precisión de ~5 bytes)
Uso en terapias génicas
"Parches binarios"
Image source: Nobel Prize
~ 1 consola Pong
< 1 Apollo 11 inflight computer (ROM)
COVID-19: 7.5 KBytes
29 genes (proteínas)
No sabemos qué hace el ~10%
Image source: Jeff Keyzer
Image source: Grabert
~ 1 virus grande (bacteriófago lambda)
Lo ha descifrado entero una persona
Image source: Mark Moxon
Código para un ordenador que no entendemos
Explicado y fabricado en el mismo código
4 mil millones de años de historia
Código que se modifica a sí mismo
¿Hay algo más allá de tres bases -> un aminoácido?
La raíz de todos los males ™
Duplicas código como camote
Modificas en un sitio
Se te olvidan 17
Aves: 1/3 del tamaño de código
Murciélagos: genoma también reducido
ADN+ARN: 5% del peso de un mamífero
Image source: Zhang et al
Una bacteria puede duplicarse cada 20 minutos
La replicación de ADN es el factor limitante
Cuanto menos código, más rápido
E. coli: ADN+ARN son el 23% del peso
E. coli ocupa 1.1 MB
Refactorizada de 1.1 MB a 1.066 MB
Sólo encontramos un 3% "superfluo"
M. tuberculosis tiene 1.1 MB → M. leprae 0.825 MB
Ha perdido un 25% de genes por adaptación
Diseño top-down
Interfaces definidas
Componentes nítidos
Tests + gestión de errores
Image source: Carla Isabel Ribeiro
Un error cada muchos miles de millones de bases
Cada persona tiene unas 100 mutaciones nuevas
Hay genes sin apenas mutaciones: histone H3 y H4
Image source: Bert Hubert
Image source: Bert Hubert
Image source: NIAID
PlayStation: ~ 15 años
Microsoft Windows: 20+ años
Conflicto de versiones:
version starts with "Windows 9"
Image source: crazy geniuses
ADN: 4000 millones de años
(como mínimo)
Image source: Wikipedia
🧹 Limpieza de código: 1/10
👯 Eliminación de duplicados: 5/10
📦 Modularidad: 3/10
☔ Resiliencia: 7/10
🔌 Compatibilidad hacia atrás: 10/10
Acabemos con el paradigma de von Neumann
Paralelizar operaciones es el camino
Las tarjetas gráficas tienen miles de procesos en paralelo
Por eso se usan en AI
Vayamos a millones de procesos en paralelo
Evita máximos locales
Cooperación vs competencia
Subir la exigencia
Image source: Gary
Cristina Pacios, doctora en biología molecular
Azahara Fernández, doctora en inmunología
Carlos Santisteban, profesor
Rutger Diederix, ingeniero de QA
Mario Montes, ingeniero de software
Bert Hubert, empresario y desarrollador
María Gómez Romero, biotecnóloga