International Essays

Diseño de proteínas de novo inspirado por el Premio Nobel mediante Wolfram Language

20 de febrero del 2025
Robert B. Nachbar, Director principal de proyectos, Wolfram Solutions
Este cuaderno es una traducción al español del artículo de la Comunidad Wolfram “Nobel Prize–Inspired de novo Protein Design with Wolfram Language” producido con ayuda de un LLM y verificado por un traductor profesional
Cuando leí un artículo reciente del New York Times sobre IA, no pensé que terminaría siguiendo los pasos de un ganador del Premio Nobel, pero pronto descubrí que simplemente podía hacerlo usando Wolfram Language.
El Premio Nobel de Química de 2024 fue otorgado por el diseño computacional de proteínas y la predicción de estructuras proteicas, las cuales han sido áreas de investigación activas desde hace décadas. Los primeros trabajos se basaban en los fundamentos de la física y la química, intentando modelar el plegamiento de la cadena de residuos de aminoácidos que conforman una proteína en una estructura tridimensional mediante análisis conformacional y energética. Más recientemente, se han aplicado métodos de IA al problema, utilizando redes neuronales profundas (DNN) y modelos de lenguaje de gran tamaño (LLM) como trRosetta, AlphaFold y ESMFold. El trabajo de David Baker, uno de los laureados, fue destacado en un artículo reciente del New York Times.
En su artículo de 2021, el grupo de Baker describió experimentos computacionales que optimizaron una secuencia aleatoria de aminoácidos en una secuencia proteica realista, y la plegaron como una estructura tridimensional. Este proceso se repitió 2000 veces, obteniendo una “amplia variedad de secuencias y estructuras predichas”. La parte realmente emocionante vino después: fabricaron 129 genes sintéticos en el laboratorio basados en las secuencias, los insertaron en el genoma de bacterias E. coli, aislaron y purificaron las nuevas proteínas, y obtuvieron sus estructuras mediante cristalografía de rayos X y espectroscopía RMN, las cuales coincidían estrechamente con las estructuras predichas.
Nos propusimos explorar la parte del “X computacional” de su experimento en Wolfram Language. Algunas de las nuevas características de la nueva versión 14.2 hicieron que esta tarea fuera sorprendentemente sencilla.
Plegando una secuencia de aminoácidos Comencemos con una proteína de estructura conocida. El dominio N-terminal de la proteína precursora de amiloide (APP), implicada en la enfermedad de Alzheimer, es un buen ejemplo. El ID de entrada en Protein Data Bank (PDB) es 1MWP. Podemos recuperar el título de la cita de los datos publicados mediante esta nueva solicitud de conexión a servicios de la versión 14.2:
In[]:=
ServiceExecute["RCSBProteinDataBank","EntryData",{"PDBStructureID"ExternalIdentifier["PDBStructureID","1MWP"]}]["Citation",All,"Title"]
Out[]=
Crystal structure of the N-terminal, growth factor-like domain of Alzheimer amyloid precursor protein.
También podemos recuperar la estructura como una
BioMolecule
mediante esta solicitud:
In[]:=
bioMol=ServiceExecute["RCSBProteinDataBank","BioMolecule",{"PDBStructureID"ExternalIdentifier["PDBStructureID","1MWP"]}]
Out[]=
BioMolecule
Type: Peptide
Chains: 2

También podemos obtener el mismo resultado sin tener que escribir tanto utilizando:
In[]:=
BioMolecule[ExternalIdentifier["PDBStructureID","1MWP"]]
Out[]=
BioMolecule
Type: Peptide
Chains: 2

