¿Qué tal programa
la Naturaleza?
AlmeríaJS 2023-04-05
https://slides.com/alexfernandez/que-tal-programa-la-naturaleza-almeriajs
📋 Qué vamos a ver hoy
🎩 Vuestro anfitrión hoy
📛 Alex Fernández
👴 Desarrollador de JavaScript viejúner
🏚️ 20+ años de experiencia
🏦 10+ years en bancos y telcos
🦄 10+ years en startups
🧬 ¿Código? ¿Qué código?
Image source: Bert Hubert
🧬 ¿Qué tenemos por ahí?
Un par de bases = 2 bits (A,C,G,T)
Tres pares de bases = 1 aminoácido
1 "byte" = 6 bits (0 - 63)
Un código, 22 aminoácidos
⭃ Haciendo pull requests
Image source: el menda
Entre bacterias queda
Original image: Adenosine
Transferencia horizontal de genes
Original image: Barth F. Smets, Tamar Barkay
Los virus también juegan
¿Cómo se aceptan los PRs?
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
💉 Vacunas de mRNA
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:
- aminoácidos "falsos" modificados,
- una cabecera copiada de nuestros genes,
- metadatos para que las proteínas salgan de la célula,
- cambios en la secuencia para que se produzcan más proteínas,
- y una proteína S modificada para que se sostenga mejor.
👓 Revisión de código
✅ Criterios
🧹 Limpieza de código
👯 Eliminación de duplicados
📦 Modularidad
☔ Resiliencia
🔌 Compatibilidad hacia atrás
🧹 Limpieza de código
¿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?
¿Cuánto código hay?
🔎 ¿Cuánto hemos entendido?
Vocabulario ACGT descifrado en 1965
Miles de investigadores en biología molecular
Se publican 100 artículos a la hora
🧍 Humanos: 700 MB
Image source: Black and White
🦠 Bacterias: ~1 MB
~ 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
✂️ CRISPR
Extrañas secuencias enterradas en el código genético
de unas arqueas extremófilas
Mecanismo anti-virus bacteriano
✂️ CRISPR (II)
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
🦠 Virus: ~8 kB
~ 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
🛩️ BBC Micro Aviator: <34 kB
~ 1 virus grande (bacteriófago lambda)
Lo ha descifrado entero una persona
Image source: Mark Moxon
🧬 La naturaleza del código genético
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?
🧹 Limpieza de código: 1/10
👯 Eliminación de duplicados
La raíz de todos los males ™
Duplicas código como camote
Modificas en un sitio
Se te olvidan 17
🐦 No, si cuando se pone...
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
🦠 Cuanto menos código
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
🦠 Refactorizando
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
👯 Eliminación de duplicados: 5/10
📦 Modularidad
Diseño top-down
Interfaces definidas
Componentes nítidos
📦 El cuerpo humano
📦 Modularidad: 3/10
☔ Resiliencia
Tests + gestión de errores
♀️♂️ Sexo
Image source: Carla Isabel Ribeiro
🧶 Corrección de errores
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
🐁🪰 Genes conservados
Image source: Bert Hubert
Monitorización activa
Image source: NIAID
🔌 Compatibilidad hacia atrás
Algunas cifras
PlayStation: ~ 15 años
Microsoft Windows: 20+ años
Conflicto de versiones:
version starts with "Windows 9"
Image source: crazy geniuses
Más cifras
ADN: 4000 millones de años
(como mínimo)
Image source: Wikipedia
🔌 Compatibilidad hacia atrás: 10/10
✅ Puntuación final: 6/10
🧹 Limpieza de código: 1/10
👯 Eliminación de duplicados: 5/10
📦 Modularidad: 3/10
☔ Resiliencia: 7/10
🔌 Compatibilidad hacia atrás: 10/10
🎓 Lecciones
Si algo funciona, haz muchas copias
Proceso paralelo masivo
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
Optimización multivariable
Evita máximos locales
Ecosistemas
Cooperación vs competencia
Subir la exigencia
Image source: Gary
🙏 ¡Gracias!
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
🙏 ¿Preguntas?
¿Qué tal programa la Naturaleza?
By Alex Fernández
¿Qué tal programa la Naturaleza?
Presentación para AlmeríaJS, 2023-04-05
- 465