La pregunta que quedó pendiente en F05: ¿Por qué la MSA es siempre necesaria?
Desde F02 hasta F05, todas las variantes de la familia AlphaFold han asumido un mismo requisito: la MSA (alineamiento múltiple de secuencias). El supuesto subyacente era que, para predecir la estructura, era necesario recopilar grandes cantidades de secuencias evolutivamente cercanas para identificar qué posiciones mutan conjuntamente (coevolución). Aunque en F04 se redujo el tiempo de búsqueda a unos pocos minutos mediante ColabFold + MMseqs2, la búsqueda sigue siendo una búsqueda: requiere bases de datos, E/S de red y, lo más importante, cuando hay pocas secuencias evolutivamente relacionadas (genes huérfanos, microorganismos de ambientes extremos o secuencias artificiales recién diseñadas), la propia MSA es deficiente y la calidad de la predicción disminuye.
ESMFold (Lin et al., 2023, Science) invierte este supuesto. Predice la estructura introduciendo únicamente una sola secuencia de aminoácidos, sin necesidad de realizar una búsqueda de MSA. ¿Cómo es posible? La respuesta no es que "no utilice información evolutiva", sino que "ha comprimido previamente dicha información en otro lugar".
Principio: El modelo de lenguaje almacena la información evolutiva en su lugar
Lo que aprende el modelado de lenguaje enmascarado (MLM)
El núcleo de ESMFold no es el modelo en sí, sino ESM-2, el modelo de lenguaje de proteínas que actúa como base. ESM-2 se preentrena mediante modelado de lenguaje enmascarado (Masked Language Modeling), similar al enfoque de BERT, utilizando aproximadamente 250 millones de secuencias de UniRef. El proceso consiste en enmascarar aleatoriamente algunos residuos de la secuencia y entrenar al modelo para que prediga los residuos ocultos a partir del contexto restante.
Donde es el conjunto de posiciones enmascaradas y son los residuos restantes no enmascarados. Para minimizar esta pérdida, el modelo debe inferir a partir del contexto "qué probabilidad hay de que aparezca un determinado aminoácido en esta posición". Sin embargo, en las secuencias proteicas reales, la razón por la que el aminoácido de una posición específica está estadísticamente vinculado a otro es porque ambas posiciones están en contacto estructural o funcional, habiendo evolucionado conjuntamente. En consecuencia, el modelo entrenado con 250 millones de secuencias para predecir correctamente los residuos enmascarados absorbe implícitamente estas estadísticas —las señales de coevolución— dentro de sus parámetros, sin necesidad de construir explícitamente una MSA.
Estructura de ESMFold: Modelo de lenguaje + Módulo de plegamiento (Folding Head)
ESMFold se compone de dos partes:
- ESM-2 (en ESMFold v1, el checkpoint es de 3 mil millones de parámetros): Recibe la secuencia de entrada y extrae representaciones de alta dimensión para cada residuo. Aunque la familia ESM-2 incluye modelos de hasta 15 mil millones de parámetros, el tronco (trunk) base utilizado en el código público de ESMFold v1 es
esm2_3B. Confundir el tamaño máximo de la familia con el checkpoint de plegamiento real puede llevar a una evaluación incorrecta de los requisitos de memoria y las condiciones de reproducibilidad. - Tronco de plegamiento y módulo estructural: En lugar de la ruta completa de procesamiento de MSA de AlphaFold2, las representaciones de residuo y atención de ESM-2 se proyectan como estados de secuencia (sequence state) y estados de pares (pair state) para refinarse iterativamente, generando posteriormente coordenadas tridimensionales mediante módulos estructurales de la familia OpenFold.
Es decir, ESMFold utiliza una "cabeza ligera que convierte directamente las representaciones del modelo de lenguaje en estructura" en lugar de un "Evoformer pesado que extrae la coevolución a partir de la MSA". Dado que se omiten por completo la búsqueda de MSA y el proceso de refinamiento iterativo (recycling) del Evoformer, el artículo original informa que la velocidad de inferencia es hasta 60 veces más rápida en comparación con AlphaFold2.
Ejemplo de cálculo manual: ¿por qué existe esta gran diferencia de velocidad?
El cuello de botella de AlphaFold2 analizado en F02 es la operación de atención del Evoformer. Si denotamos la profundidad de la MSA como y la longitud de la secuencia como , la complejidad computacional de la atención fila-columna de la MSA crece aproximadamente de la siguiente manera:
Dado que la profundidad de la MSA suele alcanzar cientos o miles, este término ocupa una gran parte del cómputo total. En cambio, como ESMFold no utiliza MSA, .
Si tomamos un caso concreto con y para estimar la proporción, el término es , mientras que el término es ; considerando solo este término, la diferencia es de aproximadamente 500 veces. Aunque el grafo computacional completo de ambos modelos es más complejo y combina diferentes cantidades de parámetros y optimizaciones de implementación, por lo que esta proporción no se traduce directamente en la diferencia de velocidad medida, este cálculo manual sirve para mostrar intuitivamente cuánto disminuye la carga computacional cuando desaparece la profundidad de la MSA.
Lo que se sacrifica a cambio: compromiso de precisión
No hay atajos. En las evaluaciones del artículo original, se informó que la precisión promedio de ESMFold (como GDT-TS, etc.) es ligeramente inferior a la de AlphaFold2 según los estándares de CASP14. Específicamente, AlphaFold2 sigue siendo ventajoso en familias de proteínas comunes donde el MSA es profundo, mientras que ESMFold tiene una ventaja relativa en secuencias con un MSA poco profundo o inexistente (proteínas de virus emergentes, secuencias recién descubiertas en metagenómica, secuencias diseñadas artificialmente). La distinción clave de uso es: "si se necesita precisión, AlphaFold2/ColabFold; si se necesita velocidad y un enfoque libre de MSA, ESMFold".
Práctica: Predicción de una sola línea con ESMFold usando HuggingFace transformers
# Ejecutar en Colab T4. ESMFold está integrado en la biblioteca transformers.!pip install -q transformers accelerate
import torchfrom transformers import AutoTokenizer, EsmForProteinFolding
tokenizer = AutoTokenizer.from_pretrained("facebook/esmfold_v1")model = EsmForProteinFolding.from_pretrained("facebook/esmfold_v1", low_cpu_mem_usage=True)model = model.cuda()model.esm = model.esm.half() # Media precisión para ahorrar memoria
# Ejemplo: secuencia de un fragmento corto de lisozimasequence = "KVFGRCELAAAMKRHGLDNYRGYSLGNWVCAAKFESNFNTQATNRNTDGSTDYGILQINSRWWCNDGRTPGSRNLCNIPCSALLSSDITASVNCAKKIVSDGNGMNAWVAWRNRCKGTDVQAWIRGCRL"
inputs = tokenizer([sequence], return_tensors="pt", add_special_tokens=False)inputs = {k: v.cuda() for k, v in inputs.items()}
with torch.no_grad(): output = model(**inputs)
# pLDDT por residuo (0 a 100, el mismo indicador de confianza tratado en F02)# Se usa el pLDDT de Cα (índice 1) de la representación atom37 como valor representativo del residuo.plddt_ca = output["plddt"][0, :, 1]print(f"pLDDT medio de Cα: {plddt_ca.mean().item():.2f}")print(f"Posición del residuo con menor pLDDT (base 1): {plddt_ca.argmin().item() + 1}, valor: {plddt_ca.min().item():.2f}")Observemos que la etapa de búsqueda de MSA no está presente en el código. Podemos ejecutar en un mismo cuaderno el pipeline de ColabFold de F04 junto con el otro para comparar las distribuciones de pLDDT y las estructuras predichas. Sin embargo, no debemos generalizar basándonos en solo una o dos secuencias, afirmando que "cuanto más superficial sea el MSA, más se reducirá la brecha" o que la jerarquía de rendimiento se invierte. Además de la profundidad del MSA, la longitud, la composición de dominios, las regiones desordenadas y la distribución de entrenamiento influyen conjuntamente.
Correspondencia con CS
- Aprendizaje por transferencia (Transfer Learning): Reutilizar representaciones preentrenadas con grandes cantidades de datos no supervisados (250 millones de secuencias) para tareas downstream (predicción de estructura) sigue el mismo patrón que realizar un fine-tuning de un modelo de visión preentrenado con ImageNet para una tarea de clasificación específica.
- Modelado de lenguaje enmascarado (Masked Language Modeling): Es la aplicación del mismo objetivo auto-supervisado que utiliza BERT en el lenguaje natural al alfabeto de aminoácidos (20). El objetivo de "completar los espacios en blanco mediante el contexto" permite aprender información sobre la evolución y estructura de las proteínas en lugar de semántica del lenguaje natural.
- Compresión de representaciones vs. búsqueda explícita: Si la búsqueda de MSA es un enfoque basado en recuperación (retrieval-based), donde se "busca en la base de datos en cada momento para obtener información relevante", las representaciones preentrenadas del modelo de lenguaje son un enfoque paramétrico que "comprime la información previamente en los parámetros durante el entrenamiento". Esta distinción se encuentra exactamente en el mismo eje que el trade-off entre RAG (generación aumentada por recuperación) y los LLM puramente paramétricos.
Errores comunes
- La idea errónea de que ESMFold es siempre mejor: Como se mencionó anteriormente, AlphaFold2/ColabFold sigue siendo superior en proteínas de familias comunes con un MSA rico. Generalizar que "ESMFold es siempre mejor porque es rápido" es incorrecto.
- Confundir pLDDT con precisión absoluta: Como se trató en F02, el pLDDT es una estimación de la propia confianza del modelo, no la distancia real respecto a la respuesta experimental. Debido a que ESMFold carece de MSA por razones estructurales, su calibración de confianza puede diferir de la de AlphaFold2, por lo que es más adecuado para comparaciones relativas dentro del mismo modelo que para comparar valores absolutos.
- Agotamiento de la memoria en secuencias largas: Si se introducen secuencias largas (más de 1,000 residuos) directamente en una T4 de Colab sin la transformación
half()del código de práctica, la memoria de la GPU podría agotarse.
Para profundizar más
Este contenido ha sido reconstruido directamente por el equipo de investigación de BPD. Profundicemos con el artículo original y los recursos oficiales.
- Artículo original de ESMFold: Lin et al. (2023), Evolutionary-scale prediction of atomic-level protein structure with a language model, Science 379(6637).
- Repositorio oficial de ESM-2 / serie ESM:
github.com/facebookresearch/esm— La tarjeta del modelo detalla la licencia (MIT) y los checkpoints organizados por escala de parámetros. - Tarjeta del modelo ESMFold en Hugging Face:
huggingface.co/facebook/esmfold_v1— Referencia de la API para el código de práctica.
En el próximo episodio, F07, iremos un paso más allá de la predicción estructural para abordar Boltz-2, que predice simultáneamente la estructura y la afinidad de unión (binding affinity).