La estructura cristalográfica completa está compuesta por una sola cadena proteica y muchas moléculas de agua que se cristalizaron en conjunto con la molécula de proteína. Para mayor comodidad, las moléculas de agua se agrupan en su propia cadena, por lo cual BioMolecule tiene dos cadenas:
In[]:=
bioMol["ChainTypes"]
Out[]=
APeptide,BWater
La estructura de la proteína está compuesta por una única cadena que posee dos hélices α y numerosas cadenas β, las cuales pueden verse visualmente aquí:
In[]:=
BioMoleculePlot3D[bioMol,ImageSize->Small]
Out[]=
y aquí se tabulan como rangos de residuos:
In[]:=
bioMol["Helices"]
Out[]=
A{{38,50},{73,75}}
In[]:=
bioMol["Sheets"]
Out[]=
A{{6,8},{16,18},{25,27},{55,60},{65,67},{70,72},{76,79},{83,85},{88,92}}
El servicio "ESMAtlas” también es nuevo en la versión 14.2 y permite plegar una secuencia utilizando el modelo de Meta AI. Esta es la solicitud de servicio para plegar la secuencia de aminoácidos:
In[]:=
foldedBioMol=ServiceExecute["ESMAtlas","FoldSequence",{"BioSequence"bioMol["BioSequences"]["A"]}]
Out[]=
BioMolecule
Type: Peptide (predicted)
Chains: 1

La estructura plegada también está compuesta por una hélice α y múltiples cadenas β:
In[]:=
BioMoleculePlot3D[foldedBioMol,ImageSize->Small]
Out[]=
Sin embargo, aquí podemos ver que la hélice más larga en la estructura plegada por IA es dos residuos más corta que en la estructura cristalina, y los residuos 73, 74 y 75 no forman una hélice:
In[]:=
foldedBioMol["Helices"]
Out[]=
A{{39,49}}
Se han perdido dos cadenas β en la estructura plegada por IA:
In[]:=
foldedBioMol["Sheets"]
Out[]=
A{{6,8},{16,18},{25,27},{55,60},{65,67},{83,85},{88,92}}
¿Entonces, qué tan bueno es el pliegue cuantitativamente? El servicio ESMAtlas calcula una confianza por átomos que se almacena en la propiedad "BFactors" de BioMolecule. Los valores individuales varían de 0 a 1, siendo los valores más altos indicativos de mayor confianza en la posición tridimensional predicha. Estas son las confianzas atómicas para los átomos de los primeros cinco residuos:
In[]:=
foldedBioMol["BFactors"]["A"]//Take[#,5]&
Out[]=
{{0.73,0.76,0.79,0.7,0.76,0.65,0.6,0.62},{0.84,0.85,0.85,0.8,0.82,0.71,0.65,0.66},{0.9,0.91,0.91,0.89,0.9},{0.92,0.92,0.93,0.91,0.92,0.84,0.8,0.78,0.74},{0.93,0.94,0.94,0.93,0.93,0.9,0.89}}
Podemos usar estos valores para calcular una confianza general de la secuencia plegada, en particular, la raíz cuadrática media de los valores atómicos:
In[]:=
confidence[bm_BioMolecule]:=Sqrt@Mean@Flatten[bm["BFactors"]["A"]^2]
In[]:=
confidence[foldedBioMol]
Out[]=
0.818817
Ese valor es bastante alto, por lo que debería estar “cerca” de la estructura experimental, y podemos obtener una comparación numérica exacta mediante la función BioMoleculeAlign, la cual es un prototipo basado en
MoleculeAlign
:
In[]:=
alignment=BioMoleculeAlign[bioMol,foldedBioMol,"Backbone",All]
Out[]=
TransformationTransformationFunction
-0.476971
-0.804336
-0.35432
25.0947
Å
-0.276896
-0.245089
0.929118
15.6046
Å
-0.834163
0.541272
-0.105817
18.991
Å
0
0
0
1.
,Error
1.3834
Å
,BioMoleculeBioMolecule
Type: Peptide (predicted)
Chains: 1

Una diferencia RMS (RMSD) de los átomos del esqueleto de 1.38 Å es bastante buena, y visualmente podemos ver que la estructura plegada coincide bastante bien con la estructura experimental. Como era de esperarse, la desviación es mayor en las porciones N- y C-terminales de la proteína:
In[]:=
Show[BioMoleculePlot3D[bioMol,ColorRules->({_->Darker@Green})],BioMoleculePlot3D[alignment["BioMolecule"],ColorRules->({_->Lighter@Red})],ImageSize->Medium]//Legended[#,SwatchLegend[{Darker@Green,Lighter@Red},{"Experimental","AI folded"}]]&
Out[]=
Experimental
AI folded
Para obtener un resumen más amplio de la precisión del plegamiento, hicimos una búsqueda en el sitio web del PDB de proteínas monoméricas de cadena única con 95-105 residuos, con estructura determinada por difracción de rayos X y una resolución final de ≤ 2.0 Å:
La búsqueda devolvió 175 identificadores de entrada (sus resultados pueden diferir debido a cambios en la base de datos pública):
Ahora procedamos a recuperar cada estructura, plegar su secuencia completa, calcular la confianza del plegamiento y calcular el RMSD con respecto a la geometría experimental. Sin embargo, antes de poder realizar esta tarea aparentemente simple, necesitamos limpiar la lista.
La biología es desordenada, especialmente cuando se trabaja con datos experimentales. Hay casi 230,000 estructuras determinadas experimentalmente en el PDB, y una gran parte de ellas son de alta calidad. En la búsqueda anterior, filtramos aquellas estructuras con baja resolución (> 2.0 Å) en el origen, pero hay varios otros problemas potenciales que deben ser abordados.
Primero, las bases de datos no son perfectas. Si bien la búsqueda especificaba “entidades proteicas”, algunos resultados incluían proteínas conjugadas con oligosacáridos. Estas tienen el tipo de cadena "Branched":
Ahora eliminemos esos dos resultados:
Segundo, el modelo de plegamiento de proteínas de Meta AI solo acepta secuencias compuestas por un número muy limitado de los más de 500 aminoácidos conocidos que se encuentran de forma natural , muchos de los cuales se encuentran en proteínas del PDB. Existen 21 aminoácidos proteinogénicos codificados por el ADN, y ESMFold solo utiliza 20 de ellos (la selenometionina es el aminoácido disidente).
Los aminoácidos a menudo se representan con sus abreviaturas de tres letras, como Ala para alanina, Trp para triptófano, etc. Para mayor brevedad, los biólogos también utilizan códigos de una sola letra (solo los aminoácidos proteinogénicos tienen uno), como se muestra en esta tabla:
Podemos usar los códigos de una sola letra para construir un filtro:
Ahora probémoslo con APP, que recuperamos del PDB anterior:
Hasta ahora, todo bien. El péptido sintético 5V63 fue creado para estudiar la oligomerización de la proteína β-amiloide y contiene ornitina, sarcosina e iodofenilalanina. Debería fallar la prueba:
¡Perfecto! Ahora filtremos los resultados:
Tercero, la cristalografía de rayos X no es perfecta. Muchos cristales no son ideales y contienen defectos. Un defecto común en cristales de proteínas es el desorden, donde una porción de la proteína no cristaliza de la misma manera en cada celda unitaria, y este fenómeno efectivamente difumina la densidad electrónica (son los electrones los que dispersan los rayos X), impidiendo localizar los átomos. El desorden ocurre frecuentemente en los extremos de la cadena proteica, pero también puede ocurrir en los bucles entre hélices α y cadenas β.
Para que la comparación de los resultados del plegamiento proteico sea lo más informativa posible, debemos eliminar aquellos resultados que tengan menos residuos observados que la secuencia completa. El primer resultado, 1A68, tiene residuos no observados, como lo indica el recuento menor del monómero modelado:
Al procesar toda la lista y seleccionar aquellas entradas con conteos iguales obtenemos la lista final de resultados:
Y, finalmente, podemos hacer el análisis, es decir, plegar la secuencia y compararla con la geometría experimental:
Use la siguiente entrada, estilizada con fondo marrón para facilitar su reconocimiento, para importar los resultados originales del autor de la entrada anterior:
La mayoría de las estructuras plegadas concuerdan bastante bien con la estructura experimental, con un RMSD de 4 Å o menos:
En general, los resultados se ven bastante bien. Un RMSD de gran tamaño es de esperarse cuando la confianza del plegamiento es menor a 0.75, por lo cual los valores atípicos inesperados tienen una confianza mayor a 0.75 y un RMSD superior a aproximadamente 5 Å. ¿Cuáles son?
La estructura 4J4C es la mutación G51P (prolina reemplazando a glicina en la posición 51) de 3EZM. Ambas son dímeros entrelazados de cabeza a cola. Podemos usar la información de “assembly” de las biomoléculas para visualizar los dímeros (la mitad de cada dímero se muestra en azul y la otra mitad en amarillo):
El modelo ESMFold asume que la secuencia de entrada corresponde a una estructura monomérica, así que no es sorprendente que falle para estos dímeros entrelazados.

Secuencia aleatoria inicial

Usar los códigos de una letra será conveniente para construir secuencias aleatorias y manipularlas:
Esta es una secuencia aleatoria de 100 residuos:
Use la siguiente entrada, estilizada con fondo marrón para facilitar su reconocimiento, para importar los resultados originales del autor de la entrada anterior:
El plegamiento de la secuencia produce una BioMolecule, como hemos visto antes:
Podemos ver que no tiene ningún elemento de estructura secundaria y no se asemeja a una proteína que ocurre de manera natural:
Los residuos han sido coloreados comenzando en el extremo N-terminal en azul, pasando por verde, amarillo y naranja, hasta llegar a rojo en el extremo C-terminal.

Aptitud

Si bien podemos calcular las distribuciones de distancia entre residuos para el plegamiento predicho, no contamos con las distribuciones de fondo promediadas sobre todas las proteínas (por ejemplo, del PDB) utilizadas por el equipo de Baker, y por lo tanto no podemos calcular la divergencia para usar como medida de aptitud.
Sin embargo, no todo está perdido, ya que como vimos anteriormente, podemos calcular una confianza general de un plegamiento, lo cual debería ser adecuado como aptitud. No sorprende que la aptitud del plegamiento predicho para esta secuencia aleatoria no sea muy alta:

Mutación de residuos

Lo siguiente que necesitamos poder hacer es mutar la secuencia. Primero, se elige una posición en la secuencia de manera aleatoria, y luego se reemplaza el aminoácido en esa posición por un aminoácido diferente:
Use la siguiente entrada, estilizada con fondo marrón para facilitar su reconocimiento, para importar los resultados originales del autor de la entrada anterior:
La valina en la posición 96 fue reemplazada por alanina. Es decir, hemos creado el mutante V96A. ¿Cuál es el efecto sobre la estructura?
Curiosamente, el efecto no es completamente local, y han surgido tres hélices α bien separadas de la ubicación de la mutación (la pequeña hélice roja). ¿Eso conduce a un aumento o disminución en la aptitud general?

Optimización por apareamiento simulado

La aptitud, es decir, la confianza en la predicción, ha disminuido ligeramente. El criterio de Metropolis para aceptar la mutación se calcula como:
La prueba para la aceptación es:
De manera que este cambio con su ligera disminución en aptitud sería aceptado.
Podemos resumir el código anterior en una función para la optimización de la secuencia. El servicio ESMAtlas limita el número de llamadas a la API que un usuario puede realizar en un período determinado, pero no se divulgan los detalles. Se ha incorporado un mecanismo de pausa en el código para adaptarse a la limitación impuesta por el servicio. Además hemos incluido un monitor de progreso porque las llamadas a la API pueden ser lentas dependiendo de cuántos otros usuarios estén utilizando el servicio.
Este es un ejemplo del monitor de progreso:
Para mantener este ejercicio de prueba de concepto manejable, usaremos solo 1000 iteraciones:
Use la siguiente entrada, estilizada con fondo marrón para facilitar su reconocimiento, para importar los resultados originales del autor de la entrada anterior:

Optimization Results

¡Eso está realmente bastante bien! ¿Existen estructuras en el PDB con una secuencia similar?
Ninguna. ¿Y en la base de datos UniProt? Esta búsqueda se hizo manualmente y encontró una coincidencia. Aquí hay un fragmento de la salida sin procesar de BLAST:
>TR:A0A106BVQ6 A0A106BVQ6_THIDE 3-isopropylmalate dehydratase large subunit
OS=Thiobacillus denitrificans OX=36861 GN=leuC PE=3 SV=1
Length=467
​
Score = 35.0 bits (79), Expect = 9.7
Identities = 17/45 (38%), Positives = 23/45 (51%), Gaps = 0/45 (0%)
​
Query 2 DYVILRPYYSQDPSIDSSNFWWCGFHGATQDVFHRRIFINATKTD 46
DYV RPY + + D + WW H VF R + ++ATK D
Sbjct 242 DYVKGRPYSPKGAAWDKAVAWWNTLHSDADAVFDRVVELDATKID 286
¿Qué más podemos aprender de la optimización? Así fue cómo mejoró la aptitud a lo largo de la optimización:
Una gran fracción de las iteraciones no cambió la secuencia:
Y así fue cómo evolucionó el cambio en la aptitud (los ceros se han omitido):
Aquí es donde ocurrieron las mutaciones a lo largo de la optimización:
Y aquí está la distribución de frecuencia por posición de residuo:
Doce posiciones de residuos (6, 8, 46, 53, 62, 64, 69, 71, 82, 83, 96, 98) no fueron modificadas. O no fueron seleccionadas o los cambios resultaron ser perjudiciales y no pasaron el criterio de Metrópolis. El mejor remedio sería usar más iteraciones (Baker usó 40,000).
¿Cómo evolucionó el contenido de aminoácidos y cuál es la distribución final?
La isoleucina (I), arginina (R) y treonina (T) son los aminoácidos más frecuentes en la última secuencia, y la metionina (M) se perdió por completo.
¿Cómo evolucionó la geometría del plegamiento? Tomemos 10 ejemplos de una progresión geométrica a través de las iteraciones y pliéguenlos:
Representar el RMSD de alineación nos dará una idea aproximada de la similitud estructural por pares de la muestra:
Ahora veamos las estructuras. En las siguientes representaciones gráficas, los residuos han sido coloreados según la confianza de la predicción. El primer número en cada panel es la confianza general del plegamiento y el segundo número es el paso en la iteración:
Para cuando la confianza general alcanza aproximadamente 0.7, el plegamiento se ha estabilizado.
Otra manera de evaluar la evolución del plegamiento usa mapas de contacto entre residuos. Como observó el equipo de Baker, los mapas son inicialmente difusos y se vuelven más definidos a lo largo de la optimización:
Por curiosidad, enviamos manualmente la secuencia optimizada al servidor trRosetta. Aquí están los plegamientos que fueron predichos con el uso de plantillas, junto con la confianza general:
El modelo trRosetta proporciona una confianza de posición atómica en una escala de 0 a 100, y la confianza general para cada plegamiento no es muy alta.
El informe de plegamiento incluía las siguientes observaciones:
◼
  • La confianza del modelo es muy baja. Se construyó basándose en el plegamiento de novo, guiado por restricciones de aprendizaje profundo.
  • ◼
  • Este es un plegamiento de secuencia única con trRosettaX, ya que no se detectaron homólogos significativos (en uniclust30_2018_08).
  • ¿Cómo se comparan con nuestra estructura optimizada predicha por ESMAtlas? No muy de cerca, según el RMSD de alineación.
    ¿Cuánto es suficiente? ¿Entonces, cuántas iteraciones son suficientes para obtener resultados útiles? Incluso con las rápidas computadoras personales modernas y la alta velocidad de internet, puede tomar horas evolucionar una secuencia utilizando el servicio API. Como vimos anteriormente, 1000 iteraciones no son suficientes para muestrear siquiera una vez las 100 posiciones de residuos, mucho menos repetidamente, para encontrar un aminoácido óptimo para cada una.

    5,000 Iterations

    Use la siguiente entrada, estilizada con fondo marrón para facilitar su reconocimiento, para importar los resultados originales del autor de la entrada anterior:
    Esta iteración no es simplemente una extensión de la anterior, aunque ambas comenzaron con la misma secuencia aleatoria inicial y el mismo estado aleatorio. Esto se debe a que la vida media del decaimiento de la temperatura es más larga, lo cual permite que esta iteración diverja tan pronto como el criterio de Metropolis devuelva un resultado diferente. Este hecho se vuelve evidente una vez que se compara la aptitud de ambas iteraciones:
    La secuencia final optimizada no guarda ninguna similitud con la de la iteración más corta:
    La distribución de aminoácidos también es bastante diferente. Notablemente, varios aminoácidos ya no están presentes: fenilalanina (F), histidina (H), prolina (P) y triptófano (W):
    ¿Entonces, cuál es el plegamiento para esta secuencia?
    ¡Todo es una sola hélice α larga! Considerando que no hay residuos de prolina, este resultado no sorprende. La prolina contiene un anillo que restringe la rotación alrededor del ángulo ϕ, lo cual usualmente resulta en una torcedura en la cadena principal en esa posición. Por lo tanto, la ausencia de residuos de prolina significa que no habrá giros:
    Las siguientes representaciones muestran que la topología general del plegamiento final se alcanza bastante temprano, alrededor del 40% del tiempo de iteración, cuando la confianza está alrededor de 0.75, como vimos en la iteración más corta:

    10,000 Iterations

    Use la siguiente entrada, estilizada con fondo marrón para facilitar su reconocimiento, para importar los resultados originales del autor de la entrada anterior:
    La evolución de la aptitud para las tres iteraciones se muestra a continuación. Las iteraciones de 5000 y 10 000 pasos han producido secuencias con una confianza muy alta, pero de ninguna manera han convergido hacia una confianza máxima, como se muestra en el recuadro:
    Si bien el muestreo de las posiciones de residuos es aproximadamente el doble que en la iteración corta de 5000 pasos, es más difuso:
    Además, solo el 15% de las posiciones de residuos experimentaron al menos una vez cada aminoácido (las columnas completamente verdes en la siguiente representación), y ninguno de los aminoácidos estuvo al menos una vez en cada una de las posiciones de residuos (las filas completamente verdes, solo la alanina estuvo cerca). Por lo tanto, se podrían necesitar 20 000 o incluso 40 000 pasos (como hizo Baker) para lograr un apareamiento adecuado:
    Una vez más vemos la pérdida de varios aminoácidos, y notablemente la prolina está entre los ausentes:
    La secuencia final es:
    Otro plegamiento solo con hélices α, como lo predijo la ausencia total de prolina. ¿Qué tan similares son las dos secuencias?
    Hay cierta similitud entre las dos secuencias, pero no es muy alta. ¿Podemos descubrir por qué esta optimización da como resultado una secuencia sin prolina?
    El curioso caso de la prolina Una hipótesis podría ser que, una vez que la prolina desaparece, es difícil restaurarla. La primera secuencia sin prolina se encuentra en el paso 2602:
    ¿Cuál es la probabilidad de una sustitución exitosa por prolina en cada posición de residuo? Para calcular esas probabilidades, necesitamos la aptitud (confianza general del plegamiento) de la secuencia sin prolina y de cada una de las secuencias con sustituciones por prolina:
    También tenemos la temperatura en ese paso:
    Y finalmente, las probabilidades:
    Podemos ver que una gran fracción de las posiciones de residuos tiene una probabilidad muy baja, pero aún hay un número considerable con una probabilidad de 1 y, de hecho, la prolina reaparece en un paso posterior solo para ser finalmente eliminada. El último paso en el que se pierde una prolina es el 5885:
    Calcular las probabilidades de restaurar una prolina en este punto de las iteraciones sigue:
    Se ha vuelto mucho más difícil restaurar la prolina en la secuencia, y al final tenemos una secuencia que se pliega en una forma completamente de hélice α.
    Una seria mejora No todas las posiciones de residuos son iguales, y cuando se trata de predicción estructural, algunas están mejor caracterizadas que otras. ¿Ya que estamos diseñando por optimización, podríamos mejorar el proceso al mutar preferentemente las posiciones de residuos con menor confianza en la predicción? Es decir, dar más atención a las regiones menos bien definidas.
    Usamos la confianza por residuo para codificar las secuencias plegadas por colores, y podemos usar esa misma confianza por residuo para ponderar la selección de posiciones a mutar.
    Esta es una función de mutación reestructurada que puede tomar un conjunto opcional de ponderaciones por posición de residuo:
    Tomando como entrada la secuencia optimizada de la optimización de 1000 iteraciones, aquí tenemos una mutación sin ponderaciones:
    Las ponderaciones basadas en la confianza se calculan mediante:
    Esta es la mutación con esas ponderaciones, comenzando, por supuesto, desde el mismo estado aleatorio:
    Podemos agregar una opción a la función sequenceSimulatedAnnealing para usar ponderaciones basadas en confianza (los cambios de código están resaltados en azul):
    Use la siguiente entrada, estilizada con fondo marrón para facilitar su reconocimiento, para importar los resultados originales del autor de la entrada anterior:
    El curso temporal de la aptitud para la optimización ponderada es aproximadamente el mismo que para la no ponderada. No es inmediatamente obvio si la diferencia de aptitud al final es significativa:
    Sorprendentemente, muchas menos mutaciones cumplieron con el criterio de Metropolis:
    Y eso probablemente explica la aptitud menor al final. Se percibe una mayor frecuencia de mutaciones hacia el extremo C-terminal de la secuencia (residuo 100) en el gráfico de la derecha. Esto se debe a la característicamente menor confianza en la geometría de los residuos en los extremos de la secuencia. En una optimización diferente de 10 000 pasos, fue mucho más evidente:
    No hay casi ninguna similitud entre las dos secuencias finales:
    Y, afortunadamente, la secuencia plegada tiene una topología diferente:
    Una vez más, las bases de datos públicas de proteínas no contienen secuencias similares:
    Se encontraron cuatro coincidencias en la base de datos UniProt, siendo la mejor, aunque no muy buena con un valor E-score = 3.4:
    >TR:A0A8J3MJ45 A0A8J3MJ45_9ACTN Hydrolase OS=Catellatospora sp. TT07R-123 OX=2733863
    GN=Cs7R123_19000 PE=4 SV=1
    Length=252
    ​
    Score = 36.2 bits (82), Expect = 3.4
    Identities = 21/67 (31%), Positives = 33/67 (49%), Gaps = 10/67 (15%)
    ​
    Query 26 MVTEIGF----LLGVWETTGSWESVLLECKIGCDNIDH------CGLIGSGSEASLSVAF 75
    +V+ IGF LL WE TG ++++L ++GC D CG++ E +L +
    Sbjct 152 VVSNIGFDIRPLLDAWELTGLCDAIVLSYEVGCIKPDQKIFLRACGMLAVDPERTLMIGD 211
    ​
    Query 76 KTADTNA 82
    AD A
    Sbjct 212 TPADAGA 218
    Resumen ¿Entonces, qué hemos aprendido en nuestra expedición computacional? Considero que lo más destacable es que sorprendentemente se necesitó muy poca programación. Creamos algunas funciones de una sola línea (confidence, acceptableSequenceQ, randomSequence, residueConfidence, mutate) y solo una función grande (sequenceSimulatedAnnealing). Todo lo demás que necesitábamos ya estaba incorporado en Wolfram Language y simplemente funcionó.
    La capacidad de comenzar con tan solo una secuencia de códigos de aminoácidos (estructura primaria) y obtener en un solo paso una estructura tridimensional realista de una proteína (estructura terciaria) es absolutamente asombrosa y profundamente satisfactoria. La llegada de los modelos de lenguaje de gran tamaño (LLM) es realmente digna de un Premio Nobel, y el hecho de que podamos subirnos fácilmente sobre los hombros de esos gigantes es impresionante.
    También aprendimos que los datos experimentales pueden ser difíciles de usar. La buena ciencia requiere atención a los detalles y preguntarse con frecuencia por qué se obtuvo un resultado determinado. A medida que avanzábamos, postulamos hipótesis y las pusimos a prueba.
    Apenas hemos rozado la superficie de la biología computacional, y Wolfram Language nos permitirá llegar mucho más lejos.
    Ideas para más exploración Un área con mucho potencial es la correlación de las propiedades de los aminoácidos con los plegamientos optimizados. ¿Dónde están ubicados tridimensionalmente los residuos polares y no polares? ¿Y los residuos cargados, como arginina, histidina, aspartato y glutamato?
    ¿Cuál es el efecto de aumentar o disminuir la tasa de enfriamiento? Establecimos la vida media de la temperatura como 1/8 del número de iteraciones, como lo hizo el grupo de Baker. Sin embargo, nosotros usamos un protocolo continuo mientras que ellos usaron uno escalonado.
    Muchas proteínas contienen puentes disulfuro entre residuos de cisteína. ¿Cómo se podría incorporar esta característica en la generación aleatoria de secuencias y en las mutaciones posteriores? ¿Puede ESMAtlas plegar secuencias con esta restricción topológica?
    ¿Qué otros objetivos de optimización podrían usarse? Nosotros optimizamos la confianza del plegamiento. ¿Cómo se podría optimizar para una forma específica o una combinación determinada de hélices y láminas? ¿Cómo se podría optimizar un sitio activo enzimático o una cavidad de unión para un receptor?
    Inicialización

    chainResidueAtom

    BioMoleculeAlign